o
    6‘ði1  ã                   @  sh  d dl mZ d dlmZ d dlmZmZmZ d dlmZ dZ	e	r6d dlm
Z
 d dlmZ d dlmZmZmZ ed	d
„ edƒD ƒƒeedƒƒB Zedƒeedƒ B ZedƒZeefZdZedddddddœƒZG dd„ dƒZdddœdNd&d'„ZdddœdOd)d*„Zdd+œdPd1d2„Zd d3œdQd6d7„Z dRd9d:„Z!dSd<d=„Z"dTd?d@„Z#dUdBdC„Z$dVdFdG„Z%dWdIdJ„Z&dXdKdL„Z'dMS )Yé    )Úannotations)ÚMapping)ÚdateÚdatetimeÚtime)ÚMappingProxyTypeF)Ú	Generator©ÚDecimal)ÚIOÚAnyÚFinalc                 c  s   � | ]}t |ƒV  qd S ©N)Úchr)Ú.0Úi© r   úZ/root/parts/websockify/install/lib/python3.10/site-packages/pip/_vendor/tomli_w/_writer.pyÚ	<genexpr>   s   € r   é    é   z"\ú	z@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_éd   z\bz\nz\fz\rz\"z\\)úÚ
úúú"ú\c                   @  s   e Zd Zddd„ZdS )	ÚContextÚallow_multilineÚboolÚindentÚintc                 C  s*   |dk rt dƒ‚|| _i | _d| | _d S )Nr   z!Indent width must be non-negativeú )Ú
ValueErrorr    Úinline_table_cacheÚ
indent_str)Úselfr    r"   r   r   r   Ú__init__"   s
   zContext.__init__N)r    r!   r"   r#   )Ú__name__Ú
__module__Ú__qualname__r)   r   r   r   r   r   !   s    r   é   )Úmultiline_stringsr"   ÚobjúMapping[str, Any]Úfpú	IO[bytes]r.   r!   r"   r#   ÚreturnÚNonec               C  s0   t ||ƒ}t| |dd�D ]	}| | ¡ ¡ qd S ©NÚ )Úname)r   Úgen_table_chunksÚwriteÚencode)r/   r1   r.   r"   ÚctxÚchunkr   r   r   Údump+   s   
ÿr=   Ústrc               C  s   t ||ƒ}d t| |dd�¡S r5   )r   Újoinr8   )r/   r.   r"   r;   r   r   r   Údumps8   s   
r@   )Ú
inside_aotÚtabler;   r7   rA   úGenerator[str, None, None]c                #  s>  � d}g }g }|   ¡ D ]5\‰}t|tƒr| ˆ|df¡ qt|ƒr9t‡ fdd„|D ƒƒs9| ‡fdd„|D ƒ¡ q| ˆ|f¡ q|sI|rZ|sI|sZd}|rSd|› d�nd|› d	�V  |rsd}|D ]\‰}tˆƒ› d
t|ˆ ƒ› d�V  q`|D ]'\‰}}|r€dV  nd}tˆƒ}	|r�|› d|	› �n|	}
t	|ˆ |
|d�E d H  qud S )NFc                 3  s   � | ]}t |ˆ ƒV  qd S r   )Úis_suitable_inline_table©r   Út©r;   r   r   r   L   ó   € z#gen_table_chunks.<locals>.<genexpr>c                 3  s   � | ]}ˆ |d fV  qdS )TNr   rE   )Úkr   r   r   M   rH   Tz[[z]]
ú[z]
ú = r   Ú.)r7   rA   )
ÚitemsÚ
isinstancer   ÚappendÚis_aotÚallÚextendÚformat_key_partÚformat_literalr8   )rB   r;   r7   rA   ÚyieldedÚliteralsÚtablesÚvÚin_aotÚkey_partÚdisplay_namer   )r;   rI   r   r8   ?   s2   €
ùr8   ©Ú
nest_levelÚobjectr]   c                C  sÆ   t | tƒr| r	dS dS t | ttttfƒrt| ƒS t | tƒr(| jr$t	dƒ‚t| ƒS t | tƒr4t
| |jd�S t | tƒr?t| ||ƒS t | tƒrIt| |ƒS ddlm} t | |ƒrXt| ƒS tdt| ƒj› d�ƒ‚)	NÚtrueÚfalsez"TOML does not support offset times©r    r   r	   zObject of type 'z' is not TOML serializable)rN   r!   r#   Úfloatr   r   r>   r   Útzinfor%   Úformat_stringr    ÚARRAY_TYPESÚformat_inline_arrayr   Úformat_inline_tableÚdecimalr
   Úformat_decimalÚ	TypeErrorÚtyper,   )r/   r;   r]   r
   r   r   r   rT   d   s(   






ÿrT   r
   c                 C  sL   |   ¡ rdS |  ¡ r|  ¡ rdS dS t| ƒ ¡ }d|v s d|v r"|S |d S )NÚnanz-infÚinfrL   Úez.0)Úis_nanÚis_infiniteÚ	is_signedr>   Úlower)r/   Údec_strr   r   r   ri   ~   s   ri   r   c                   sX   t | ƒ}|ˆ jv rˆ j| S | sd}ndd ‡ fdd„|  ¡ D ƒ¡ d }|ˆ j|< |S )Nz{}z{ z, c                 3  s,   � | ]\}}t |ƒ› d t|ˆ ƒ› �V  qdS )rK   N)rS   rT   )r   rI   rX   rG   r   r   r   ’   s
   € ÿ
ÿz&format_inline_table.<locals>.<genexpr>z })Úidr&   r?   rM   )r/   r;   Úobj_idÚrenderedr   rG   r   rg   ‡   s   

þÿûÿ
rg   útuple | listc                   sL   | sdS ˆ j dˆ  ‰ˆ j ˆ }dd ‡ ‡‡fdd„| D ƒ¡ d|› d� S )Nz[]é   z[
z,
c                 3  s&   � | ]}ˆt |ˆ ˆd  d� V  qdS )rx   r\   N)rT   )r   Úitem©r;   Úitem_indentr]   r   r   r   £   s
   € ÿ
ÿz&format_inline_array.<locals>.<genexpr>ú])r'   r?   )r/   r;   r]   Úclosing_bracket_indentr   rz   r   rf   œ   s   
þÿ
ûÿrf   Úpartc              	   C  sT   zt  | ¡}W n ty   td| › dt| ƒj› d�ƒd ‚w | r$|r$| S t| dd�S )NzInvalid mapping key 'z' of type 'z'. A string is required.Fra   )ÚBARE_KEY_CHARSÚ
issupersetrj   rk   r,   rd   )r~   Úonly_bare_key_charsr   r   r   rS   «   s   ÿýÿrS   Úsr    c                C  sò   |od| v }|rd}|   dd¡} nd}d }}	 z| | }W n ty;   || ||… 7 }|r5|d  Y S |d  Y S w |tv rt|| ||… 7 }|tv r^|rW|dkrW|d7 }n|t| 7 }n|dtt|ƒƒd	d …  d
d¡ 7 }|d }|d7 }q)Nr   z"""
z
r   r   Tz"""z\ué   r-   Ú0rx   )ÚreplaceÚ
IndexErrorÚILLEGAL_BASIC_STR_CHARSÚCOMPACT_ESCAPESÚhexÚordÚrjust)r‚   r    Údo_multilineÚresultÚposÚ	seq_startÚcharr   r   r   rd   ¹   s2   ü
$îrd   r   c                 C  s$   t t| tƒo| otdd„ | D ƒƒƒS )zWDecides if an object behaves as an array of tables (i.e. a nonempty list
    of dicts).c                 s  s   � | ]}t |tƒV  qd S r   )rN   r   )r   rX   r   r   r   r   Ý   rH   zis_aot.<locals>.<genexpr>)r!   rN   re   rQ   )r/   r   r   r   rP   ×   s   
ÿýrP   c                 C  s*   |j › t| |ƒ› d�}t|ƒtkod|vS )zcUse heuristics to decide if the inline-style representation is a good
    choice for a given table.ú,r   )r'   rg   ÚlenÚMAX_LINE_LENGTH)r/   r;   Úrendered_inliner   r   r   rD   á   s   rD   N)
r/   r0   r1   r2   r.   r!   r"   r#   r3   r4   )r/   r0   r.   r!   r"   r#   r3   r>   )
rB   r0   r;   r   r7   r>   rA   r!   r3   rC   )r/   r^   r;   r   r]   r#   r3   r>   )r/   r
   r3   r>   )r/   r   r;   r   r3   r>   )r/   rw   r;   r   r]   r#   r3   r>   )r~   r>   r3   r>   )r‚   r>   r    r!   r3   r>   )r/   r   r3   r!   )r/   r   r;   r   r3   r!   )(Ú
__future__r   Úcollections.abcr   r   r   r   Útypesr   ÚTYPE_CHECKINGr   rh   r
   Útypingr   r   r   Ú	frozensetÚranger   Ú
ASCII_CTRLr‡   r   ÚlistÚtuplere   r“   rˆ   r   r=   r@   r8   rT   ri   rg   rf   rS   rd   rP   rD   r   r   r   r   Ú<module>   sR    "ÿúÿúÿû%

	




