
    Li                        d Z ddlZddlZddlmZmZmZ ddlZddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZ  ee	      Z ej,                  deD  ci c]  } | |  c} e      Zd	ee   d
ee   fdZ ed      Zej7                  dg d      dddej8                  ddfdeee    ej:                  de      f   deee    ej:                  d      f   dedededed
dfd       Zyc c} w )aw  Contains commands to interact with papers on the Hugging Face Hub.

Usage:
    # list daily papers (most recently submitted)
    hf papers ls

    # list trending papers
    hf papers ls --sort=trending

    # list papers from a specific date, ordered by upvotes
    hf papers ls --date=2025-01-23

    # list today's papers, ordered by upvotes
    hf papers ls --date=today
    N)	AnnotatedOptionalget_args)DailyPapersSort_T   )
	FormatOptLimitOptOutputFormatQuietOptTokenOpt_format_cellapi_object_to_dict
get_hf_apiprint_list_outputtyper_factoryPaperSortEnum)typevaluereturnc                     | y| j                         dk(  r,t        j                  j                         j	                         S | S )z6Parse date option, converting 'today' to current date.Ntoday)lowerdatetimedater   	isoformat)r   s    `/var/www/html/lcp-python-backend/venv/lib/python3.12/site-packages/huggingface_hub/cli/papers.py_parse_dater   8   s9    }{{}}}""$..00L    z Interact with papers on the Hub.)helpz	list | ls)zhf papers lszhf papers ls --sort trendingzhf papers ls --date 2025-01-23zhf papers ls --format json)examples2   Fr   z+Date in ISO format (YYYY-MM-DD) or 'today'.)r   callbacksortzSort results.limitformatquiettokenc                     t        |      }|r|j                  nd}|j                  | ||      D cg c]  }t        |       }	}g d}
dt        dt
        t           fd}t        |	||d|
|d	d	d
       yc c}w )zList daily papers on the Hub.)r'   N)r   r#   r$   )idtitleupvotescommentspublished_atsubmitted_byitemr   c           
      x   | j                  d      xs i }|j                  d      xs |j                  d      xs d}| j                  dd      t        | j                  dd      d      t        | j                  d	d            t        | j                  d
d            t        | j                  dd            |gS )Nr.   fullnameusername r)   r*   <   )max_lenr+   r,   r-   )getr   str)r/   r.   	submitters      r   
_paper_rowzpapers_ls.<locals>._paper_rowk   s    xx/52 $$Z0VL4D4DZ4PVTV	HHT2'2.;B'(R()."56
 	
r   r)   right)r+   r,   )r%   r&   id_keyheadersrow_fn
alignments)r   r   list_daily_papersr   dictlistr7   r   )r   r#   r$   r%   r&   r'   apisort_key
paper_inforesults_HEADERSr9   s               r   	papers_lsrG   D   s    6 5
!C!tzztH // 0 
 	:&G  VH

 

$s) 

 &G<-s   A8)__doc__r   enumtypingr   r   r   typerhuggingface_hub.hf_apir   
_cli_utilsr   r	   r
   r   r   r   r   r   r   r   _SORT_OPTIONSEnumr7   r   r   
papers_clicommandtableOptionrG   )ss   0r   <module>rU      s\      0 0  4   *+		/-+HQAqD+HsSx} #   BC
     	 	$**2
> 	
	2 /*	,2 2 2 2 2  
!221 ,Is   
C)
