o
    øT·jõ	  ã                   @   sf   d dl Z d dlZd dlmZmZ h d£Zdedefdd„ZeG dd	„ d	ƒƒZd
e	e defdd„Z
dS )é    N)Ú	dataclassÚfield>	   ÚGETÚPUTÚHEADÚPOSTÚPATCHÚQUERYÚTRACEÚDELETEÚOPTIONSÚurlÚreturnc                 C   sl   |   d¡r
d| › �S d| vr4|  dd¡d }d|v r+| dd¡d }|dkr(dnd	}nd}|› d| › �S | S )
z4Normalise a URL: localhost shortcut, default scheme.ú:zhttp://localhostz://ú/é   r   Ú443ÚhttpsÚhttp)Ú
startswithÚsplitÚrsplit)r   Ú	host_partÚportÚscheme© r   úV/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/curl_cffi/cli/parse.pyÚprocess_url   s   

r   c                   @   sÐ   e Zd ZU eed�Zeeef ed< eed�Z	ee ed< eed�Z
eeeef  ed< eed�Zeeeef  ed< eed�Zeeeef  ed< eed�Zeeeef  ed< eed�Zeeef ed< d	S )
ÚParsedItems)Údefault_factoryÚheadersÚheaders_to_removeÚquery_paramsÚdata_fieldsÚjson_fieldsÚfilesÚcookiesN)Ú__name__Ú
__module__Ú__qualname__r   Údictr    ÚstrÚ__annotations__Úlistr!   r"   Útupler#   r$   Úobjectr%   r&   r   r   r   r   r   "   s   
 r   Úitemsc                 C   s¢  t ƒ }| D ]É}| d¡r&d|dd… v r&|dd…  d¡\}}}||j|< qd|v re| d¡\}}}z|j |t |¡f¡ W q tjyd } zt	d|› d|› �t
jd� t
 d¡ W Y d}~qd}~ww d	|v rz| d	¡\}}}|j ||f¡ qd|v r�| d¡\}}}|j ||f¡ q| d
¡r£|dd… }|j d|f¡ qd|v r¾| d¡\}}}|r·||j|< q|j |¡ qt	d|› d�t
jd� t
 d¡ q|S )z)Parse request items into structured data.ú+ú=r   Nz:=zError: invalid JSON in 'z': )Úfilez==ú@r3   r   zError: unknown request item 'ú')r   r   Ú	partitionr&   r$   ÚappendÚjsonÚloadsÚJSONDecodeErrorÚprintÚsysÚstderrÚexitr"   r#   r%   r    r!   )r0   ÚresultÚitemÚkeyÚ_ÚvalueÚexcÚfilepathr   r   r   Úparse_request_items-   s>   €þ
rF   )r8   r<   Údataclassesr   r   ÚSUPPORTED_METHODSr+   r   r   r-   rF   r   r   r   r   Ú<module>   s    
