o
    ÌÄ.j  ã                   @  s4   d dl mZ ddlmZmZ ddd	„Zddd„ZdS )é    )Úannotationsé   )ÚHeaderÚHeadersÚheadersr   Úreturnúdict[str, list[dict]]c                 C  sŽ   t ƒ }| D ]?}|j|vrtƒ ||j< t ƒ }|D ]$\}}||vr$|||< qt|| tƒdu r4|| g||< ||  |¡ q||j  |¡ q|S )zg
    Provide an opinionated but reliable way to encode headers to dict for serialization purposes.
    F)ÚdictÚnameÚlistÚ
isinstanceÚappend)r   ÚresultÚheaderÚencoded_headerÚ	attributeÚvalue© r   ú]/home/thesage/.local/lib/python3.10/site-packages/niquests/_vendor/kiss_headers/serializer.pyÚencode   s   
r   Úencoded_headersc           	   	   C  s²   t ƒ }|  ¡ D ]O\}}t|tƒstdƒ‚|D ]?}t|tƒs!tdƒ‚t|dƒ}| ¡ D ]&\}}|du r7||7 }q*t|tƒrA|||< q*|D ]}|jdi ||i¤Ž qCq*||7 }qq|S )zD
    Decode any previously encoded headers to a Headers object.
    z,Decode require first level values to be Listz+Decode require each list element to be DictÚ Néÿÿÿÿ)r   )	r   Úitemsr   r   Ú
ValueErrorr	   r   ÚstrÚinsert)	r   r   Úheader_nameÚencoded_header_listr   r   Úattrr   Ú	sub_valuer   r   r   Údecode#   s*   



ÿ
ïr!   N)r   r   r   r   )r   r   r   r   )Ú
__future__r   Úmodelsr   r   r   r!   r   r   r   r   Ú<module>   s    
