
    )i&                        S SK r S SKrS SKrS SKJr  S SKJr  \R                  S:  a  \r	SS jr
SS jrS rS rS	 r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N)Decimal)InlineTableDict   c                 r    UR                   (       d  [        S5      e[        XS9nUR                  U5        U$ )a[  Writes out dict as toml to a file

Args:
    o: Object to dump into toml
    f: File descriptor where the toml should be stored
    encoder: The ``TomlEncoder`` to use for constructing the output string

Returns:
    String containing the toml corresponding to dictionary

Raises:
    TypeError: When anything other than file descriptor is passed
z0You can only dump an object to a file descriptor)encoder)write	TypeErrordumps)ofr   ds       L/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/toml/encoder.pydumpr      s1     77JKKa!AGGAJH    c                 D   SnUc  [        U R                  5      nUR                  U S5      u  p4X#-  n[        U 5      /nU(       a  UR	                  5        Vs/ s H  n[        U5      PM     nnU H  nX;   d  M
  [        S5      e   XW-  nUR                  5       n	U Hn  nUR                  XF   U5      u  p:U(       d  U(       d2  U
(       d+  U(       a  USS S:w  a  US-  nUSU-   S-   -  nU(       a  X#-  nU
 H  nX   XS	-   U-   '   M     Mp     U	nU(       a  M  U$ s  snf )
a  Stringifies input dict as toml

    Args:
        o: Object to dump into toml
        encoder: The ``TomlEncoder`` to use for constructing the output string

    Returns:
        String containing the toml corresponding to dict

    Examples:
        ```python
        >>> import toml
        >>> output = {
        ... 'a': "I'm a string",
        ... 'b': ["I'm", "a", "list"],
        ... 'c': 2400
        ... }
        >>> toml.dumps(output)
        'a = "I'm a string"
b = [ "I'm", "a", "list",]
c = 2400
'
        ```
     NzCircular reference detectedz


[]
.)TomlEncoder	__class__dump_sectionsidvalues
ValueErrorget_empty_table)r   r   retvaladdtoretvalsections
outer_objssectionsection_ids	outer_objnewsectionsaddtosectionsss               r   r   r   "   s:   . Fakk*#11!R8K
FQ%J
2://2CD2Cwr'{2CD#I' !>?? $ 	!
--/G)0)>)>!7*,&K ;}fRSkV3dNF#-%//)F"1>1AcMA-. #   ' (( M' Es   Dc                 .   [         R                  S:  a7  [        U S5      (       a&  [        U [        5      (       a  U R                  S5      n SU -  n U S   S:X  a  U SS  n U R                  S5      nU(       d  U R                  S	5      (       a  U SS
 n U(       a$  U R                  SS5      n U R                  S	S5      n U R                  S5      n [        U 5      S:  a  S
nU S   (       d  U SS  n U S   R                  SS5      U S'   U S   U   S:g  nU S   S U (       a3  U S   U   S:X  a'  U(       + nUS-  nU S   S U (       a  U S   U   S:X  a  M'  U(       a  SnOSnU S   U-   U S   -   /U SS  -   n [        U 5      S:  a  M  [        S	U S   -   S	-   5      $ )Nr   decodezutf-8z%rr   u   '"z\'z\"z\xz\\\xu00   )sysversion_infohasattr
isinstancestrr+   
startswithreplacesplitlenunicode)vsinglequoteijoinxjoiners        r   	_dump_strrD   V   s   
$71h#7#7Jq#<N<NHHWqAts{abE,,s#Kall3''aGIIeS!IIc5!	A
a&1*t!"At||FD)!!Q4d2Ah1Q47d?IEFA d2Ah1Q47d? FFqTF]QqT!"QqrU* a&1* 31:#$$r   c                 d    SR                  U 5      R                  SS5      R                  SS5      $ )N{}ze+0ze+ze-0ze-)formatr;   r?   s    r   _dump_floatrI   u   s*    ;;q>!!%.66udCCr   c                 n    U R                  5       nUc  U R                  5       $ U R                  5       S S $ )Ni)	utcoffset	isoformat)r?   rK   s     r   
_dump_timerM   y   s2    I{{};;="r   c                   @    \ rS rSr\S4S jrS rS rS rS r	S r
S	rg
)r      Fc                 "   Xl         X l        [        [        [        [        [
        U R                  [        S [        S [        [        [        [        [        R                  S [        R                  [        [        R                  S 0
U l        g )Nc                 4    [        U 5      R                  5       $ N)r>   lowerrH   s    r   <lambda>&TomlEncoder.__init__.<locals>.<lambda>   s    GAJ,,.r   c                     U $ rR    rH   s    r   rT   rU      s    1r   c                 B    U R                  5       R                  SS5      $ )Nz+00:00Z)rL   r;   rH   s    r   rT   rU      s    )>)>x)Mr   c                 "    U R                  5       $ rR   )rL   rH   s    r   rT   rU      s
    Q[[]r   )_dictpreserver9   rD   r>   list	dump_listboolintfloatrI   r   datetimetimerM   date
dump_funcs)selfr[   r\   s      r   __init__TomlEncoder.__init__   s\    
 Y$...;[MMM:MM2
r   c                 "    U R                  5       $ rR   )r[   )rf   s    r   r   TomlEncoder.get_empty_table   s    zz|r   c                 l    SnU H&  nUS[        U R                  U5      5      -   S-   -  nM(     US-  nU$ )Nr    ,])r>   
dump_value)rf   r?   r    r,   s       r   r^   TomlEncoder.dump_list   sA    AcGDOOA$677#==F #r   c                 "   Sn[        U[        5      (       a_  / nUR                  5        H-  u  pEU R                  U5      nUR	                  US-   U-   5        M/     USSR                  U5      -   S-   -  nU$ [        U R                  U5      5      $ )zPreserve inline table in its compact syntax instead of expanding
into subsection.

https://github.com/toml-lang/toml#user-content-inline-table
r    = z{ z, z }
)r8   dictitemsdump_inline_tableappendjoinr>   ro   )rf   r$   r    val_listkr?   vals          r   ru   TomlEncoder.dump_inline_table   s     gt$$H,,Q/E	C0 ( dTYYx00699FM4??7344r   c                     U R                   R                  [        U5      5      nUc$  [        US5      (       a  U R                   [           nUb  U" U5      $ U R                   [
           " U5      $ )N__iter__)re   gettyper7   r]   r9   )rf   r?   dump_fns      r   ro   TomlEncoder.dump_value   s[    //%%d1g.?wq*55ood+G$0wqzMdooc6J16MMr   c           	      4   SnUS:w  a  US   S:w  a  US-  nU R                  5       nSnU GH  n[        U5      nUn[        R                  " SU5      (       d  [	        U5      n[        X   [        5      (       GdG  Sn[        X   [        5      (       a$  X    H  n	[        U	[        5      (       d  M  SnM     U(       a  X    H  n	Sn
USU-   U-   S	-   -  nU R                  XU-   5      u  pU(       a  US
   S:X  a  X-  n
OX[-  nU(       ay  U R                  5       nU HX  nU R                  X   UU-   S-   U-   5      u  nnU(       a  U
SU-   U-   S-   U-   S-   -  n
X-  n
U H  nUU   XS-   U-   '   M     MZ     UnU(       a  My  XZ-  nM     GMe  X   b*  X7S-   [        U R                  X   5      5      -   S-   -  nGM  GM  U R                  (       a5  [        X   [        5      (       a  X7S-   U R                  X   5      -   -  nGM  X   XG'   GM     X5-  nX44$ )Nr   r0   r   z^[A-Za-z0-9_-]+$FTr   z[[z]]
r   r   r   rr   )r[   r>   rematchrD   r8   rs   r]   r   ro   r\   r   ru   )rf   r   supretstrretdictarraystrr$   qsectionarrayoftablesaarraytabstrr)   r   newddsecs1d1s                    r   r   TomlEncoder.dump_sections   sh   "9RC3JC**,Gg&GH88/99$W-aj$// %aj$//Z%a..,0M ( !Z&* D3J$9F$BB#11!8^D ts{ + 0 (#'::<D())-););AGS<DFEGJFK<@FA *BB $&$/C#I4H4758:>5?AF5G %HK$/$5K*,B<>rFDb$9 +- )* !%A  a !/- (0 z-e#3#*4??1:+F#G$HJN$O P . :aj/#J#Je+11!*=> ? %&J!W X 	  r   )r[   re   r\   N)__name__
__module____qualname____firstlineno__rs   rg   r   r^   ru   ro   r   __static_attributes__rW   r   r   r   r      s&    !E 
 5"N3!r   r   c                   .   ^  \ rS rSr\4U 4S jjrSrU =r$ )TomlPreserveInlineDictEncoder   c                 .   > [         [        U ]  US5        g )NT)superr   rg   )rf   r[   r   s     r   rg   &TomlPreserveInlineDictEncoder.__init__   s    +T;E4Hr   rW   r   r   r   r   rs   rg   r   __classcell__r   s   @r   r   r      s    ! I Ir   r   c                   8   ^  \ rS rSr\SS4U 4S jjrS rSrU =r$ )TomlArraySeparatorEncoder   Frm   c                    > [         [        U ]  X5        UR                  5       S:X  a  SU-   nO!UR                  S5      (       a  [	        S5      eX0l        g )Nr   rm   z 	
,zInvalid separator for arrays)r   r   rg   stripr   	separator)rf   r[   r\   r   r   s       r   rg   "TomlArraySeparatorEncoder.__init__   sK    '7H??"iI__Z((;<<"r   c                 >   / nSnU H#  nUR                  U R                  U5      5        M%     U/ :w  ad  / nU HR  n[        U[        5      (       a  U H  nUR                  U5        M     M4  US[	        U5      -   U R
                  -   -  nMT     UnU/ :w  a  Md  US-  nU$ )Nr   rl   rn   )rv   ro   r8   r]   r>   r   )rf   r?   tr    r,   r)   rs          r   r^   #TomlArraySeparatorEncoder.dump_list   s    AHHT__Q'( 2gAa&&  cGAJ.??F  A 2g 	#r   )r   )	r   r   r   r   rs   rg   r^   r   r   r   s   @r   r   r      s    !ES # r   r   c                   6   ^  \ rS rSr\S4U 4S jjrS rSrU =r$ )TomlNumpyEncoderi  Fc                   > SS K n[        [        U ]  X5        [        U R
                  UR                  '   [        U R
                  UR                  '   [        U R
                  UR                  '   U R                  U R
                  UR                  '   U R                  U R
                  UR                  '   U R                  U R
                  UR                  '   g )Nr   )numpyr   r   rg   rI   re   float16float32float64	_dump_intint16int32int64)rf   r[   r\   npr   s       r   rg   TomlNumpyEncoder.__init__  s    .u?&1

#&1

#&1

#$(NN!$(NN!$(NN!r   c                 6    SR                  [        U5      5      $ )NrF   )rG   r`   rf   r?   s     r   r   TomlNumpyEncoder._dump_int  s    {{3q6""r   rW   )	r   r   r   r   rs   rg   r   r   r   r   s   @r   r   r     s    !E 3# #r   r   c                   0   ^  \ rS rSr\S4U 4S jjrSrU =r$ )TomlPreserveCommentEncoderi  Fc                 `   >^  SSK Jn  [        [        T ]  X5        U 4S jT R
                  U'   g )Nr   )CommentValuec                 :   > U R                  TR                  5      $ rR   )r   ro   )r?   rf   s    r   rT   5TomlPreserveCommentEncoder.__init__.<locals>.<lambda>#  s    !&&2Ir   )toml.decoderr   r   r   rg   re   )rf   r[   r\   r   r   s   `   r   rg   #TomlPreserveCommentEncoder.__init__   s$    -($8I(I%r   rW   r   r   s   @r   r   r     s    !E J Jr   r   c                   .   ^  \ rS rSrS rU 4S jrSrU =r$ )TomlPathlibEncoderi&  c                 *    [        [        U5      5      $ rR   )rD   r9   r   s     r   _dump_pathlib_path%TomlPathlibEncoder._dump_pathlib_path(  s    Q  r   c                    > S[         R                  ::  a)  SS Kn[        XR                  5      (       a  [        U5      n[        [        U ]#  U5      $ )N)r      r   )	r5   r6   pathlibr8   PurePathr9   r   r   ro   )rf   r?   r   r   s      r   ro   TomlPathlibEncoder.dump_value+  sA    S%%%!--..F'9!<<r   rW   )r   r   r   r   r   ro   r   r   r   s   @r   r   r   &  s    != =r   r   rR   )rb   r   r5   decimalr   r   r   r6   r9   r>   r   r   rD   rI   rM   objectr   r   r   r   r   r   rW   r   r   <module>r      s     	 
  (tG,1h%>Dh!& h!VIK I 8#{ # J J
= 
=r   