o ¬£`MÈã@sLddgZddlmZddlTGdd„deƒZGdd„dƒZGdd„dƒZd S) ÚScannerÚ ScannerErroré)ÚMarkedYAMLError)Ú*c@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú./usr/lib/python3/dist-packages/yaml/scanner.pyr sc@seZdZdd„ZdS)Ú SimpleKeycCs(||_||_||_||_||_||_dS©N)Ú token_numberÚrequiredÚindexÚlineÚcolumnÚmark)Úselfr rrrrrr r r Ú__init__&s  zSimpleKey.__init__N)rrrrr r r r r #s r c@sÂeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#dCdD„Z$dEdF„Z%dGdH„Z&dIdJ„Z'dKdL„Z(dMdN„Z)dOdP„Z*dQdR„Z+dSdT„Z,dUdV„Z-dWdX„Z.dYdZ„Z/d[d\„Z0d]d^„Z1d_d`„Z2dadb„Z3dcdd„Z4dedf„Z5dgdh„Z6didj„Z7dkdl„Z8dmdn„Z9dodp„Z:dqdr„Z;dsdt„Zdydz„Z?d{d|„Z@id}d~“dd€“dd‚“dƒd„“d„d„“d…d†“d‡dˆ“d‰dŠ“d‹dŒ“ddŽ“dd“dd“d‘d‘“d’d’“d“d”“d•d–“d—d˜“d™dši¥ZAd›dœddžœZBdŸd „ZCd¡d¢„ZDd£d¤„ZEd¥d¦„ZFd§d¨„ZGd©dª„ZHd«d¬„ZId­d®„ZJd¯d°„ZKd±S)²rcCs<d|_d|_g|_| ¡d|_d|_g|_d|_i|_dS)zInitialize the scanner.FééÿÿÿÿTN) ÚdoneÚ flow_levelÚtokensÚfetch_stream_startÚ tokens_takenÚindentÚindentsÚallow_simple_keyÚpossible_simple_keys©rr r r r0s  zScanner.__init__cGsJ| ¡r | ¡| ¡s|jr#|sdS|D] }t|jd|ƒr"dSqdS)NTrF)Úneed_more_tokensÚfetch_more_tokensrÚ isinstance)rÚchoicesÚchoicer r r Ú check_tokenqsÿÿzScanner.check_tokencCs,| ¡r | ¡| ¡s|jr|jdSdS)Nr)r!r"rr r r r Ú peek_token}s ÿ zScanner.peek_tokencCs<| ¡r | ¡| ¡s|jr|jd7_|j d¡SdS)Nrr)r!r"rrÚpopr r r r Ú get_token‡sÿ þzScanner.get_tokencCs2|jrdS|js dS| ¡| ¡|jkrdSdS)NFT)rrÚstale_possible_simple_keysÚnext_possible_simple_keyrr r r r r!‘sÿzScanner.need_more_tokenscCs¶| ¡| ¡| |j¡| ¡}|dkr| ¡S|dkr&| ¡r&| ¡S|dkr2| ¡r2|  ¡S|dkr>|  ¡r>|  ¡S|dkrF|  ¡S|dkrN|  ¡S|dkrV| ¡S|dkr^| ¡S|d krf| ¡S|dkrr| ¡rr| ¡S|d kr~| ¡r~| ¡S|d krŠ| ¡rŠ| ¡S|d kr’| ¡S|d krš| ¡S|dkr¢| ¡S|dkr­|js­| ¡S|dkr¸|js¸| ¡S|dkrÀ| ¡S|dkrÈ| ¡S| ¡rÐ|  ¡St!ddd|| "¡ƒ‚)Núú%ú-Ú.ú[ú{ú]ú}ú,ú?ú:rú&ú!ú|ú>ú'ú"z!while scanning for the next tokenz.found character %r that cannot start any token)#Úscan_to_next_tokenr*Ú unwind_indentrÚpeekÚfetch_stream_endÚcheck_directiveÚfetch_directiveÚcheck_document_startÚfetch_document_startÚcheck_document_endÚfetch_document_endÚfetch_flow_sequence_startÚfetch_flow_mapping_startÚfetch_flow_sequence_endÚfetch_flow_mapping_endÚfetch_flow_entryÚcheck_block_entryÚfetch_block_entryÚ check_keyÚ fetch_keyÚ check_valueÚ fetch_valueÚ fetch_aliasÚ fetch_anchorÚ fetch_tagrÚ fetch_literalÚ fetch_foldedÚ fetch_singleÚ fetch_doubleÚ check_plainÚ fetch_plainrÚget_mark©rÚchr r r r"œs`  þzScanner.fetch_more_tokenscCs6d}|jD]}|j|}|dus|j|kr|j}q|Sr )rr )rÚmin_token_numberÚlevelÚkeyr r r r+s  €z Scanner.next_possible_simple_keycCs\t|jƒD]&}|j|}|j|jks|j|jdkr+|jr'td|jd| ¡ƒ‚|j|=qdS)Niúwhile scanning a simple keyúcould not find expected ':')Úlistrrrrrrr[)rr_r`r r r r*s  ÿ€ùz"Scanner.stale_possible_simple_keyscCsb|j o |j|jk}|jr/| ¡|jt|jƒ}t|||j |j |j|  ¡ƒ}||j |j<dSdSr ) rrrrÚremove_possible_simple_keyrÚlenrr rrr[r)rrr r`r r r Úsave_possible_simple_key'sÿûz Scanner.save_possible_simple_keycCsD|j|jvr |j|j}|jrtd|jd| ¡ƒ‚|j|j=dSdS)Nrarb)rrrrrr[)rr`r r r rd8s  ÿùz"Scanner.remove_possible_simple_keycCsL|jrdS|j|kr$| ¡}|j ¡|_|j t||ƒ¡|j|ks dSdSr )rrr[rr(rÚappendÚ BlockEndToken)rrrr r r r>Es  ýzScanner.unwind_indentcCs&|j|kr|j |j¡||_dSdS)NTF)rrrg)rrr r r Ú add_indent]s zScanner.add_indentcCs$| ¡}|j t|||jd¡dS)N)Úencoding)r[rrgÚStreamStartTokenrj©rrr r r rgs  ÿzScanner.fetch_stream_startcCsB| d¡| ¡d|_i|_| ¡}|j t||ƒ¡d|_dS)NrFT) r>rdrrr[rrgÚStreamEndTokenrrlr r r r@ss  zScanner.fetch_stream_endcCs,| d¡| ¡d|_|j | ¡¡dS)NrF)r>rdrrrgÚscan_directiver r r r rB†s zScanner.fetch_directivecCó| t¡dSr )Úfetch_document_indicatorÚDocumentStartTokenr r r r rD’ózScanner.fetch_document_startcCror )rpÚDocumentEndTokenr r r r rF•rrzScanner.fetch_document_endcCsH| d¡| ¡d|_| ¡}| d¡| ¡}|j |||ƒ¡dS)NrFé)r>rdrr[Úforwardrrg©rÚ TokenClassÚ start_markÚend_markr r r rp˜s  z Scanner.fetch_document_indicatorcCror )Úfetch_flow_collection_startÚFlowSequenceStartTokenr r r r rG¨rrz!Scanner.fetch_flow_sequence_startcCror )rzÚFlowMappingStartTokenr r r r rH«rrz Scanner.fetch_flow_mapping_startcCsJ| ¡|jd7_d|_| ¡}| ¡| ¡}|j |||ƒ¡dS)NrT)rfrrr[rurrgrvr r r rz®óz#Scanner.fetch_flow_collection_startcCror )Úfetch_flow_collection_endÚFlowSequenceEndTokenr r r r rI¿rrzScanner.fetch_flow_sequence_endcCror )r~ÚFlowMappingEndTokenr r r r rJÂrrzScanner.fetch_flow_mapping_endcCsJ| ¡|jd8_d|_| ¡}| ¡| ¡}|j |||ƒ¡dS)NrF)rdrrr[rurrgrvr r r r~År}z!Scanner.fetch_flow_collection_endcCs<d|_| ¡| ¡}| ¡| ¡}|j t||ƒ¡dS©NT)rrdr[rurrgÚFlowEntryToken)rrxryr r r rKÖs zScanner.fetch_flow_entrycCs„|js#|jstddd| ¡ƒ‚| |j¡r"| ¡}|j t||ƒ¡n d|_|  ¡| ¡}|  ¡| ¡}|j t ||ƒ¡dS)Nz%sequence entries are not allowed hereT) rrrr[rirrrgÚBlockSequenceStartTokenrdruÚBlockEntryToken©rrrxryr r r rMäs"þ €zScanner.fetch_block_entrycCs„|js"|jstddd| ¡ƒ‚| |j¡r"| ¡}|j t||ƒ¡|j |_|  ¡| ¡}|  ¡| ¡}|j t ||ƒ¡dS)Nz!mapping keys are not allowed here) rrrr[rirrrgÚBlockMappingStartTokenrdruÚKeyTokenr…r r r rOsþ  zScanner.fetch_keycCs|j|jvr>|j|j}|j|j=|j |j|jt|j|jƒ¡|js:| |j ¡r:|j |j|jt |j|jƒ¡d|_ n.|jsM|j sMt ddd|  ¡ƒ‚|jsc| |j ¡rc|  ¡}|j t ||ƒ¡|j |_ | ¡|  ¡}| ¡|  ¡}|j t||ƒ¡dS)NFz#mapping values are not allowed here)rrrÚinsertr rr‡rrirr†rrr[rgrdruÚ ValueToken)rr`rrxryr r r rQ!s8    ÿ  ÿþ  zScanner.fetch_valuecCó$| ¡d|_|j | t¡¡dS©NF)rfrrrgÚ scan_anchorÚ AliasTokenr r r r rRYózScanner.fetch_aliascCrŠr‹)rfrrrgrŒÚ AnchorTokenr r r r rSdrŽzScanner.fetch_anchorcCó"| ¡d|_|j | ¡¡dSr‹)rfrrrgÚscan_tagr r r r rToszScanner.fetch_tagcCó|jdddS)Nr9©Ústyle©Úfetch_block_scalarr r r r rUzózScanner.fetch_literalcCr’)Nr:r“r•r r r r rV}r—zScanner.fetch_foldedcCs$d|_| ¡|j | |¡¡dSr)rrdrrgÚscan_block_scalar©rr”r r r r–€szScanner.fetch_block_scalarcCr’)Nr;r“©Úfetch_flow_scalarr r r r rW‹r—zScanner.fetch_singlecCr’)Nr<r“ršr r r r rXŽr—zScanner.fetch_doublecCs$| ¡d|_|j | |¡¡dSr‹)rfrrrgÚscan_flow_scalarr™r r r r›‘rŽzScanner.fetch_flow_scalarcCrr‹)rfrrrgÚ scan_plainr r r r rZœszScanner.fetch_plaincCs|jdkrdSdS)NrT)rr r r r rA«s ÿzScanner.check_directivecCó6|jdkr| d¡dkr| d¡dvrdSdSdSdS)Nrrtú---õ …

T©rÚprefixr?r r r r rC²ó ýzScanner.check_document_startcCrž)Nrrtú...r Tr¡r r r r rEºr£zScanner.check_document_endcCs| d¡dvS)Nrr )r?r r r r rLÂszScanner.check_block_entrycCó|jrdS| d¡dvS©NTrr ©rr?r r r r rNÇózScanner.check_keycCr¥r¦r§r r r r rPÑr¨zScanner.check_valuecCs6| ¡}|dvp| d¡dvo|dkp|j o|dvS)Nu …

-?:,[]{}#&*!|>'"%@`rr r.z?:)r?rr\r r r rYÛs þzScanner.check_plaincCs˜|jdkr| ¡dkr| ¡d}|sJ| ¡dkr#| ¡| ¡dks| ¡dkr9| ¡dvr9| ¡| ¡dvs/| ¡rD|jsCd|_nd}|rdSdS)NruFú ú#õ …

T)rr?ruÚscan_line_breakrr)rÚfoundr r r r=ðs"  ÿ   ÿ€ özScanner.scan_to_next_tokencCs–| ¡}| ¡| |¡}d}|dkr| |¡}| ¡}n"|dkr+| |¡}| ¡}n| ¡}| ¡dvr?| ¡| ¡dvs5| |¡t||||ƒS)NÚYAMLÚTAGr«)r[ruÚscan_directive_nameÚscan_yaml_directive_valueÚscan_tag_directive_valuer?Úscan_directive_ignored_lineÚDirectiveToken)rrxÚnameÚvalueryr r r rns        ÿ zScanner.scan_directivecCs d}| |¡}d|krdks,nd|krdks,nd|kr'dks,n|dvrZ|d 7}| |¡}d|kr?dks,nd|krJdks,nd|krUdks,n|dvs,|sgtd |d || ¡ƒ‚| |¡}| |¡| ¡}|d vr„td |d || ¡ƒ‚|S) NrÚ0Ú9ÚAÚZÚaÚzú-_rúwhile scanning a directiveú6expected alphabetic or numeric character, but found %rõ …

)r?rr[r¢ru)rrxÚlengthr]r¶r r r r°&s4 B Býÿþ  ÿþzScanner.scan_directive_namecCs| ¡dkr| ¡| ¡dks| |¡}| ¡dkr(td|d| ¡| ¡ƒ‚| ¡| |¡}| ¡dvrDtd|d| ¡| ¡ƒ‚||fS)Nr©r/r¾z%expected a digit or '.', but found %rrÀz%expected a digit or ' ', but found %r)r?ruÚscan_yaml_directive_numberrr[)rrxÚmajorÚminorr r r r±;s"  ÿ   þ   þz!Scanner.scan_yaml_directive_valuecCs–| ¡}d|krdksntd|d|| ¡ƒ‚d}d| |¡kr)dkr=nn|d7}d| |¡kr', but found %rr r8FrÀTzwhile scanning a tagrÊ)r[r?rurÎrrËÚTagToken) rrxr]rÈÚsuffixrÁÚ use_handler¶ryr r r r‘§sN     þ   û  ÿ zScanner.scan_tagcCs¸|dkrd}nd}g}| ¡}| ¡| |¡\}}| |¡|jd}|dkr*d}|dur;| ¡\}} } t|| ƒ} n ||d} | | ¡\}} d} |j| kr¿|  ¡dkr¿|  |¡|  ¡dv} d}|  |¡d vrt|d7}|  |¡d vsi|  |  |¡¡| |¡|  ¡} | | ¡\}} |j| kr³|  ¡dkr³|r­| d kr­| r­|  ¡dvr­|s¬|  d ¡n|  | ¡nn |j| kr¿|  ¡dksU|durÈ|  | ¡|durÑ|  |¡td |¡d|| |ƒS) Nr:TFrÚr,ú rr«Ú r©)r[ruÚscan_block_scalar_indicatorsÚscan_block_scalar_ignored_linerÚscan_block_scalar_indentationÚmaxÚscan_block_scalar_breaksrr?Úextendrgr¢r¬Ú ScalarTokenÚjoin)rr”ÚfoldedÚchunksrxÚchompingÚ incrementÚ min_indentÚbreaksÚ max_indentryrÚ line_breakÚleading_non_spacerÁr r r r˜Ðs\      ÿ  ÿ  € Ý&  ÿzScanner.scan_block_scalarcCsød}d}| ¡}|dvr7|dkrd}nd}| ¡| ¡}|dvr6t|ƒ}|dkr2td|d| ¡ƒ‚| ¡n.|dvret|ƒ}|dkrLtd|d| ¡ƒ‚| ¡| ¡}|dvre|dkr_d}nd}| ¡| ¡}|d vrxtd|d || ¡ƒ‚||fS) Nz+-ú+TFÚ 0123456789rúwhile scanning a block scalarz| | ||¡¡| | ||¡¡| ¡|ks&| ¡| ¡}td |¡d|||ƒS)Nr<TFrÜ)r[r?ruräÚscan_flow_scalar_non_spacesÚscan_flow_scalar_spacesråræ)rr”ÚdoublerèrxÚquoteryr r r rœns"  þÿzScanner.scan_flow_scalarr·r,r»úÚbúÚtú ÚnrÞÚvú Úfú Úrú Úeúr©r<ú\ú/ÚNõÂ…Ú_õ ÚLu
ÚPu
r×éé)ÚxÚuÚUc Cs²g} d}| |¡dvr|d7}| |¡dvs |r&| | |¡¡| |¡| ¡}|sB|dkrB| d¡dkrB| d¡| d¡n–|rH|dksN|sX|dvrX| |¡| ¡n€|rÖ|dkrÖ| ¡| ¡}||jvrx| |j|¡| ¡n`||jvr¹|j|}| ¡t|ƒD]}| |¡d vr£td |d || |¡f| ¡ƒ‚qŠt | |¡d ƒ}| t |ƒ¡| |¡n|d vrË|  ¡|  |  ||¡¡n td |d|| ¡ƒ‚|Sq)NTru'"\ …

rr;r×z"\rÚ0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz?expected escape sequence of %d hexdecimal numbers, but found %rérôz!found unknown escape character %r)r?rgr¢ruÚESCAPE_REPLACEMENTSÚ ESCAPE_CODESÚrangerr[rÅÚchrr¬räÚscan_flow_scalar_breaks)rr÷rxrèrÁr]ÚkÚcoder r r rõ¡sZÿ            ÿþÿ  ÿÚz#Scanner.scan_flow_scalar_non_spacesc Cs¼g}d}| |¡dvr|d7}| |¡dvs | |¡}| |¡| ¡}|dkr1td|d| ¡ƒ‚|dvrW| ¡}| ||¡}|dkrI| |¡n|sP| d ¡| |¡|S| |¡|S) NrrÝrr,úwhile scanning a quoted scalarzfound unexpected end of streamrôrÞr©) r?r¢rurr[r¬rrgrä) rr÷rxrèrÁÚ whitespacesr]rîrìr r r röÌs.ÿ  ÿ     ÿzScanner.scan_flow_scalar_spacescCs‚g} | d¡}|dks|dkr | d¡dvr td|d| ¡ƒ‚| ¡dvr0| ¡| ¡dvs&| ¡d vr>| | ¡¡n|Sq) NTrtrŸr¤r rz#found unexpected document separatorrÝrô)r¢r?rr[rurgr¬)rr÷rxrèr¢r r r räs ÿ  ÿ ózScanner.scan_flow_scalar_breakscCsg}| ¡}|}|jd}g} d}| ¡dkrna | |¡}|dvs>|dkr7| |d¡d|jr3dndvs>|jr?|d vr?n|d7}q|dkrIn1d |_| |¡| | |¡¡| |¡| ¡}|  ||¡}|rx| ¡dksx|jsy|j |krynqt d  |¡d||ƒS) NrTrrªr r6z,[]{}rÜz,?[]{}F) r[rr?rrrärgr¢ruÚscan_plain_spacesrråræ)rrèrxryrÚspacesrÁr]r r r rösJ    ÿþø    ÿ ézScanner.scan_plainc Cs8g}d}| |¡dvr|d7}| |¡dvs | |¡}| |¡| ¡}|dvr“| ¡}d|_| d¡}|dks<|dkrE| d¡d vrEdSg} | ¡d vr{| ¡dkrX| ¡n|  | ¡¡| d¡}|dksl|dkru| d¡d vrudS| ¡d vsM|d kr…| |¡n| sŒ| d¡| | ¡|S|rš| |¡|S) Nrr©rrôTrtrŸr¤r rórÞ)r?r¢rur¬rrgrä) rrrxrèrÁrr]rîr¢rìr r r rsDÿ        ø   þ zScanner.scan_plain_spacescCs2| ¡}|dkrtd||d|| ¡ƒ‚d}| |¡}|dkrd|kr*dksEnd|kr5d ksEnd |kr@d ksEn|d vrs|d7}| |¡}d|krXdksEnd|krcd ksEnd |krnd ksEn|d vsE|dkr‰| |¡td||d|| ¡ƒ‚|d7}| |¡}| |¡|S) Nr8úwhile scanning a %szexpected '!', but found %rrr©r·r¸r¹rºr»r¼r½)r?rr[rur¢)rrµrxr]rÁr¶r r r rËDs.  ÿ B Bý   ÿ  zScanner.scan_tag_handlecCs<g}d}| |¡}d|krdks.nd|krdks.nd|kr)dks.n|dvry|d krK| | |¡¡| |¡d}| | ||¡¡n|d 7}| |¡}d|kr^dks.nd|kridks.nd|krtdks.n|dvs.|rŠ| | |¡¡| |¡d}|s™td ||d || ¡ƒ‚d  |¡S)Nrr·r¸r¹rºr»r¼z-;/?:@&=+$,_.!~*'()[]%r-rzwhile parsing a %szexpected URI, but found %rrÜ)r?rgr¢ruÚscan_uri_escapesrr[ræ)rrµrxrèrÁr]r r r rÎ\s. B  B÷    ÿ zScanner.scan_tag_uric CsÌg}| ¡}| ¡dkrD| ¡tdƒD]}| |¡dvr-td||d| |¡| ¡ƒ‚q| t| d¡dƒ¡| d¡| ¡dks z t|ƒ  d¡}W|St ye}z td||t |ƒ|ƒ‚d}~ww)Nr-r×rr!zBexpected URI escape sequence of 2 hexdecimal numbers, but found %rrzutf-8) r[r?rurrrgrÅr¢ÚbytesÚdecodeÚUnicodeDecodeErrorÚstr)rrµrxÚcodesrrr¶Úexcr r r r"us.   ÿþÿ  ø þ€ÿzScanner.scan_uri_escapescCsP| ¡}|dvr| d¡dkr| d¡dS| ¡dS|dvr&| ¡|SdS)Nu Â…r×z rÞu

rÜ)r?r¢rur\r r r r¬ˆs  ÿzScanner.scan_line_breakN)Lrrrrr&r'r)r!r"r+r*rfrdr>rirr@rBrDrFrprGrHrzrIrJr~rKrMrOrQrRrSrTrUrVr–rWrXr›rZrArCrErLrNrPrYr=rnr°r±rÂr²rÆrÇr³rŒr‘r˜rßràrárãrœrrrõrörrrrËrÎr"r¬r r r r r.sâA    l    !8       #    $)L( ÿþýüûúùø ÷ ö õ ô óòñðïîý+)% N)Ú__all__Úerrorrrrr rr r r r Ús