zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
U
I=®dã&ã@sÎddlZddlZddlZddlmZddlmZejdkr>eZ    ddd„Z
ddd„Z d    d
„Z d d „Z d d„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZdS)éN)ÚDecimal)ÚInlineTableDict©écCs(|jstdƒ‚t||d}| |¡|S)aWrites 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Úd©r úOD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_vendor/toml/encoder.pyÚdump s
 
rc Csþd}|dkrt|jƒ}| |d¡\}}||7}t|ƒg}|rúdd„|Dƒ}|D]}||krNtdƒ‚qN||7}| ¡}|D]z}    | ||    |    ¡\}}
|sœ|sÔ|
sÔ|r¸|dd…dkr¸|d7}|d    |    d
7}|rÔ||7}|
D]} |
| ||    d | <qØqx|}q8|S) aStringifies 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
'
        ```
    ÚNcSsg|] }t|ƒ‘qSr )Úid)Ú.0Úsectionr r rÚ
<listcomp>@szdumps.<locals>.<listcomp>zCircular reference detectedéþÿÿÿz
 
Ú
ú[ú]
Ú.)Ú TomlEncoderÚ    __class__Ú dump_sectionsrÚ
ValueErrorÚget_empty_table) r
rÚretvalÚ addtoretvalÚsectionsÚ
outer_objsÚ section_idsÚ    outer_objÚ newsectionsrÚ addtosectionsÚsr r rr    "s8
 
 
ÿ r    cCsXtjdkr(t|dƒr(t|tƒr(| d¡}d|}|ddkrH|dd…}| d¡}|s`| d    ¡rl|dd
…}|rˆ| d d¡}| d    d ¡}| d ¡}t    |ƒdkrDd
}|ds¸|dd…}|d dd¡|d<|d|dk}|dd|…r|d|dkr| }|d8}qÜ|rd}nd}|d||dg|dd…}q’t
d    |dd    ƒS)NrÚdecodezutf-8z%rrÚuéú'ú"éÿÿÿÿz\'z\"z\xz\\ú\ÚxÚu00é) ÚsysÚ version_infoÚhasattrÚ
isinstanceÚstrr(Ú
startswithÚreplaceÚsplitÚlenÚunicode)ÚvÚ singlequoteÚiÚjoinxÚjoinerr r rÚ    _dump_strVs4
 
 
 $
$rAcCsd |¡ dd¡ dd¡S)Nú{}ze+0ze+ze-0ze-)Úformatr8©r<r r rÚ _dump_floatusrEcCs(| ¡}|dkr| ¡S| ¡dd…S)Niúÿÿÿ)Ú    utcoffsetÚ    isoformat)r<rFr r rÚ
_dump_timeysrHc@sBeZdZedfdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dS)rFcCsV||_||_ttttt|jtdd„tdd„t    t
t t
t j dd„t j tt jdd„i
|_dS)NcSs t|ƒ ¡S©N)r;ÚlowerrDr r rÚ<lambda>Šóz&TomlEncoder.__init__.<locals>.<lambda>cSs|SrIr rDr r rrK‹rLcSs| ¡ dd¡S)Nz+00:00ÚZ)rGr8rDr r rrKŽrLcSs| ¡SrI)rGrDr r rrKrL)Ú_dictÚpreserver6rAr;ÚlistÚ    dump_listÚboolÚintÚfloatrErÚdatetimeÚtimerHÚdateÚ
dump_funcs)ÚselfrNrOr r rÚ__init__ƒs.özTomlEncoder.__init__cCs| ¡SrI)rN©rYr r rr“szTomlEncoder.get_empty_tablecCs4d}|D]}|dt| |¡ƒd7}q|d7}|S)Nrú ú,ú])r;Ú
dump_value)rYr<rr)r r rrQ–s
zTomlEncoder.dump_listcCsld}t|tƒrZg}| ¡D]$\}}| |¡}| |d|¡q|dd |¡d7}|St| |¡ƒSdS)z§Preserve 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 }
N)r5ÚdictÚitemsÚdump_inline_tableÚappendÚjoinr;r_)rYrrÚval_listÚkr<Úvalr r rrcs
 
zTomlEncoder.dump_inline_tablecCsJ|j t|ƒ¡}|dkr,t|dƒr,|jt}|dk    r<||ƒS|jt|ƒS)NÚ__iter__)rXÚgetÚtyper4rPr6)rYr<Údump_fnr r rr_®s
zTomlEncoder.dump_valuecCsd}|dkr |ddkr |d7}| ¡}d}|D]Ê}t|ƒ}|}t d|¡sVt|ƒ}t||tƒs¼d}t||tƒr”||D]}    t|    tƒr€d}q€|rŠ||D]ä}    d}
|d||d    7}| |    ||¡\} } | rô| d
d krì|
| 7}
n|| 7}| r~| ¡} | D]p}| | |||d|¡\}}|rT|
d ||d|d 7}
|
|7}
|D]}||| |d|<qXq| } qô||
7}q¢n0||dk    rü||d t|     ||¡ƒd7}q0|j
rðt||t ƒrð||d |  ||¡7}q0||||<q0||7}||fS)Nrr-rz^[A-Za-z0-9_-]+$FTrz[[z]]
rrrr`) rNr;ÚreÚmatchrAr5rarPrr_rOrrc)rYr
ÚsupÚretstrÚretdictÚarraystrrÚqsectionÚ arrayoftablesÚaÚ arraytabstrr'r ÚnewdÚdsecÚs1Úd1r r rr¶sz
 
 
 ÿÿþ
 ÿÿÿ ÿÿ ÿzTomlEncoder.dump_sectionsN)
Ú__name__Ú
__module__Ú __qualname__rarZrrQrcr_rr r r rrs rcs eZdZef‡fdd„    Z‡ZS)ÚTomlPreserveInlineDictEncodercstt|ƒ |d¡dS)NT)Úsuperr~rZ)rYrN©rr rrZîsz&TomlPreserveInlineDictEncoder.__init__©r{r|r}rarZÚ __classcell__r r r€rr~ìsr~cs,eZdZeddf‡fdd„    Zdd„Z‡ZS)ÚTomlArraySeparatorEncoderFr]csDtt|ƒ ||¡| ¡dkr(d|}n| d¡r:tdƒ‚||_dS)Nrr]z     
,zInvalid separator for arrays)rrƒrZÚstriprÚ    separator)rYrNrOr…r€r rrZôs  
 
z"TomlArraySeparatorEncoder.__init__cCs€g}d}|D]}| | |¡¡q |gkrtg}|D]:}t|tƒrV|D]}| |¡qDq2|dt|ƒ|j7}q2|}q"|d7}|S)Nrr\r^)rdr_r5rPr;r…)rYr<Útrr)r'Úrr r rrQüs
z#TomlArraySeparatorEncoder.dump_list)r{r|r}rarZrQr‚r r r€rrƒòsrƒcs*eZdZedf‡fdd„    Zdd„Z‡ZS)ÚTomlNumpyEncoderFcslddl}tt|ƒ ||¡t|j|j<t|j|j<t|j|j<|j    |j|j
<|j    |j|j <|j    |j|j <dS)Nr) ÚnumpyrrˆrZrErXÚfloat16Úfloat32Úfloat64Ú    _dump_intÚint16Úint32Úint64)rYrNrOÚnpr€r rrZs   zTomlNumpyEncoder.__init__cCsd t|ƒ¡S)NrB)rCrS©rYr<r r rrszTomlNumpyEncoder._dump_int)r{r|r}rarZrr‚r r r€rrˆs
rˆcs"eZdZedf‡fdd„    Z‡ZS)ÚTomlPreserveCommentEncoderFcs4ddlm}ttˆƒ ||¡‡fdd„ˆj|<dS)Nr)Ú CommentValuecs | ˆj¡SrI)rr_rDr[r rrK#rLz5TomlPreserveCommentEncoder.__init__.<locals>.<lambda>)Úpip._vendor.toml.decoderr”rr“rZrX)rYrNrOr”r€r[rrZ s z#TomlPreserveCommentEncoder.__init__rr r r€rr“sr“cs$eZdZdd„Z‡fdd„Z‡ZS)ÚTomlPathlibEncodercCs tt|ƒƒSrI)rAr6r’r r rÚ_dump_pathlib_path(sz%TomlPathlibEncoder._dump_pathlib_pathcs6dtjkr&ddl}t||jƒr&t|ƒ}tt|ƒ |¡S)N)rér)    r2r3Úpathlibr5ÚPurePathr6rr–r_)rYr<r™r€r rr_+s
 
 zTomlPathlibEncoder.dump_value)r{r|r}r—r_r‚r r r€rr–&sr–)N)N)rUrmr2Údecimalrr•rr3r6r;rr    rArErHÚobjectrr~rƒrˆr“r–r r r rÚ<module>s"  
 
 
4k