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 )rZmin_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)Nr`ra)rrrrrr[)rr_r r r rc8s  ÿùz"Scanner.remove_possible_simple_keycCsL|jrdS|j|kr$| ¡}|j ¡|_|j t||ƒ¡|j|ks dSdSr )rrr[rr(rÚappendZ BlockEndToken)rrrr r r r>Es  ýzScanner.unwind_indentcCs&|j|kr|j |j¡||_dSdS)NTF)rrrf)rrr r r Ú add_indent]s zScanner.add_indentcCs$| ¡}|j t|||jd¡dS)N)Úencoding)r[rrfZStreamStartTokenrh©rrr r r rgs  ÿzScanner.fetch_stream_startcCsB| d¡| ¡d|_i|_| ¡}|j t||ƒ¡d|_dS)NrFT) r>rcrrr[rrfZStreamEndTokenrrir r r r@ss  zScanner.fetch_stream_endcCs,| d¡| ¡d|_|j | ¡¡dS)NrF)r>rcrrrfÚscan_directiver r r r rB†s zScanner.fetch_directivecCó| t¡dSr )Úfetch_document_indicatorZDocumentStartTokenr r r r rD’ózScanner.fetch_document_startcCrkr )rlZDocumentEndTokenr r r r rF•rmzScanner.fetch_document_endcCsH| d¡| ¡d|_| ¡}| d¡| ¡}|j |||ƒ¡dS)NrFé)r>rcrr[Úforwardrrf©rÚ TokenClassÚ start_markÚend_markr r r rl˜s  z Scanner.fetch_document_indicatorcCrkr )Úfetch_flow_collection_startZFlowSequenceStartTokenr r r r rG¨rmz!Scanner.fetch_flow_sequence_startcCrkr )rtZFlowMappingStartTokenr r r r rH«rmz Scanner.fetch_flow_mapping_startcCsJ| ¡|jd7_d|_| ¡}| ¡| ¡}|j |||ƒ¡dS)NrT)rerrr[rorrfrpr r r rt®óz#Scanner.fetch_flow_collection_startcCrkr )Úfetch_flow_collection_endZFlowSequenceEndTokenr r r r rI¿rmzScanner.fetch_flow_sequence_endcCrkr )rvZFlowMappingEndTokenr r r r rJÂrmzScanner.fetch_flow_mapping_endcCsJ| ¡|jd8_d|_| ¡}| ¡| ¡}|j |||ƒ¡dS)NrF)rcrrr[rorrfrpr r r rvÅruz!Scanner.fetch_flow_collection_endcCs<d|_| ¡| ¡}| ¡| ¡}|j t||ƒ¡dS©NT)rrcr[rorrfZFlowEntryToken)rrrrsr 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[rgrrrfZBlockSequenceStartTokenrcroZBlockEntryToken©rrrrrsr 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[rgrrrfÚBlockMappingStartTokenrcroÚKeyTokenrxr 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 rrzrrgrryrrr[rfrcroZ ValueToken)rr_rrrrsr r r rQ!s8    ÿ  ÿþ  zScanner.fetch_valuecCó$| ¡d|_|j | t¡¡dS©NF)rerrrfÚ scan_anchorZ AliasTokenr r r r rRYózScanner.fetch_aliascCr|r})rerrrfr~Z AnchorTokenr r r r rSdrzScanner.fetch_anchorcCó"| ¡d|_|j | ¡¡dSr})rerrrfÚ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 | |¡¡dSrw)rrcrrfÚ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})rerrrfÚscan_flow_scalarr‰r r r r‹‘rzScanner.fetch_flow_scalarcCr€r})rerrrfÚ 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)Nrrnú---õ …

T©rÚprefixr?r r r r rC²ó  ÿýzScanner.check_document_startcCrŽ)Nrrnú...rTr‘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 …

-?:,[]{}#&*!|>'"%@`rrr.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?roÚscan_line_breakrr)rÚfoundr r r r=ðs"  ÿ   ÿ€ özScanner.scan_to_next_tokencCs–| ¡}| ¡| |¡}d}|dkr| |¡}| ¡}n"|dkr+| |¡}| ¡}n| ¡}| ¡dvr?| ¡| ¡dvs5| |¡t||||ƒS)NZYAMLZTAGr›)r[roÚscan_directive_nameÚscan_yaml_directive_valueÚscan_tag_directive_valuer?Úscan_directive_ignored_lineZDirectiveToken)rrrÚnameÚvaluersr r r rjs        ÿ 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’ro)rrrÚlengthr]r£r r r rž&s8 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?roÚscan_yaml_directive_numberrr[)rrrÚ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 %rrr8Fr­Tzwhile scanning a tagr·)r[r?ror»rr¸ZTagToken) rrrr]rµÚsuffixr®Z use_handler£rsr 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[roÚscan_block_scalar_indicatorsÚscan_block_scalar_ignored_linerÚscan_block_scalar_indentationÚmaxÚscan_block_scalar_breaksrr?Úextendrfr’rœÚ ScalarTokenÚjoin)rr„ZfoldedÚchunksrrÚchompingÚ incrementZ min_indentÚbreaksÚ max_indentrsrÚ line_breakZleading_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?rorÍÚscan_flow_scalar_non_spacesÚscan_flow_scalar_spacesrÎrÏ)rr„ÚdoublerÐrrZquotersr 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?rfr’roÚESCAPE_REPLACEMENTSÚ ESCAPE_CODESÚrangerr[r²ÚchrrœrÍÚscan_flow_scalar_breaks)rrÝrrrÐ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’rorr[rœrÿrfrÍ) rrÝrrrÐ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) NTrnrr”rrz#found unexpected document separatorrÆrÚ)r’r?rr[rorfrœ)rrÝrrrÐ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šrr6z,[]{}rÅz,?[]{}F) r[rr?rrrÍrfr’roÚscan_plain_spacesrrÎrÏ)rrÐrrrsrÚspacesr®r]r r r rösR   ÿ ÿþüüø    ÿÿé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ÚTrnrr”rrÙrÇ)r?r’rorœrrfrÍ) rrrrrÐr®rr]rÕr’rÓr r r rsHÿ    ÿ     ÿ ø   þ 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[ror’)rr¢rrr]r®r£r r r r¸Ds2  ÿ 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?rfr’roÚscan_uri_escapesrr[rÏ)rr¢rrrÐr®r]r r r r»\s2 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ÂrùrzBexpected URI escape sequence of 2 hexdecimal numbers, but found %rrúzutf-8) r[r?rorýrrfr²r’ÚbytesÚdecodeÚUnicodeDecodeErrorÚstr)rr¢rrZcodesrrr£Úexcr r r rus.   ÿþÿ  ø þ€ÿzScanner.scan_uri_escapescCsP| ¡}|dvr| d¡dkr| d¡dS| ¡dS|dvr&| ¡|SdS)Nu Â…rÂz rÇu

rÅ)r?r’ror\r r r rœˆs  ÿzScanner.scan_line_breakN)Lrrrrr&r'r)r!r"r+r*rercr>rgrr@rBrDrFrlrGrHrtrIrJrvrKrMrOrQrRrSrTrUrVr†rWrXr‹rZrArCrErLrNrPrYr=rjržrŸr¯r r³r´r¡r~rrˆrÈrÉrÊrÌrŒrûrürÛrÜrÿrrr¸r»rrœr r r r r.sâA    l    !8       #    $)L( ÿþýüûúùø ÷ ö õ ô óòñðïîý+)% N)Ú__all__Úerrorrrrr rr r r r Ús