o
    EeiX                  	   @  s\  d dl mZ d dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
 ddlmZmZmZmZmZmZ ddlmZmZmZ ed	d
 edD eedB Zeed Zeed ZeZeZeZedZeedB Z eej!ej" d Z#e#edB Z$eej%Z&eddddddddZ'G dd de(Z)e*ddwd"d#Z+e*ddxd&d'Z,G d(d) d)Z-G d*d+ d+Z.G d,d- d-e
Z/dyd3d4Z0dzd:d;Z1d{d<d=Z2d{d>d?Z3d|dBdCZ4d|dDdEZ5d}dHdIZ6d~dKdLZ7ddMdNZ8ddPdQZ9ddRdSZ:ddUdVZ;ddXdYZ<dZd[dd]d^Z=dd_d`Z>ddcddZ?ddedfZ@ddhdiZAddjdkZBddmdnZCddpdqZDddsdtZEddudvZFdS )    )annotations)IterableN)MappingProxyType)AnyBinaryIO
NamedTuple   )RE_DATETIMERE_LOCALTIME	RE_NUMBERmatch_to_datetimematch_to_localtimematch_to_number)Key
ParseFloatPosc                 c  s    | ]}t |V  qd S N)chr.0i r   a/var/www/bmteknikk.ddns.net/venv/lib/python3.10/site-packages/setuptools/_vendor/tomli/_parser.py	<genexpr>   s    r          	z	
z 	
z-_z"'"\)z\bz\tz\nz\fz\rz\"z\\c                   @  s   e Zd ZdZdS )TOMLDecodeErrorz0An error raised if a document is not valid TOML.N)__name__
__module____qualname____doc__r   r   r   r   r#   5   s    r#   parse_float__fpr   r)   r   returndict[str, Any]c                C  s:   |   }z| }W n ty   tddw t||dS )z%Parse TOML from a binary file object.zEFile must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`Nr(   )readdecodeAttributeError	TypeErrorloads)r*   r)   bsr   r   r   load9   s   r4   __sstrc                C  sj  |  dd}d}tt t }d}t|}	 t||t}z|| }W n ty.   Y |jjS w |dkr8|d7 }q|tv rKt	|||||}t||t}nC|dkrz||d  }W n tyb   d}Y nw |j
  |dkrut|||\}}nt|||\}}t||t}n
|d	krt||d
t||}z|| }W n ty   Y |jjS w |dkrt||d|d7 }q)zParse TOML from a string.z
r   r   r   Tr   [N#zInvalid statementz5Expected newline or end of document after a statement)replaceOutput
NestedDictFlagsmake_safe_parse_float
skip_charsTOML_WS
IndexErrorKEY_INITIAL_CHARSkey_value_ruleflagsfinalize_pendingcreate_list_rulecreate_dict_rulesuffixed_errskip_commentdatadict)r5   r)   srcposoutheadercharsecond_charr   r   r   r1   E   sZ   
#

r1   c                   @  sT   e Zd ZdZdZdZdddZdddZdddZdddZ	dddZ
dddZdS )r<   z)Flags that map to parsed keys/namespaces.r   r   r+   Nonec                 C  s   i | _ t | _d S r   )_flagsset_pending_flagsselfr   r   r   __init__   s   zFlags.__init__keyr   flagintc                 C  s   | j ||f d S r   )rT   addrV   rX   rY   r   r   r   add_pending   s   zFlags.add_pendingc                 C  s.   | j D ]\}}| j||dd q| j   d S )NF	recursive)rT   rS   clearr\   r   r   r   rD      s   zFlags.finalize_pendingc                 C  sF   | j }|d d D ]}||vr d S || d }q	||d d  d S )Nnested)rR   pop)rV   rX   contkr   r   r   	unset_all   s   zFlags.unset_allr_   boolc                C  s   | j }|d d |d }}|D ]}||vr t t i d||< || d }q||vr5t t i d||< || |r<dnd | d S )Nra   )rC   recursive_flagsrb   rb   rh   rC   )rR   rS   r[   )rV   rX   rY   r_   rd   
key_parentkey_stemre   r   r   r   rS      s   z	Flags.setc                 C  s   |sdS | j }|d d D ]}||vr dS || }||d v r# dS |d }q|d }||v r@|| }||d v p?||d v S dS )NFra   rh   Trb   rC   )rR   )rV   rX   rY   rd   re   
inner_contrj   r   r   r   is_   s   
z	Flags.is_Nr+   rQ   )rX   r   rY   rZ   r+   rQ   rX   r   r+   rQ   )rX   r   rY   rZ   r_   rg   r+   rQ   )rX   r   rY   rZ   r+   rg   )r$   r%   r&   r'   FROZENEXPLICIT_NESTrW   r]   rD   rf   rS   rl   r   r   r   r   r<      s    




r<   c                   @  s0   e Zd ZdddZdddddZdddZdS )r;   r+   rQ   c                 C  s
   i | _ d S r   )rJ   rU   r   r   r   rW      s   
zNestedDict.__init__Taccess_listsrX   r   rr   rg   rJ   c                C  sT   | j }|D ]"}||vri ||< || }|rt|tr|d }t|t s'tdq|S )Nra   z There is no nest behind this key)rJ   
isinstancelistKeyError)rV   rX   rr   rd   re   r   r   r   get_or_create_nest   s   
zNestedDict.get_or_create_nestc                 C  sX   |  |d d }|d }||v r%|| }t|tstd|i  d S i g||< d S )Nra   z/An object other than list found behind this key)rv   rs   rt   ru   append)rV   rX   rd   last_keylist_r   r   r   append_nest_to_list   s   
zNestedDict.append_nest_to_listNrm   )rX   r   rr   rg   r+   rJ   rn   )r$   r%   r&   rW   rv   rz   r   r   r   r   r;      s
    
r;   c                   @  s   e Zd ZU ded< ded< dS )r:   r;   rI   r<   rC   N)r$   r%   r&   __annotations__r   r   r   r   r:      s   
 r:   rK   rL   r   charsIterable[str]c                 C  sB   z| | |v r|d7 }| | |v sW |S W |S  t y    Y |S w )Nr   )r@   )rK   rL   r|   r   r   r   r>      s   r>   expecterror_onfrozenset[str]error_on_eofrg   c                C  s   z|  ||}W n ty!   t| }|rt| |d|d Y nw || || sF| | |vr;|d7 }| | |vs1t| |d| | |S )Nz	Expected r   zFound invalid character )index
ValueErrorlenrG   
isdisjoint)rK   rL   r~   r   r   new_posr   r   r   
skip_until   s   r   c                 C  sF   z| | }W n t y   d }Y nw |dkr!t| |d dtddS |S )Nr8   r   r   Fr   r   )r@   r   ILLEGAL_COMMENT_CHARS)rK   rL   rO   r   r   r   rH     s   rH   c                 C  s*   	 |}t | |t}t| |}||kr|S qr   )r>   TOML_WS_AND_NEWLINErH   )rK   rL   pos_before_skipr   r   r   skip_comments_and_array_ws  s   
r   rM   tuple[Pos, Key]c                 C  s   |d7 }t | |t}t| |\}}|j|tjs!|j|tjr+t| |d| d|jj	|tjdd z|j
| W n tyK   t| |dd w | d|sXt| |d|d |fS )	Nr   zCannot declare z twiceFr^   Cannot overwrite a value]z.Expected ']' at the end of a table declaration)r>   r?   	parse_keyrC   rl   r<   rp   ro   rG   rS   rI   rv   ru   
startswithrK   rL   rM   rX   r   r   r   rF     s    rF   c                 C  s   |d7 }t | |t}t| |\}}|j|tjr"t| |d| |j| |jj	|tj
dd z|j| W n tyH   t| |dd w | d|sUt| |d|d |fS )N   "Cannot mutate immutable namespace Fr^   r   z]]z0Expected ']]' at the end of an array declaration)r>   r?   r   rC   rl   r<   ro   rG   rf   rS   rp   rI   rz   ru   r   r   r   r   r   rE   .  s   rE   rN   r   c                   s   t | ||\}}d d d }} | } fddtdtD }	|	D ]}
|j|
tjr<t| |d|
 |j|
tj q)|j|tj	rVt| |d| z|j
|}W n tyl   t| |dd w ||v rwt| |dt|ttfr|jj  tj	dd	 |||< |S )
Nra   c                 3  s     | ]} d |  V  qd S r   r   r   rN   rX   r   r   r   J  s    z!key_value_rule.<locals>.<genexpr>r   zCannot redefine namespace r   r   Tr^   )parse_key_value_pairranger   rC   rl   r<   rp   rG   r]   ro   rI   rv   ru   rs   rJ   rt   rS   )rK   rL   rM   rN   r)   valueri   rj   abs_key_parentrelative_path_cont_keyscont_keynestr   r   r   rB   C  s.   rB   tuple[Pos, Key, Any]c                 C  st   t | |\}}z| | }W n ty   d }Y nw |dkr#t| |d|d7 }t| |t}t| ||\}}|||fS )N=z,Expected '=' after a key in a key/value pairr   )r   r@   rG   r>   r?   parse_value)rK   rL   r)   rX   rO   r   r   r   r   r   e  s   
r   c                 C  s   t | |\}}|f}t| |t}	 z| | }W n ty"   d }Y nw |dkr+||fS |d7 }t| |t}t | |\}}||f7 }t| |t}q)NT.r   )parse_key_partr>   r?   r@   )rK   rL   key_partrX   rO   r   r   r   r   u  s"   
r   tuple[Pos, str]c                 C  s|   z| | }W n t y   d }Y nw |tv r&|}t| |t}|| || fS |dkr/t| |S |dkr8t| |S t| |d)N'r!   z(Invalid initial character for a key part)r@   BARE_KEY_CHARSr>   parse_literal_strparse_one_line_basic_strrG   )rK   rL   rO   	start_posr   r   r   r     s   

r   c                 C  s   |d7 }t | |ddS )Nr   F	multiline)parse_basic_strrK   rL   r   r   r   r     s   r   tuple[Pos, list]c                 C  s   |d7 }g }t | |}| d|r|d |fS 	 t| ||\}}|| t | |}| ||d  }|dkr<|d |fS |dkrFt| |d|d7 }t | |}| d|r[|d |fS q)Nr   r   T,zUnclosed array)r   r   r   rw   rG   )rK   rL   r)   arrayvalcr   r   r   parse_array  s&   



r   tuple[Pos, dict]c                 C  sR  |d7 }t  }t }t| |t}| d|r|d |jfS 	 t| ||\}}}|d d |d }}||tjrBt	| |d| z	|j
|dd}	W n tyY   t	| |dd w ||	v rgt	| |d	|||	|< t| |t}| ||d  }
|
dkr|d |jfS |
d
krt	| |dt|ttfr|j|tjdd |d7 }t| |t}q)Nr   }Tra   r   Frq   r   zDuplicate inline table key r   zUnclosed inline tabler^   )r;   r<   r>   r?   r   rJ   r   rl   ro   rG   rv   ru   rs   rt   rS   )rK   rL   r)   nested_dictrC   rX   r   ri   rj   r   r   r   r   r   parse_inline_table  s<   r   Fr   r   c                C  s   | ||d  }|d7 }|rH|dv rH|dkr>t | |t}z| | }W n ty/   |df Y S w |dkr:t| |d|d7 }t | |t}|dfS |dkrRt| |d	S |d
kr\t| |dS z|t| fW S  tyq   t| |dd w )Nr   >   \	\ \
r    r   zUnescaped '\' in a stringr   z\u   z\U   )r>   r?   r@   rG   r   parse_hex_charBASIC_STR_ESCAPE_REPLACEMENTSru   )rK   rL   r   	escape_idrO   r   r   r   parse_basic_str_escape  s0   r   c                 C  s   t | |ddS )NTr   )r   r   r   r   r    parse_basic_str_escape_multiline  s   r   hex_lenrZ   c                 C  sd   | |||  }t ||kst|st| |d||7 }t|d}t|s,t| |d|t|fS )NzInvalid hex value   z/Escaped character is not a Unicode scalar value)r   HEXDIGIT_CHARS
issupersetrG   rZ   is_unicode_scalar_valuer   )rK   rL   r   hex_strhex_intr   r   r   r     s   
r   c                 C  s2   |d7 }|}t | |dtdd}|d | || fS )Nr   r   Tr   )r   ILLEGAL_LITERAL_STR_CHARS)rK   rL   r   r   r   r   r      s   
r   literalc                C  s   |d7 }|  d|r|d7 }|r&d}t| |dtdd}| || }|d }nd}t| |dd	\}}|  ||s;||fS |d7 }|  ||sK||| fS |d7 }|||d
  fS )N   r   r   r   '''Tr   r!   r   r   )r   r   #ILLEGAL_MULTILINE_LITERAL_STR_CHARSr   )rK   rL   r   delimend_posresultr   r   r   parse_multiline_str	  s.   
r   c          	      C  s   |rt }t}nt}t}d}|}	 z| | }W n ty$   t| |dd w |dkrN|s7|d || ||  fS | d|rI|d || ||  fS |d7 }q|dkrh|| || 7 }|| |\}}||7 }|}q||v rut| |d	||d7 }q)
Nr   TzUnterminated stringr!   r   """r   r"   zIllegal character )!ILLEGAL_MULTILINE_BASIC_STR_CHARSr   ILLEGAL_BASIC_STR_CHARSr   r@   rG   r   )	rK   rL   r   r   parse_escapesr   r   rO   parsed_escaper   r   r   r   (  s<   r   tuple[Pos, Any]c              
   C  s  z| | }W n t y   d }Y nw |dkr(| d|r#t| |ddS t| |S |dkr>| d|r9t| |ddS t| |S |dkrN| d	|rN|d
 dfS |dkr^| d|r^|d dfS |dkrht| ||S |dkrrt| ||S t| |}|rzt	|}W n t
y } zt| |d|d }~ww | |fS t| |}|r| t|fS t| |}|r| t||fS | ||d  }	|	dv r|d ||	fS | ||d
  }
|
dv r|d
 ||
fS t| |d)Nr!   r   F)r   r   r   Tttruer   ffalse   r7   {zInvalid date or datetimer   >   infnan>   +inf+nan-inf-nanzInvalid value)r@   r   r   r   r   r   r   r	   matchr   r   rG   endr
   r   r   r   )rK   rL   r)   rO   datetime_matchdatetime_objelocaltime_matchnumber_matchfirst_three
first_fourr   r   r   r   H  sZ   

r   msgc                 C  s$   ddd}t | d|| | d	S )zZReturn a `TOMLDecodeError` where error message is suffixed with
    coordinates in source.rK   r6   rL   r   r+   c                 S  sV   |t | krdS | dd|d }|dkr|d }n	|| dd| }d| d| S )Nzend of documentr   r   r   zline z	, column )r   countrindex)rK   rL   linecolumnr   r   r   
coord_repr  s   
z suffixed_err.<locals>.coord_reprz (at )N)rK   r6   rL   r   r+   r6   )r#   )rK   rL   r   r   r   r   r   rG     s   

rG   	codepointc                 C  s0   d|   ko	dkn  pd|   kodkS   S )Nr   i  i   i r   )r   r   r   r   r     s   0r   c                   s    t u rt S d fdd}|S )	a%  A decorator to make `parse_float` safe.

    `parse_float` must not return dicts or lists, because these types
    would be mixed with parsed TOML tables and arrays, thus confusing
    the parser. The returned decorated callable raises `ValueError`
    instead of returning illegal types.
    	float_strr6   r+   r   c                   s"    | }t |ttfrtd|S )Nz*parse_float must not return dicts or lists)rs   rJ   rt   r   )r   float_valuer(   r   r   safe_parse_float  s   z/make_safe_parse_float.<locals>.safe_parse_floatN)r   r6   r+   r   )float)r)   r   r   r(   r   r=     s   	r=   )r*   r   r)   r   r+   r,   )r5   r6   r)   r   r+   r,   )rK   r6   rL   r   r|   r}   r+   r   )rK   r6   rL   r   r~   r6   r   r   r   rg   r+   r   )rK   r6   rL   r   r+   r   )rK   r6   rL   r   rM   r:   r+   r   )rK   r6   rL   r   rM   r:   rN   r   r)   r   r+   r   )rK   r6   rL   r   r)   r   r+   r   )rK   r6   rL   r   r+   r   )rK   r6   rL   r   r+   r   )rK   r6   rL   r   r)   r   r+   r   )rK   r6   rL   r   r)   r   r+   r   )rK   r6   rL   r   r   rg   r+   r   )rK   r6   rL   r   r   rZ   r+   r   )rK   r6   rL   r   r   rg   r+   r   )rK   r6   rL   r   r)   r   r+   r   )rK   r6   rL   r   r   r6   r+   r#   )r   rZ   r+   rg   )r)   r   r+   r   )G
__future__r   collections.abcr   stringtypesr   typingr   r   r   _rer	   r
   r   r   r   r   _typesr   r   r   	frozensetr   r   
ASCII_CTRLr   r   r   r   r   r?   r   ascii_lettersdigitsr   rA   	hexdigitsr   r   r   r#   r   r4   r1   r<   r;   r:   r>   r   rH   r   rF   rE   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   r   r=   r   r   r   r   <module>   st    "
B:"

	


	


"




!



	

 
D
