o
    jHg                  
   @  s  U d dl mZ d dlZd dlmZ ddlmZmZmZm	Z	m
Z
mZ dZer?d dlmZ d dlmZmZmZ dd	lmZmZmZ e Zd
ed< e Zd
ed< edd edD eedB Zd
ed< eed Zd
ed< eed Z d
ed< eZ!d
ed< e Z"d
ed< eZ#d
ed< edZ$d
ed< e$edB Z%d
ed< edZ&d
ed< e&edB Z'd
ed < ed!Z(d
ed"< ed#ddd$d%d&d'd(d)Z)d
ed*< G d+d, d,Z*G d-d. d.e+Z,e-d/dd6d7Z.e-d/dd:d;Z/G d<d= d=Z0G d>d? d?Z1G d@dA dAZ2ddGdHZ3ddNdOZ4ddPdQZ5ddRdSZ6ddVdWZ7ddXdYZ8dd\d]Z9ddadbZ:ddcddZ;ddfdgZ<ddhdiZ=ddkdlZ>ddndoZ?ddpddrdsZ@ddtduZAddwdxZBddydzZCdd|d}ZDdd~dZEdddZFdddZGdddZHdS )    )annotationsN)MappingProxyType   )RE_DATETIMERE_LOCALTIME	RE_NUMBERmatch_to_datetimematch_to_localtimematch_to_numberF)Iterable)IOAnyFinal)Key
ParseFloatPosr   MAX_INLINE_NESTINGMAX_KEY_PARTSc                 c  s    | ]}t |V  qd S N)chr.0i r   S/var/www/html/fyndo/pharma/fyndo/venv/lib/python3.10/site-packages/tomli/_parser.py	<genexpr>,   s    r          
ASCII_CTRL	ILLEGAL_BASIC_STR_CHARSz	
!ILLEGAL_MULTILINE_BASIC_STR_CHARSILLEGAL_LITERAL_STR_CHARS#ILLEGAL_MULTILINE_LITERAL_STR_CHARSILLEGAL_COMMENT_CHARSz 	TOML_WS
TOML_WS_AND_NEWLINEz@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_BARE_KEY_CHARSz"'KEY_INITIAL_CHARSabcdefABCDEF0123456789HEXDIGIT_CHARS"\)z\bz\tz\nz\fz\rz\ez\"z\\BASIC_STR_ESCAPE_REPLACEMENTSc                   @  s   e Zd ZdZdS )DEPRECATED_DEFAULTzjSentinel to be used as default arg during deprecation
    period of TOMLDecodeError's free-form arguments.N)__name__
__module____qualname____doc__r   r   r   r   r3   N   s    r3   c                   @  s"   e Zd ZdZeeefdd	d
ZdS )TOMLDecodeErrora:  An error raised if a document is not valid TOML.

    Adds the following attributes to ValueError:
    msg: The unformatted error message
    doc: The TOML document being parsed
    pos: The index of doc where parsing failed
    lineno: The line corresponding to pos
    colno: The column corresponding to pos
    msgstr | type[DEPRECATED_DEFAULT]docposPos | type[DEPRECATED_DEFAULT]argsr   c           
      G  s"  |st |trt |trt |tsFdd l}|jdtdd |tur'|g|R }|tur1|g|R }|tur;|g|R }tj| g|R   d S |	dd|d }|dkrX|d }n	||
dd| }|t|krjd}nd| d	| }| d
| d}	t| |	 || _|| _|| _|| _|| _d S )Nr   z{Free-form arguments for TOMLDecodeError are deprecated. Please set 'msg' (str), 'doc' (str) and 'pos' (int) arguments only.   )
stacklevelr&   r   zend of documentzline z	, column z (at ))
isinstancestrintwarningswarnDeprecationWarningr3   
ValueError__init__countrindexlenr9   r;   r<   linenocolno)
selfr9   r;   r<   r>   rE   rM   rN   
coord_reprerrmsgr   r   r   rI   ^   sH   

zTOMLDecodeError.__init__N)r9   r:   r;   r:   r<   r=   r>   r   )r4   r5   r6   r7   r3   rI   r   r   r   r   r8   S   s    r8   parse_float__fp	IO[bytes]rS   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')`NrR   )readdecodeAttributeError	TypeErrorloads)rT   rS   bsr   r   r   load   s   r_   __srC   c             	   C  s  z|  dd}W n ttfy   tdt| j ddw d}t }d}t|}	 t||t}z|| }W n t	yB   Y |jjS w |dkrL|d	7 }q)|t
v r_t|||||}t||t}nC|d
krz||d	  }W n t	yv   d}Y nw |j  |d
krt|||\}}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&   zExpected str object, not ''Nr   r   Tr   [#zInvalid statementz5Expected newline or end of document after a statement)replacerZ   r[   typer6   Outputmake_safe_parse_float
skip_charsr%   
IndexErrorr)   key_value_ruleflagsfinalize_pendingcreate_list_rulecreate_dict_ruler8   skip_commentdatadict)r`   rS   srcr<   outheadercharsecond_charr   r   r   r\      sj   
#

r\   c                   @  sf   e Zd ZU dZdZded< dZded< 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 )!Flagsz)Flags that map to parsed keys/namespaces.r   r   FROZENr   EXPLICIT_NESTrV   Nonec                 C  s   i | _ t | _d S r   )_flagsset_pending_flagsrO   r   r   r   rI      s   zFlags.__init__keyr   flagrD   c                 C  s   | j ||f d S r   )r}   addrO   r   r   r   r   r   add_pending   s   zFlags.add_pendingc                 C  s.   | j D ]\}}| j||dd q| j   d S )NF	recursive)r}   r|   clearr   r   r   r   rl      s   zFlags.finalize_pendingc                 C  sF   | j }|d d D ]}||vr d S || d }q	||d d  d S )Nnested)r{   pop)rO   r   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 )Nr   )rk   recursive_flagsr   r   r   rk   )r{   r|   r   )rO   r   r   r   r   
key_parentkey_stemr   r   r   r   r|      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 )NFr   r   Tr   rk   )r{   )rO   r   r   r   r   
inner_contr   r   r   r   is_  s   
z	Flags.is_NrV   rz   )r   r   r   rD   rV   rz   r   r   rV   rz   )r   r   r   rD   r   r   rV   rz   )r   r   r   rD   rV   r   )r4   r5   r6   r7   rx   __annotations__ry   rI   r   rl   r   r|   r   r   r   r   r   rw      s   
 




rw   c                   @  s0   e Zd ZdddZdddddZdddZdS )
NestedDictrV   rz   c                 C  s
   i | _ d S r   )rq   r~   r   r   r   rI     s   
zNestedDict.__init__Taccess_listsr   r   r   r   rW   c                C  sT   | j }|D ]"}||vri ||< || }|rt|tr|d }t|t s'tdq|S )Nr   z There is no nest behind this key)rq   rB   listKeyError)rO   r   r   r   r   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 )Nr   z/An object other than list found behind this key)r   rB   r   r   append)rO   r   r   last_keylist_r   r   r   append_nest_to_list3  s   
zNestedDict.append_nest_to_listNr   )r   r   r   r   rV   rW   r   )r4   r5   r6   rI   r   r   r   r   r   r   r     s
    
r   c                   @  s   e Zd ZdddZdS )rf   rV   rz   c                 C  s   t  | _t | _d S r   )r   rp   rw   rk   r~   r   r   r   rI   @  s   zOutput.__init__Nr   )r4   r5   r6   rI   r   r   r   r   rf   ?  s    rf   rr   r<   r   charsIterable[str]c                 C  sB   z| | |v r|d7 }| | |v sW |S W |S  t y    Y |S w )Nr   )ri   )rr   r<   r   r   r   r   rh   E  s   rh   expecterror_onfrozenset[str]error_on_eofr   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 )indexrH   rL   r8   
isdisjoint)rr   r<   r   r   r   new_posr   r   r   
skip_untilN  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 )Nrc   r   r&   Fr   r   )ri   r   r$   )rr   r<   ru   r   r   r   ro   d  s   ro   c                 C  s*   	 |}t | |t}t| |}||kr|S qr   )rh   r'   ro   )rr   r<   pos_before_skipr   r   r   skip_comments_and_array_wsp  s   
r   rs   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)rh   r%   	parse_keyrk   r   rw   ry   rx   r8   r|   rp   r   r   
startswithrr   r<   rs   r   r   r   r   rn   y  s     rn   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 )Nr?   "Cannot mutate immutable namespace Fr   r   z]]z0Expected ']]' at the end of an array declaration)rh   r%   r   rk   r   rw   rx   r8   r   r|   ry   rp   r   r   r   r   r   r   r   rm     s"   rm   rt   r   c                   s$  t | ||dd\}}d d d }} | } fddtdtD }	|	D ]}
|j|
tjr>td|
 | ||j|
tj q+|j|tj	rXtd| | |z|j
|}W n tyn   td	| |d w ||v rytd	| |t|ttfr|jj  tj	d
d |||< |S )Nr   )nest_lvlr   c                 3  s     | ]} d |  V  qd S r   r   r   rt   r   r   r   r     s    z!key_value_rule.<locals>.<genexpr>r   zCannot redefine namespace r   r   Tr   )parse_key_value_pairrangerL   rk   r   rw   ry   r8   r   rx   rp   r   r   rB   rq   r   r|   )rr   r<   rs   rt   rS   valuer   r   abs_key_parentrelative_path_cont_keyscont_keynestr   r   r   rj     s.   rj   r   rD   tuple[Pos, Key, Any]c                 C  sv   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   ri   r8   rh   r%   parse_value)rr   r<   rS   r   r   ru   r   r   r   r   r     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krOtdt dt| |t}q)NT.r   z#TOML key has more than the allowed z parts)parse_key_partrh   r%   ri   rL   r   RecursionError)rr   r<   key_partr   ru   r   r   r   r     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| |)Nra   r0   z(Invalid initial character for a key part)ri   r(   rh   parse_literal_strparse_one_line_basic_strr8   )rr   r<   ru   	start_posr   r   r   r     s   

r   c                 C  s   |d7 }t | |ddS )Nr   F	multiline)parse_basic_strrr   r<   r   r   r   r     s   r   tuple[Pos, list[Any]]c                 C  s   |d7 }g }t | |}| d|r|d |fS 	 t| |||\}}|| t | |}| ||d  }|dkr=|d |fS |dkrGtd| ||d7 }t | |}| d|r\|d |fS q)Nr   r   T,zUnclosed array)r   r   r   r   r8   )rr   r<   rS   r   arrayvalcr   r   r   parse_array  s&   



r   tuple[Pos, dict[str, Any]]c                 C  sh  |d7 }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| |}| ||d  }|dkr|d |jfS |d
krtd| ||d7 }t| |}| d|r|d |jfS t|ttfr|j|tjdd q)Nr   }Tr   r   Fr   r   zDuplicate inline table key r   zUnclosed inline tabler   )r   rw   r   r   rq   r   r   rx   r8   r   r   rB   r   r|   )rr   r<   rS   r   nested_dictrk   r   r   r   r   r   r   r   r   r   parse_inline_table  s@   


r   r   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 |dkrft| |dS z|t| fW S  ty{   td| |d w )Nr?   >   \	\ \
r    r&   zUnescaped '\' in a stringr   z\xz\u   z\U   )rh   r%   ri   r8   r'   parse_hex_charr2   r   )rr   r<   r   	escape_idru   r   r   r   parse_basic_str_escape?  s4   r   c                 C  s   t | |ddS )NTr   )r   r   r   r   r    parse_basic_str_escape_multiline^  s   r   hex_lenc                 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)rL   r+   
issupersetr8   rD   is_unicode_scalar_valuer   )rr   r<   r   hex_strhex_intr   r   r   r   b  s   
r   c                 C  s2   |d7 }|}t | |dtdd}|d | || fS )Nr   ra   Tr   )r   r"   )rr   r<   r   r   r   r   r   o  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   ra   '''Tr   r0   r   r?   )r   r   r#   r   )rr   r<   r   delimend_posresultr   r   r   parse_multiline_strx  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 stringr0   r   """r   r1   zIllegal character )r!   r   r    r   ri   r8   r   )	rr   r<   r   r   parse_escapesr   r   ru   parsed_escaper   r   r   r     s<   r   tuple[Pos, Any]c              
   C  s  |t krtdt  dz| | }W n ty   d }Y nw |dkr4| d|r/t| |ddS t| |S |dkrJ| d|rEt| |d	dS t| |S |d
krZ| d|rZ|d d	fS |dkrj| d|rj|d dfS |dkrwt| |||d S |dkrt| |||d 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| |)Nz;TOML inline arrays/tables are nested more than the allowed z levelsr0   r   F)r   ra   r   Tttruer   ffalse   rb   r   {zInvalid date or datetimer   >   infnan>   +inf+nan-inf-nanzInvalid value)r   r   ri   r   r   r   r   r   r   r   matchr   rH   r8   endr   r	   r   r
   )rr   r<   rS   r   ru   datetime_matchdatetime_objelocaltime_matchnumber_matchfirst_three
first_fourr   r   r   r     sf   

r   	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_strrC   rV   r   c                   s"    | }t |ttfrtd|S )Nz*parse_float must not return dicts or lists)rB   rq   r   rH   )r  float_valuerR   r   r   safe_parse_float  s   z/make_safe_parse_float.<locals>.safe_parse_floatN)r  rC   rV   r   )float)rS   r	  r   rR   r   rg     s   	rg   )rT   rU   rS   r   rV   rW   )r`   rC   rS   r   rV   rW   )rr   rC   r<   r   r   r   rV   r   )rr   rC   r<   r   r   rC   r   r   r   r   rV   r   )rr   rC   r<   r   rV   r   )rr   rC   r<   r   rs   rf   rV   r   )rr   rC   r<   r   rs   rf   rt   r   rS   r   rV   r   )
rr   rC   r<   r   rS   r   r   rD   rV   r   )rr   rC   r<   r   rV   r   )rr   rC   r<   r   rV   r   )
rr   rC   r<   r   rS   r   r   rD   rV   r   )
rr   rC   r<   r   rS   r   r   rD   rV   r   )rr   rC   r<   r   r   r   rV   r   )rr   rC   r<   r   r   rD   rV   r   )rr   rC   r<   r   r   r   rV   r   )
rr   rC   r<   r   rS   r   r   rD   rV   r   )r  rD   rV   r   )rS   r   rV   r   )I
__future__r   systypesr   _rer   r   r   r   r	   r
   TYPE_CHECKINGcollections.abcr   typingr   r   r   _typesr   r   r   getrecursionlimitr   r   r   	frozensetr   r   r   r    r!   r"   r#   r$   r%   r'   r(   r)   r+   r2   r3   rH   r8   r
  r_   r\   rw   r   rf   rh   r   ro   r   rn   rm   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rg   r   r   r   r   <module>   s    	*=G:"

	


	


"




%



	

 
L