a b£`MÈã@sLddgZddlmZddlTGdd„deƒZGdd„dƒZGdd„dƒZd S) ÚScannerÚ ScannerErroré)ÚMarkedYAMLError)Ú*c@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú2/usr/lib64/python3.9/site-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 #sr c@szeZdZdd„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@d}d~dd€d€dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒddŽœZAddd‘d’œZBd“d”„ZCd•d–„ZDd—d˜„ZEd™dš„ZFd›dœ„ZGddž„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__cGsD| ¡r| ¡q|jr@|s dS|D]}t|jd|ƒr$dSq$dS)NTrF)Úneed_more_tokensÚfetch_more_tokensrÚ isinstance)rÚchoicesÚchoicer r r Ú check_tokenqs zScanner.check_tokencCs*| ¡r| ¡q|jr"|jdSdSdS)Nr)r!r"rr r r r Ú peek_token}s   zScanner.peek_tokencCs6| ¡r| ¡q|jr2|jd7_|j d¡SdS)Nrr)r!r"rrÚpopr r r r Ú get_token‡s  zScanner.get_tokencCs2|jr dS|jsdS| ¡| ¡|jkr.dSdS)NFT)rrÚstale_possible_simple_keysÚnext_possible_simple_keyrr r r r r!‘szScanner.need_more_tokenscCsÒ| ¡| ¡| |j¡| ¡}|dkr4| ¡S|dkrL| ¡rL| ¡S|dkrd| ¡rd|  ¡S|dkr||  ¡r||  ¡S|dkrŒ|  ¡S|dkrœ|  ¡S|dkr¬| ¡S|dkr¼| ¡S|d krÌ| ¡S|dkrä| ¡rä| ¡S|d krü| ¡rü| ¡S|d kr| ¡r| ¡S|d kr*| ¡S|d kr<| ¡S|dkrN| ¡S|dkrh|jsh| ¡S|dkr‚|js‚| ¡S|dkr”| ¡S|dkr¦| ¡S| ¡r¸|  ¡St!ddd|| "¡ƒ‚dS)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]L}|j|}|j|jks4|j|jdkr |jrNtd|jd| ¡ƒ‚|j|=q dS)Niúwhile scanning a simple keyúcould not find expected ':')Úlistrrrrrrr[)rr^r_r r r r*s  ÿÿz"Scanner.stale_possible_simple_keyscCs^|j o|j|jk}|jrZ| ¡|jt|jƒ}t|||j |j |j|  ¡ƒ}||j |j<dSr ) rrrrÚremove_possible_simple_keyrÚlenrr rrr[r)rrr r_r r r Úsave_possible_simple_key'sÿz Scanner.save_possible_simple_keycCs@|j|jvr<|j|j}|jr2td|jd| ¡ƒ‚|j|j=dS)Nr`ra)rrrrrr[)rr_r r r rc8s  ÿz"Scanner.remove_possible_simple_keycCs@|jr dS|j|kr<| ¡}|j ¡|_|j t||ƒ¡q dSr )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_directivecCs| t¡dSr )Úfetch_document_indicatorZDocumentStartTokenr r r r rD’szScanner.fetch_document_startcCs| t¡dSr )rkZDocumentEndTokenr r r r rF•szScanner.fetch_document_endcCsH| d¡| ¡d|_| ¡}| d¡| ¡}|j |||ƒ¡dS)NrFé)r>rcrr[Úforwardrrf©rÚ TokenClassÚ start_markÚend_markr r r rk˜s  z Scanner.fetch_document_indicatorcCs| t¡dSr )Úfetch_flow_collection_startZFlowSequenceStartTokenr r r r rG¨sz!Scanner.fetch_flow_sequence_startcCs| t¡dSr )rrZFlowMappingStartTokenr r r r rH«sz Scanner.fetch_flow_mapping_startcCsJ| ¡|jd7_d|_| ¡}| ¡| ¡}|j |||ƒ¡dS)NrT)rerrr[rmrrfrnr r r rr®sz#Scanner.fetch_flow_collection_startcCs| t¡dSr )Úfetch_flow_collection_endZFlowSequenceEndTokenr r r r rI¿szScanner.fetch_flow_sequence_endcCs| t¡dSr )rsZFlowMappingEndTokenr r r r rJÂszScanner.fetch_flow_mapping_endcCsJ| ¡|jd8_d|_| ¡}| ¡| ¡}|j |||ƒ¡dS)NrF)rcrrr[rmrrfrnr r r rsÅsz!Scanner.fetch_flow_collection_endcCs<d|_| ¡| ¡}| ¡| ¡}|j t||ƒ¡dS©NT)rrcr[rmrrfZFlowEntryToken)rrprqr r r rKÖs zScanner.fetch_flow_entrycCs‚|jsF|jstddd| ¡ƒ‚| |j¡rF| ¡}|j t||ƒ¡nd|_|  ¡| ¡}|  ¡| ¡}|j t ||ƒ¡dS)Nz%sequence entries are not allowed hereT) rrrr[rgrrrfZBlockSequenceStartTokenrcrmZBlockEntryToken©rrrprqr r r rMäsþ zScanner.fetch_block_entrycCs„|jsD|jstddd| ¡ƒ‚| |j¡rD| ¡}|j t||ƒ¡|j |_|  ¡| ¡}|  ¡| ¡}|j t ||ƒ¡dS)Nz!mapping keys are not allowed here) rrrr[rgrrrfÚBlockMappingStartTokenrcrmÚKeyTokenrur r r rOsþ  zScanner.fetch_keycCs|j|jvr||j|j}|j|j=|j |j|jt|j|jƒ¡|jst| |j ¡rt|j |j|jt |j|jƒ¡d|_ n\|jsš|j sšt ddd|  ¡ƒ‚|jsÆ| |j ¡rÆ|  ¡}|j t ||ƒ¡|j |_ | ¡|  ¡}| ¡|  ¡}|j t||ƒ¡dS)NFz#mapping values are not allowed here)rrrÚinsertr rrwrrgrrvrrr[rfrcrmZ ValueToken)rr_rrprqr r r rQ!s8    ÿ  ÿþ  zScanner.fetch_valuecCs$| ¡d|_|j | t¡¡dS©NF)rerrrfÚ scan_anchorZ AliasTokenr r r r rRYszScanner.fetch_aliascCs$| ¡d|_|j | t¡¡dSry)rerrrfrzZ AnchorTokenr r r r rSdszScanner.fetch_anchorcCs"| ¡d|_|j | ¡¡dSry)rerrrfÚscan_tagr r r r rToszScanner.fetch_tagcCs|jdddS)Nr9©Ústyle©Úfetch_block_scalarr r r r rUzszScanner.fetch_literalcCs|jdddS)Nr:r|r~r r r r rV}szScanner.fetch_foldedcCs$d|_| ¡|j | |¡¡dSrt)rrcrrfÚscan_block_scalar©rr}r r r r€szScanner.fetch_block_scalarcCs|jdddS)Nr;r|©Úfetch_flow_scalarr r r r rW‹szScanner.fetch_singlecCs|jdddS)Nr<r|r‚r r r r rXŽszScanner.fetch_doublecCs$| ¡d|_|j | |¡¡dSry)rerrrfÚscan_flow_scalarrr r r rƒ‘szScanner.fetch_flow_scalarcCs"| ¡d|_|j | ¡¡dSry)rerrrfÚ scan_plainr r r r rZœszScanner.fetch_plaincCs|jdkrdSdS)NrT)rr r r r rA«s zScanner.check_directivecCs.|jdkr*| d¡dkr*| d¡dvr*dSdS)Nrrlú---õ …

T©rÚprefixr?r r r r rC²s   ÿzScanner.check_document_startcCs.|jdkr*| d¡dkr*| d¡dvr*dSdS)Nrrlú...r‡Trˆr r r r rEºs   ÿzScanner.check_document_endcCs| d¡dvS)Nrr‡)r?r r r r rLÂszScanner.check_block_entrycCs|jr dS| d¡dvSdS©NTrr‡©rr?r r r r rNÇszScanner.check_keycCs|jr dS| d¡dvSdSr‹rŒr r r r rPÑszScanner.check_valuecCs6| ¡}|dvp4| d¡dvo4|dkp4|j o4|dvS)Nu …

-?:,[]{}#&*!|>'"%@`rr‡r.z?:)r?rr\r r r rYÛs þzScanner.check_plaincCs~|jdkr| ¡dkr| ¡d}|sz| ¡dkr<| ¡q&| ¡dkr^| ¡dvr^| ¡qH| ¡rt|jsxd|_q"d}q"dS)NruFú ú#õ …

T)rr?rmÚscan_line_breakrr)rÚfoundr r r r=ðs     zScanner.scan_to_next_tokencCsŒ| ¡}| ¡| |¡}d}|dkr:| |¡}| ¡}n:|dkrV| |¡}| ¡}n| ¡}| ¡dvrt| ¡q^| |¡t||||ƒS)NZYAMLZTAGr)r[rmÚscan_directive_nameÚscan_yaml_directive_valueÚscan_tag_directive_valuer?Úscan_directive_ignored_lineZDirectiveToken)rrpÚnameÚvaluerqr r r rjs        zScanner.scan_directivecCsÄd}| |¡}d|kr"dksXnd|kr8dksXnd|krNdksXn|dvrl|d 7}| |¡}q|s†td |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‰rm)rrpÚlengthr]r—r r r r’&s2 Bÿ ÿþ  ÿþzScanner.scan_directive_namecCs†| ¡dkr| ¡q| |¡}| ¡dkrFtd|d| ¡| ¡ƒ‚| ¡| |¡}| ¡dvr~td|d| ¡| ¡ƒ‚||fS)Nrr/rŸz%expected a digit or '.', but found %rr¡z%expected a digit or ' ', but found %r)r?rmÚscan_yaml_directive_numberrr[)rrpÚmajorÚminorr r r r“;s      þ   þz!Scanner.scan_yaml_directive_valuecCs|| ¡}d|krdks4ntd|d|| ¡ƒ‚d}d| |¡krRdkr`nn |d7}q8t| |¡ƒ}| |¡|S)Nr˜r™rŸzexpected a digit, but found %rrr)r?rr[Úintr‰rm)rrpr]r¢r—r r r r£Ls ÿ  z"Scanner.scan_yaml_directive_numbercCsH| ¡dkr| ¡q| |¡}| ¡dkr6| ¡q | |¡}||fS)Nr)r?rmÚscan_tag_directive_handleÚscan_tag_directive_prefix)rrpÚhandler‰r r r r”Ys      z Scanner.scan_tag_directive_valuecCs6| d|¡}| ¡}|dkr2td|d|| ¡ƒ‚|S)NÚ directiverrŸúexpected ' ', but found %r)Úscan_tag_handler?rr[©rrpr—r]r r r r§cs  ÿz!Scanner.scan_tag_directive_handlecCs6| d|¡}| ¡}|dvr2td|d|| ¡ƒ‚|S)Nrªr¡rŸr«)Ú scan_tag_urir?rr[r­r r r r¨ls  ÿz!Scanner.scan_tag_directive_prefixcCsj| ¡dkr| ¡q| ¡dkr8| ¡dvr8| ¡q"| ¡}|dvr^td|d|| ¡ƒ‚| ¡dS)NrrŽrrŸú0expected a comment or a line break, but found %r©r?rmrr[r©rrpr]r r r r•us     ÿþz#Scanner.scan_directive_ignored_linec Cs| ¡}| ¡}|dkrd}nd}| ¡d}| |¡}d|krLdks‚nd|krbdks‚nd |krxd ks‚n|d vr–|d 7}| |¡}q8|s´td ||d|| ¡ƒ‚| |¡}| |¡| ¡}|dvròtd ||d|| ¡ƒ‚| ¡}||||ƒS)NrÚaliasÚanchorrr˜r™ršr›rœrržrzwhile scanning an %sr u …

?:,]}%@`)r[r?rmrr‰) rrorpZ indicatorr–r¢r]r—rqr r r rzƒs@  Bÿ  ÿþ   ÿþzScanner.scan_anchorc Cs"| ¡}| d¡}|dkrdd}| d¡| d|¡}| ¡dkrZtd|d| ¡| ¡ƒ‚| ¡nz|dvr~d}d }| ¡n`d}d }|d vr°|d krœd }q°|d7}| |¡}q†d }|rÆ| d|¡}n d }| ¡| d|¡}| ¡}|d vrtd |d|| ¡ƒ‚||f}| ¡}t|||ƒS)Nrú<éÚtagr:zwhile parsing a tagzexpected '>', but found %rr‡r8Fr¡Tzwhile scanning a tagr«)r[r?rmr®rr¬ZTagToken) rrpr]r©Úsuffixr¢Z use_handler—rqr r r r{§sL     þ      ÿzScanner.scan_tagcCs°|dkrd}nd}g}| ¡}| ¡| |¡\}}| |¡|jd}|dkrTd}|durv| ¡\}} } t|| ƒ} n||d} | | ¡\}} d} |j| krr|  ¡dkrr|  |¡|  ¡dv} d}|  |¡d vrà|d7}qÈ|  |  |¡¡| |¡|  ¡} | | ¡\}} |j| krr|  ¡dkrr|r`| d kr`| r`|  ¡dvr`|sj|  d ¡n |  | ¡q”qrq”|dur†|  | ¡|durš|  |¡td |¡d|| |ƒS) Nr:TFrÚr,ú rrÚ r)r[rmÚscan_block_scalar_indicatorsÚscan_block_scalar_ignored_linerÚscan_block_scalar_indentationÚmaxÚscan_block_scalar_breaksrr?Úextendrfr‰rÚ ScalarTokenÚjoin)rr}ZfoldedÚchunksrpÚchompingÚ incrementZ min_indentÚbreaksÚ max_indentrqrÚ line_breakZleading_non_spacer¢r r r r€ÐsX        ÿ ÿ      ÿzScanner.scan_block_scalarcCsød}d}| ¡}|dvrn|dkr&d}nd}| ¡| ¡}|dvrÊt|ƒ}|dkrdtd|d| ¡ƒ‚| ¡n\|dvrÊt|ƒ}|dkr˜td|d| ¡ƒ‚| ¡| ¡}|dvrÊ|dkr¾d}nd}| ¡| ¡}|d vrðtd|d || ¡ƒ‚||fS) Nz+-ú+TFÚ 0123456789rúwhile scanning a block scalarz| | |¡¡| |¡| ¡}|sv|dkrv| d¡dkrv| d¡| d¡q|r‚|dksŽ|s¢|dvr¢| |¡| ¡q|r¬|dkr¬| ¡| ¡}||jvræ| |j|¡| ¡nÄ||jvrn|j|}| ¡t|ƒD]6}| |¡dvr td |d || |¡f| ¡ƒ‚q t | |¡d ƒ}| t |ƒ¡| |¡n<|d vr”|  ¡|  |  ||¡¡ntd |d || ¡ƒ‚q|SqdS)Nru'"\ …

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‰rmÚESCAPE_REPLACEMENTSÚ ESCAPE_CODESÚrangerr[r¦ÚchrrrÀÚscan_flow_scalar_breaks)rrÐrprÃr¢r]ÚkÚcoder r r rΡsR            ÿþ   ÿz#Scanner.scan_flow_scalar_non_spacesc Cs°g}d}| |¡dvr |d7}q| |¡}| |¡| ¡}|dkrXtd|d| ¡ƒ‚nT|dvr¢| ¡}| ||¡}|dkrˆ| |¡n|s–| d ¡| |¡n | |¡|S) Nrr¹rr,úwhile scanning a quoted scalarzfound unexpected end of streamrÍrºr) r?r‰rmrr[rrórfrÀ) rrÐrprÃr¢Ú whitespacesr]rÈrÆr r r rÏÌs*   ÿ     zScanner.scan_flow_scalar_spacescCszg}| d¡}|dks|dkr>| d¡dvr>td|d| ¡ƒ‚| ¡dvrT| ¡q>| ¡dvrp| | ¡¡q|SqdS) Nrlr†rŠr‡röz#found unexpected document separatorr¹rÍ)r‰r?rr[rmrfr)rrÐrprÃr‰r r r róäs  ÿÿ   zScanner.scan_flow_scalar_breakscCsg}| ¡}|}|jd}g}d}| ¡dkr0qð| |¡}|dvs„|dkrj| |d¡d|jrbdndvs„|jrz|dvrzq„|d7}q0|dkrŽqðd |_| |¡| | |¡¡| |¡| ¡}|  ||¡}|rð| ¡dksð|js|j |krqðqt d  |¡d ||ƒS) NrrrŽr‡r6z,[]{}r¸z,?[]{}FT) r[rr?rrrÀrfr‰rmÚscan_plain_spacesrrÁrÂ)rrÃrprqrÚspacesr¢r]r r r r…ösJ   ÿ ÿþüü    ÿÿzScanner.scan_plainc Cs&g}d}| |¡dvr |d7}q| |¡}| |¡| ¡}|dvr| ¡}d|_| d¡}|dksn|dkr€| d¡d vr€dSg} | ¡d vrâ| ¡dkr¦| ¡q„|  | ¡¡| d¡}|dksÎ|dkr„| d¡d vr„dSq„|d krö| |¡n| s| d¡| | ¡n|r"| |¡|S) NrrrrÍTrlr†rŠr‡rÌrº)r?r‰rmrrrfrÀ) rrrprÃr¢r÷r]rÈr‰rÆr r r røsB      ÿ     ÿ    zScanner.scan_plain_spacescCsê| ¡}|dkr*td||d|| ¡ƒ‚d}| |¡}|dkrÒd|krTdksŠnd|krjd ksŠnd |kr€d ksŠn|d vrž|d7}| |¡}q@|dkrÊ| |¡td||d|| ¡ƒ‚|d7}| |¡}| |¡|S) Nr8úwhile scanning a %szexpected '!', but found %rrrr˜r™ršr›rœrrž)r?rr[rmr‰)rr–rpr]r¢r—r r r r¬Ds,  ÿ Bÿ    ÿ  zScanner.scan_tag_handlecCsôg}d}| |¡}d|kr&dks\nd|krrgrr@rBrDrFrkrGrHrrrIrJrsrKrMrOrQrRrSrTrUrVrrWrXrƒrZrArCrErLrNrPrYr=rjr’r“r£r”r§r¨r•rzr{r€r»r¼r½r¿r„rïrðrÎrÏrór…rør¬r®rûrr r r r r.s¼A    l    !8       #    $)L( îý+)%N)Ú__all__Úerrorrrrr rr r r r Ús