o
    6i1                     @  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 ]'\}}|rd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    "%

	




