o
    Dh3                     @   s   d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZmZ d
e	eef dedee fddZdedefddZdeddfddZdddZedkrie  dS dS )z.
Implementing a basic command-line interface.
    N)python_version)AnyOptionalUnion)HtmlElement   )__version__)	find_date)	fetch_urlis_wrong_document
htmlstringargsreturnc                 C   s8   t | rtjd dS t| |j |j|j|j|j	dS )zGeneric safeguards and triggersz(# ERROR: document is empty or too large
N)extensive_searchoriginal_dateverbosemin_datemax_date)
r   sysstderrwriter	   fastoriginalr   mindatemaxdate)r   r    r   M/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/htmldate/cli.pycli_examine   s   r   c                 C   s   t  }|jddddd |jdddtd	 |jd
ddd |jdddtd	 |jdddtd	 |jdddtd	 |jddddd |jddddt dt  d | S )z(Define parser for command-line argumentsz-fz--fastz#fast mode: disable extensive searchstore_false)helpactionz-iz--inputfilezXname of input file for batch processing
                            (similar to wget -i))r   typez
--originalzoriginal date prioritized
store_truez-minz	--mindatez'earliest acceptable date (ISO 8601 YMD)z-maxz	--maxdatez%latest acceptable date (ISO 8601 YMD)z-uz--URLzcustom URL downloadz-vz	--verbosezincrease output verbosityz	--versionz!show version information and exitversionz	Htmldate z
 - Python )r   r    r#   )argparseArgumentParseradd_argumentstrr   r   
parse_args)r   
argsparserr   r   r   r(   &   s<   r(   c              
   C   s6  | j r
tjtjd | js`| jr%t| j}|du r$td| j d  n&ztj	
 }W n tyJ } ztdt| d  W Y d}~nd}~ww t|| }|dur^tj|d  dS dS t| jddd)}|D ]}t| }t|| }tj|  d	|pd
 d qkW d   dS 1 sw   Y  dS )z1Process the arguments passed on the command-line.)levelNzNo data for URL: 
zWrong buffer encoding: rzutf-8)modeencoding	None)r   loggingbasicConfigDEBUG	inputfileURLr
   r   exitstdinreadUnicodeDecodeErrorr'   r   stdoutr   openstrip)r   r   errresultr4   linehtmltextr   r   r   process_argsI   s2   
$

""rA   c                  C   s   t tjdd } t|  dS )zRun as a command-line utility.r   N)r(   r   argvrA   )r   r   r   r   maini   s   rC   __main__)r   N)__doc__r$   r1   r   platformr   typingr   r   r   	lxml.htmlr    r   corer	   utilsr
   r   r'   r   r(   rA   rC   __name__r   r   r   r   <module>   s.    

#
 
