o
    ĎiV
                     @   s  d Z ddl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 ee
Zejddd	 eD ed
Zdee dee fddZeddZejdg dd				ddeee ejdedf deee ejddf dededdf
ddZdS )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   )LimitOptTokenOptapi_object_to_dict
get_hf_apityper_factoryPaperSortEnumc                 C   s   i | ]}||qS  r   ).0sr   r   V/home/jeff/fluffinator/venv/lib/python3.10/site-packages/huggingface_hub/cli/papers.py
<dictcomp>1   s    r   )typevaluereturnc                 C   s*   | du rdS |   dkrtj  S | S )z6Parse date option, converting 'today' to current date.Ntoday)lowerdatetimedater   	isoformat)r   r   r   r   _parse_date4   s
   r   z Interact with papers on the Hub.)helpls)zhf papers lszhf papers ls --sort trendingzhf papers ls --date 2025-01-23)examples2   r   z+Date in ISO format (YYYY-MM-DD) or 'today'.)r   callbacksortzSort results.limittokenc                 C   sH   t |d}|r
|jnd}dd |j| ||dD }ttj|dd dS )zList daily papers on the Hub.)r"   Nc                 S   s   g | ]}t |qS r   )r	   )r   
paper_infor   r   r   
<listcomp>Z   s    zpapers_ls.<locals>.<listcomp>)r   r    r!      )indent)r
   r   list_daily_papersprintjsondumps)r   r    r!   r"   apisort_keyresultsr   r   r   	papers_ls@   s   
r.   )NNr   N)__doc__r   enumr)   typingr   r   r   typerhuggingface_hub.hf_apir   
_cli_utilsr   r   r	   r
   r   _SORT_OPTIONSEnumstrr   r   
papers_clicommandOptionr.   r   r   r   r   <module>   sT   	
	
