U n a[@sdZddlZddlZddlZddlmZddlZdZdZGddde Z Gdd d ej Z Gd d d e Zd d ZzeZWn$ek reZeZeZeZYnXzeZWnek reZYnXefddZedZefddZ dGddZ!edZ"ddZ#ddZ$ddZ%ddZ&dd Z'd!d"d#d$d%d&d'gZ(d(d)d*d+d,d-d'gZ)ee*e(e)Z+d.d/Z,dHd1d2Z-d3d4Z.d5d6Z/d7d8Z0dId9d:Z1dJd;d<Z2d=d>Z3d?d@Z4dAdBZ5dCdDZ6dEdFZ7dS)KzLPython module which parses and emits TOML. Released under the MIT license. N)linesepz0.9.6z0.4.0c@seZdZdZdS)TomlDecodeErrorzBase toml Exception / Error.N__name__ __module__ __qualname____doc__r r QC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\toml.pyrsrc@s,eZdZddZddZddZddZd S) TomlTzcCsZ|dkrd|_n||_|jddkr(dnd|_t|jdd|_t|jdd |_dS) NZ+00:00r-) _raw_offset_signint_hours_minutes)self toml_offsetr r r __init__s zTomlTz.__init__cCs d|jS)NUTC)rrdtr r r tznamesz TomlTz.tznamecCs|jtj|j|jdS)N)hoursminutes)rdatetime timedeltarrrr r r utcoffset!s zTomlTz.utcoffsetcCs tdS)Nr)r"r#rr r r dst%sz TomlTz.dstN)rrrrrr$r%r r r r r s r c@seZdZdZdS)InlineTableDictz,Sentinel subclass of dict for inline tables.Nrr r r r r&)sr&cCsGddd|t}|S)Nc@seZdZdZdS)z7_get_empty_inline_table..DynamicInlineTableDictzConcrete sentinel subclass for inline tables. It is a subclass of _dict which is passed in dynamically at load time It is also a subclass of InlineTableDict Nrr r r r DynamicInlineTableDict.sr')r&)_dictr'r r r _get_empty_inline_table-sr)c st|tr]s zload..z.Load expects a list to contain filenames only.zAThe list needs to contain the path of at least one existing file.z>Non-existent filename in list with at least one valid filenamez5You can only load a file descriptor, filename or listN) isinstance basestringioopenloadsreadlistosr,warningsr-rFNFErrorr.updateloadAttributeError TypeError)fr(ffiler- error_msgdlr r0r r>Es* "     r>^[A-Za-z0-9_-]+$c" Cs g}|}|}t|ts tdt|ts4|d}t|}d}d}d}d} d} d} d} d} t|D]\}}|dkr||dd krd ||<qd| r,|d krtd |r||krdd } d}d}qdnJ| dkr|rd } qdn| sd|d ksd|dkrqdn| d kr |r qd|dkrd} ntd|d|dkr|dkrd}z0|||dkrr|d7}|dkrFqrqFWnt k rYnX|dkr| } | }n| }|rd}nd}|dkr|dkrd}d}d}zr|||dkr |d7}|dkrd}q q|dks$|dkrH|rH|||dkrH| }|d7}q$Wnt k r`YnX|s|rz| } | }n| }|rd}nd}|dkr|s| s| s|}z&||d krd ||<|d7}qWnt k rYqYnX|dkrP|sP| sP| sP| rHt ||dkrB||ddkrBd} nd} n|d7}|dkr|s| rld} n&| r||ddkrd} n|d8}|d krB|s| r,| std||ddks||ddkr@||d ||dkr@||d||<||d||dkr@d ||d<n|r|| ||| <|t |dk rl| rl|g|| <YnX|| }| rz |d}Wntk rYnXqn|dd,k r|dd-k rtd.zt|||||Wn0tk r}ztt|W5d}~XYnXndd|krzt|||||}!Wn0tk rd}ztt|W5d}~XYnX|!dk r|!\}} }q|S)/aDParses string as toml Args: s: String to be parsed _dict: (optional) Specifies the class of the returned toml dictionary Returns: Parsed toml file represented as a dictionary Raises: TypeError: When a non-string is passed TomlDecodeError: Error while decoding toml z!Expecting something like a stringutf8rFT r  z2Key name found without value. Reached end of line._r=z&Found invalid character in key name: 'z'. Try quoting the key name.'"r\#[]zUnbalanced quotes zFound empty keyname. Nrz,Opening key group bracket on line by itself.z]]z"Key group not on a line by itself..zInvalid group name 'z ' Something z went wrong.z'. Try quoting it.z(Can't have a keygroup with an empty namez-An implicitly defined table can't be an arrayzWhat? z already exists?{}z,Line breaks are not allowed in inlineobjects)r3r4r@unicodedecoder9 enumeraterisspaceisalnum IndexErrorlenjoinsplitstrip _load_value ValueErrorstr_get_split_on_quotescount _groupname_rematch_rangeremoveappendKeyError_load_inline_object _load_line)"sr(implicitgroupsretval currentlevelslopenarr openstring openstrchar multilinestr arrayoftables beginlinekeygroupkeynameiitemk oddbackslash tripquotejmultikeymultibackslashlinevaluevtypeerrsplitstr quotesplitsquoted quotesplitgroupsgroupstrgroupretr r r r7vs        $  $            $$                 r7Fc CsR|ddd}g}t|dkr6|ds6|t|dkr"|d}z|dd\}} Wntk r~tdYnX| } | d| dkr| ddks| ddks| d ks| dd kr| dd ks| dd kr| dd kr||q6t|dkr|d|d|d<q6tdq6|D]&} t| ||||} | dk r&qNq&dS)Nrr,rrNz Invalid inline table encountered)rPrOz -0123456789)truefalserSrTrYrZz&Invalid inline table value encountered)rcrardpoprfrnrq) rrur(rrcandidate_groupsrcandidate_grouprMrrstatusr r r rpsD          rpz([0-9])(_([0-9]))*cCs|}|sdS|ddkr dS|ddkr0dSd|ks@d|krDdSt|dkrTdS|dd krp|dd krpdS|dd ks|dd kr|dd}|dd kr|dd krdSd |krdSdS)NFrrMrz_.z._rT0rX+r__)rdra)nr r r _strictly_valid_nums(    rcCs|d}d}g}t|dkrd|dkr|dd}|dd}t|ddkrt|r|dd|d7<|dd}d|dkrD|dd|dd}qD||7}|D](}|r||q||d7}| }q|S)NrPFrrOrrLr)rcrarn)rdoublequotesplitsrrsinglequotesplitsdoublequotesplitr r r rhs(       rhcCsd}t|}d}|D](}|s(d|kr(q>||d7}| }q|d|} t| d} t| drx| ddd| d<t| dr| dddkr| ddd kr| ddd kr| ddd kr| ddd kr| ddd kr| ddkr| ddkrzt| dWqWnt k r:YnXt | ddk rRq|d7}| d} |d|} | | dkrt d| rxt| d} qxd | dd | d g} | ddd ks| ddd kr| ddd ks| ddd kr| ddd| d<t| ddkrJ| ddd ksJ| ddd krJ| dd| ddkrJ| dd| ddkrJt| ddkr| dd| ddkr| dd| ddkr| dd| ddksJt| dd} | dkr| d| dkr| }| d8} q|r4| ddd} n | dd} | d}nt | d|| \}}z|| dt dWn6tk r|r|| |fYS||| d<YnXdS)NrFrNrrMrHrrKrUrOrPrSrYrrzInvalid date or numberrLrVrWrQrJzDuplicate keys!)rhrircr_number_with_underscoresrkreplacerafloatrf _load_daterbrdrero)rrur(rrrrrrpairstrictly_validprev_valrrzrrr r r rqs   2     "$6     rqc Csd}d}zt|dkr|ddkr|ddkrD|dd}d}nb|dd}d|kr||d}|d|}||d}n*d|kr|d}|d|}||d}t|}tt|d d t|}nt|dd}Wntk rd}YnXd|d dkrdSzdtt|dd t|d dt|dd t|ddt|ddt|dd||}Wntk rYdSX|S)NrrXrr rr rrrr )raupperindexr rrfr")val microsecondtz subsecondvaltzvalsubsecondvalandtz splitpointrDr r r r'sP          rcCs(d}t|d}|dkr4||dkr4| }|d8}q|D]}|rd}t|d}|dkrt||dkrt| }|d8}qP||7}||7}q8d}d}d}|dkrd }d||||}|d rtd ||dd kr|dd rtd |d|tt|d7}|t|t|d7}q8|S)NFrrrQrHrr\Ur0123456789abcdefzInvalid escape sequence: rD01234567z). Only scalar unicode points are allowed.r)rarblowerrdrfunichrrr[)vhexbytesprefixskiprhxhxbhxblenr r r _load_unicode_escapesMs<      rrbrArrtrP rJrIrUcCsd}d}|t|kr|rd}||tkrV|d|dt||||dd}q||dkr|d|d||d}q||dks||dkr|d7}qtdqn||dkrd }|d7}q|S) z%Unescape characters in a TOML string.rFNrrQuUReserved escape sequence usedT)ra_escapes_escape_to_escapedcharsrf)rr backslashr r r _unescapews"  .    rTc Cs|s td|dkrdS|dkr$dS|ddkr0|ddd}d }d}t|dkr|dd kr|dd kr|d d}d }d }|D]}|d kr|r|d7}nd }qd }z0d } || } | dkr| }| d8} || } qWntk rYnX|s|rtdq|r|dkrd }qd}q|ddd} d } | D]Z} | d krR| } nB| dtkr| ddkr| ddkr| std| rz_dump_value..cSs t|Sr)r[rrr r r rrcSs|ddS)Nr r ) isoformatrrr r r rr__iter__) rg _dump_strr[r9 _dump_listrrr _dump_floatr"gettypehasattr)r dump_funcsdump_fnr r r rs& rcCsXtjdkr(t|dr(t|tr(|d}d|}|ddkrH|dd}|d}|s`|d rl|dd }|r|d d}|d d }|d }t |dkrDd }|ds|dd}|ddd|d<|d|dk}|dd|r|d|dkr| }|d8}q|rd}nd}|d||dg|dd}qt d |dd S)N)rr\r*z%rrrrrOrPrz\'z\"z\xz\\rQxu00rL) sys version_infor r3rgr\rrrcrar[)r singlequoterjoinxjoinerr r r rs4         $ $rcCs2d}|D]}|dtt|d7}q|d7}|S)NrSrKrrT)r[r)rrtrr r r rs rcCsd|ddddS)Nz{0:.16}ze+0ze+ze-0ze-)formatrrr r r rsr)FF)T)F)F)8rrr5r"r:rr% __version___spec_ Exceptionrtzinfor objectr&r)xrangerl NameErrorrgr[ranger4chrrFileNotFoundErrorr<IOErrorrr>compilerjr7rprrrhrqrrr _escapedcharsziprrrerrrrrrrrrrr r r r sf     .  $  ?&# cW 7