B b�`���@sLddgZddlmZddlTGdd�de�ZGdd�d�ZGdd�d�Zd S) �Emitter� EmitterError�)� YAMLError)�*c@s eZdZdS)rN)�__name__� __module__� __qualname__�r r �?/opt/alt/python37/lib64/python3.7/site-packages/yaml/emitter.pyrsc@seZdZdd�ZdS)�ScalarAnalysisc Cs4||_||_||_||_||_||_||_||_dS)N)�scalar�empty� multiline�allow_flow_plain�allow_block_plain�allow_single_quoted�allow_double_quoted� allow_block) �selfr r rrrrrrr r r �__init__szScalarAnalysis.__init__N)rrrrr r r r r sr c@s(eZdZddd�Zd�dd�Zdd�Zd d �Zd d �Zd d�Zd�dd�Z dd�Z dd�Z dd�Z d�dd�Z dd�Zdd�Zd�dd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd�d8d9�Zd:d;�Zdd?�Z d@dA�Z!dBdC�Z"dDdE�Z#dFdG�Z$dHdI�Z%dJdK�Z&dLdM�Z'dNdO�Z(dPdQ�Z)dRdS�Z*dTdU�Z+dVdW�Z,dXdY�Z-dZd[�Z.d\d]�Z/d^d_�Z0d`da�Z1dbdc�Z2ddde�Z3d�dfdg�Z4dhdi�Z5d�djdk�Z6dldm�Z7dndo�Z8d�dqdr�Z9dsdtdudvdwdxdydzd{d|d}d~dd�d�d��Z:d�d�d��Z;d�d��Zd�d�d��Z?dS)�r�!z!!)rztag:yaml.org,2002:NcCs�||_d|_g|_|j|_g|_d|_g|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_||_||_d|_|r�d|kr�dkr�nn||_d|_|r�||jdkr�||_d|_|d kr�||_d|_d|_d|_d|_d|_dS) N�FT�r� �P� )� rz )�stream�encoding�states�expect_stream_start�state�events�event�indents�indent� flow_level� root_context�sequence_context�mapping_context�simple_key_context�line�column� whitespace� indention� open_ended� canonical� allow_unicode� best_indent� best_width�best_line_break� tag_prefixes�prepared_anchor� prepared_tag�analysis�style)rrr0r%�widthr1Z line_breakr r r r&sDzEmitter.__init__cCsg|_d|_dS)N)rr!)rr r r �disposejszEmitter.disposecCs:|j�|�x(|��s4|j�d�|_|��d|_qWdS)Nr)r"�append�need_more_events�popr#r!)rr#r r r �emitos   z Emitter.emitcCsX|js dS|jd}t|t�r(|�d�St|t�r<|�d�St|t�rP|�d�SdSdS)NTrrr�F)r"� isinstance�DocumentStartEvent� need_events�SequenceStartEvent�MappingStartEvent)rr#r r r r=xs       zEmitter.need_more_eventscCsxd}x`|jdd�D]N}t|ttf�r0|d7}n&t|ttf�rH|d8}nt|t�rVd}|dkrdSqWt|j�|dkS)Nrr�����F)r"rArB�CollectionStartEvent�DocumentEndEventZCollectionEndEvent�StreamEndEvent�len)r�count�levelr#r r r rC�s   zEmitter.need_eventsFcCsF|j�|j�|jdkr.|r&|j|_qBd|_n|sB|j|j7_dS)Nr)r$r<r%r2)r�flow� indentlessr r r �increase_indent�s  zEmitter.increase_indentcCsNt|jt�r<|jjr*t|jd�s*|jj|_|��|j|_nt d|j��dS)Nrz%expected StreamStartEvent, but got %s) rAr#ZStreamStartEventr�hasattrr�write_stream_start�expect_first_document_startr!r)rr r r r �s   zEmitter.expect_stream_startcCstd|j��dS)Nzexpected nothing, but got %s)rr#)rr r r �expect_nothing�szEmitter.expect_nothingcCs |jdd�S)NT)�first)�expect_document_start)rr r r rR�sz#Emitter.expect_first_document_startc Csvt|jt��r(|jjs|jjr8|jr8|�dd�|��|jjrX|�|jj�}|� |�|j � �|_ |jjr�t |jj���}xB|D]:}|jj|}||j |<|�|�}|�|�}|�||�q�W|o�|jj o�|j o�|jj o�|jj o�|�� }|�s|��|�dd�|j�r|��|j|_nJt|jt��rd|j�rR|�dd�|��|��|j|_ntd|j��dS)Nz...Tz---z'expected DocumentStartEvent, but got %s)rAr#rB�versionZtagsr/�write_indicator� write_indent�prepare_version�write_version_directive�DEFAULT_TAG_PREFIXES�copyr5�sorted�keys�prepare_tag_handle�prepare_tag_prefix�write_tag_directive�explicitr0�check_empty_document�expect_document_rootr!rI�write_stream_endrSr) rrT� version_textZhandles�handle�prefix� handle_text� prefix_text�implicitr r r rU�sB             zEmitter.expect_document_startcCsTt|jt�rB|��|jjr0|�dd�|��|��|j|_nt d|j��dS)Nz...Tz%expected DocumentEndEvent, but got %s) rAr#rHrXrbrW� flush_streamrUr!r)rr r r �expect_document_end�s   zEmitter.expect_document_endcCs|j�|j�|jdd�dS)NT)�root)rr<rm� expect_node)rr r r rd�szEmitter.expect_document_rootcCs�||_||_||_||_t|jt�r.|��n�t|jtt f�r�|� d�|� �t|jt�rf|� �q�t|jt �r�|js�|js�|jjs�|��r�|��q�|��q�t|jt�r�|js�|js�|jjs�|��r�|��q�|��ntd|j��dS)N�&zexpected NodeEvent, but got %s)r'r(r)r*rAr#� AliasEvent� expect_alias� ScalarEventrG�process_anchor� process_tag� expect_scalarrDr&r0Z flow_style�check_empty_sequence�expect_flow_sequence�expect_block_sequencerE�check_empty_mapping�expect_flow_mapping�expect_block_mappingr)rrn�sequence�mapping� simple_keyr r r ro�s,           zEmitter.expect_nodecCs.|jjdkrtd��|�d�|j��|_dS)Nz!anchor is not specified for aliasr)r#�anchorrrtrr>r!)rr r r rrs  zEmitter.expect_aliascCs0|jdd�|��|j��|_|j��|_dS)NT)rM)rO�process_scalarr$r>r%rr!)rr r r rv s  zEmitter.expect_scalarcCs6|jdddd�|jd7_|jdd�|j|_dS)N�[T)r-r)rM)rWr&rO�expect_first_flow_sequence_itemr!)rr r r rxs zEmitter.expect_flow_sequencecCsxt|jt�r@|j��|_|jd8_|�dd�|j��|_ n4|j sR|j |j krZ|� �|j�|j�|jdd�dS)Nr�]FT)r})rAr#�SequenceEndEventr$r>r%r&rWrr!r0r,r3rXr<�expect_flow_sequence_itemro)rr r r r�s   z'Emitter.expect_first_flow_sequence_itemcCs�t|jt�rZ|j��|_|jd8_|jr@|�dd�|� �|�dd�|j ��|_ n@|�dd�|jsx|j |j kr�|� �|j �|j�|jdd�dS)Nr�,Fr�T)r})rAr#r�r$r>r%r&r0rWrXrr!r,r3r<r�ro)rr r r r�$s     z!Emitter.expect_flow_sequence_itemcCs6|jdddd�|jd7_|jdd�|j|_dS)N�{T)r-r)rM)rWr&rO�expect_first_flow_mapping_keyr!)rr r r r{6s zEmitter.expect_flow_mappingcCs�t|jt�r@|j��|_|jd8_|�dd�|j��|_ nl|j sR|j |j krZ|� �|j s�|��r�|j�|j�|jddd�n&|�dd�|j�|j�|jdd�dS)Nr�}FT)r~r�?)r~)rAr#�MappingEndEventr$r>r%r&rWrr!r0r,r3rX�check_simple_keyr<� expect_flow_mapping_simple_valuero�expect_flow_mapping_value)rr r r r�<s    z%Emitter.expect_first_flow_mapping_keycCs�t|jt�rZ|j��|_|jd8_|jr@|�dd�|� �|�dd�|j ��|_ nx|�dd�|jsx|j |j kr�|� �|js�|��r�|j �|j�|jddd�n&|�dd�|j �|j�|jdd�dS) Nrr�Fr�T)r~rr�)r~)rAr#r�r$r>r%r&r0rWrXrr!r,r3r�r<r�ror�)rr r r �expect_flow_mapping_keyMs"      zEmitter.expect_flow_mapping_keycCs*|�dd�|j�|j�|jdd�dS)N�:FT)r~)rWrr<r�ro)rr r r r�bs z(Emitter.expect_flow_mapping_simple_valuecCsD|js|j|jkr|��|�dd�|j�|j�|jdd�dS)Nr�T)r~) r0r,r3rXrWrr<r�ro)rr r r r�gs  z!Emitter.expect_flow_mapping_valuecCs(|jo |j }|jd|d�|j|_dS)NF)rMrN)r)r.rO� expect_first_block_sequence_itemr!)rrNr r r rypszEmitter.expect_block_sequencecCs |jdd�S)NT)rT)�expect_block_sequence_item)rr r r r�usz(Emitter.expect_first_block_sequence_itemcCs`|s*t|jt�r*|j��|_|j��|_n2|��|j dddd�|j� |j �|j dd�dS)N�-T)r.)r}) rAr#r�r$r>r%rr!rXrWr<r�ro)rrTr r r r�xs z"Emitter.expect_block_sequence_itemcCs|jdd�|j|_dS)NF)rM)rO�expect_first_block_mapping_keyr!)rr r r r|�s zEmitter.expect_block_mappingcCs |jdd�S)NT)rT)�expect_block_mapping_key)rr r r r��sz&Emitter.expect_first_block_mapping_keycCs�|s*t|jt�r*|j��|_|j��|_nX|��|� �rX|j� |j �|j ddd�n*|j dddd�|j� |j�|j dd�dS)NT)r~rr�)r.)r~)rAr#r�r$r>r%rr!rXr�r<�!expect_block_mapping_simple_valuerorW�expect_block_mapping_value)rrTr r r r��s z Emitter.expect_block_mapping_keycCs*|�dd�|j�|j�|jdd�dS)Nr�FT)r~)rWrr<r�ro)rr r r r��s z)Emitter.expect_block_mapping_simple_valuecCs6|��|jdddd�|j�|j�|jdd�dS)Nr�T)r.)r~)rXrWrr<r�ro)rr r r r��sz"Emitter.expect_block_mapping_valuecCs"t|jt�o |jo t|jdt�S)Nr)rAr#rDr"r�)rr r r rw�szEmitter.check_empty_sequencecCs"t|jt�o |jo t|jdt�S)Nr)rAr#rEr"r�)rr r r rz�szEmitter.check_empty_mappingcCsNt|jt�r|jsdS|jd}t|t�oL|jdkoL|jdkoL|joL|jdkS)NFr�) rAr#rBr"rsr��tagrk�value)rr#r r r rc�s  zEmitter.check_empty_documentcCs d}t|jt�rD|jjdk rD|jdkr6|�|jj�|_|t|j�7}t|jttf�r�|jj dk r�|j dkrz|� |jj �|_ |t|j �7}t|jt�r�|j dkr�|� |jj�|_ |t|j j�7}|dk�ot|jt��pt|jt�r�|j j r�|j j �p|���p|��S)Nr�)rAr#Z NodeEventr�r6�prepare_anchorrJrsrGr�r7� prepare_tagr8�analyze_scalarr�r rqr rrwrz)r�lengthr r r r��s$      zEmitter.check_simple_keycCsR|jjdkrd|_dS|jdkr0|�|jj�|_|jrH|�||jd�d|_dS)NT)r#r�r6r�rW)r� indicatorr r r rt�s  zEmitter.process_anchorcCs�|jj}t|jt�r�|jdkr(|��|_|jr6|dkrl|jdkrL|jjdsb|jdkrl|jjdrld|_dS|jjdr�|dkr�d}d|_n |jr�|dkr�|jjr�d|_dS|dkr�t d��|jdkr�|� |�|_|jr�|� |jd�d|_dS)Nr�rrrztag is not specifiedT) r#r�rArsr9�choose_scalar_styler0rkr7rr�rW)rr�r r r ru�s,     zEmitter.process_tagcCs�|jdkr|�|jj�|_|jjdks,|jr0dS|jjsz|jjdrz|jrZ|jjsz|jj sz|j rh|jj sv|j sz|jj rzdS|jjr�|jjdkr�|j s�|js�|jj r�|jjS|jjr�|jjdkr�|jjr�|jr�|jj s�dSdS)N�"rr�z|>�')r8r�r#r�r9r0rkr*r rr&rrrr)rr r r r��s&  zEmitter.choose_scalar_stylecCs�|jdkr|�|jj�|_|jdkr.|��|_|j }|jdkrR|�|jj|�n`|jdkrn|� |jj|�nD|jdkr�|� |jj�n*|jdkr�|� |jj�n|� |jj|�d|_d|_dS)Nr�r��>�|) r8r�r#r�r9r�r*�write_double_quotedr �write_single_quoted� write_folded� write_literal� write_plain)r�splitr r r r�s        zEmitter.process_scalarcCs,|\}}|dkr td||f��d||fS)Nrzunsupported YAML version: %d.%dz%d.%d)r)rrV�major�minorr r r rYszEmitter.prepare_versioncCs�|s td��|ddks$|ddkr0td|��xn|dd�D]^}d|krVdks>nd |krld ks>nd |kr�d ks>n|d ks>td||f��q>W|S)Nztag handle must not be emptyrrrFz*tag handle must start and end with '!': %rr�0�9�A�Z�a�zz-_z*invalid character %r in the tag handle: %r)r)rrg�chr r r r_!s BzEmitter.prepare_tag_handlecCs |s td��g}d}}|ddkr(d}x�|t|�kr�||}d|krRdks�nd|krhdks�nd |kr~d ks�n|d kr�|d7}q*||kr�|�|||��|d}}|�d �}x|D]}|�d t|��q�Wq*W||k�r|�|||��d�|�S)Nztag prefix must not be emptyrrrr�r�r�r�r�r�z-;/?!:@&=+$,_.~*'()[]zutf-8z%%%02Xr�)rrJr<�encode�ord�join)rrh�chunks�start�endr��datar r r r`-s( B     zEmitter.prepare_tag_prefixc Cs�|s td��|dkr|Sd}|}t|j���}xH|D]@}|�|�r4|dksZt|�t|�kr4|j|}|t|�d�}q4Wg}d}}x�|t|�k�rV||} d| kr�dks�nd| kr�dks�nd| kr�d ks�n| d ks�| dk�r|dk�r|d 7}q�||k�r |�|||��|d }}| �d �} x| D]} |�d | ��q) rr]r5r^� startswithrJr<r�r�) rr�rg�suffix�prefixesrhr�r�r�r�r�Z suffix_textr r r r�Ds@   B        zEmitter.prepare_tagcCsx|s td��xf|D]^}d|kr*dksnd|kr@dksnd|krVdksn|dkstd ||f��qW|S) Nzanchor must not be emptyr�r�r�r�r�r�z-_z&invalid character %r in the anchor: %r)r)rr�r�r r r r�hs BzEmitter.prepare_anchorc Cs4|st|dddddddd�Sd}d}d}d}d}d}d}d} d} d} |�d�sX|�d�r`d}d}d} t|�dkpz|ddk} d}d}d}�x|t|�k�r�||}|dkr�|d kr�d}d}|d kr�d}| r�d}|d kr�| r�d}d}n<|d kr�d}|d k�rd}| �rd}|dk�r | �r d}d}|dk�r.d}|dk�s�d|k�rPdk�s�n|dk�s�d|k�rtdk�s�nd|k�r�dk�s�nd|k�r�dk�r�nn|dk�r�d}|j�s�d}nd}|dk�r|dk�r�d}|t|�dk�r�d}|�rd} d}d}nJ|dk�rP|dk�r&d}|t|�dk�r'"%@`z?:r�z,?[]{}r��#u …

r� �~�…� u퟿uu�uð�€€uô�¿¿u)r r�rJr1)rr Zblock_indicatorsZflow_indicatorsZ line_breaksZspecial_characters� leading_spaceZ leading_breakZtrailing_spaceZtrailing_breakZ break_spaceZ space_breakZpreceded_by_whitespaceZfollowed_by_whitespaceZprevious_spaceZprevious_break�indexr�Zunicode_charactersrrrrrr r r r�rs�     $$&        zEmitter.analyze_scalarcCst|jd�r|j��dS)N�flush)rPrr�)rr r r rls zEmitter.flush_streamcCs*|jr&|j�d�r&|j�d�|j��dS)Nzutf-16u)rr�r�writer�)rr r r rQszEmitter.write_stream_startcCs |��dS)N)rl)rr r r reszEmitter.write_stream_endcCsd|js |s|}nd|}||_|jo&||_|jt|�7_d|_|jrT|�|j�}|j�|�dS)Nr�F) r-r.r,rJr/rr�rr�)rr�Zneed_whitespacer-r.r�r r r rW s   zEmitter.write_indicatorcCsx|jpd}|jr*|j|ks*|j|kr2|js2|��|j|krtd|_d||j}||_|jrh|�|j�}|j�|�dS)NrTr�) r%r.r,r-�write_line_breakrr�rr�)rr%r�r r r rX.s   zEmitter.write_indentcCsP|dkr|j}d|_d|_|jd7_d|_|jr@|�|j�}|j�|�dS)NTrr) r4r-r.r+r,rr�rr�)rr�r r r r�;s zEmitter.write_line_breakcCs2d|}|jr|�|j�}|j�|�|��dS)Nz %%YAML %s)rr�rr�r�)rrfr�r r r rZFs   zEmitter.write_version_directivecCs6d||f}|jr|�|j�}|j�|�|��dS)Nz %%TAG %s %s)rr�rr�r�)rrirjr�r r r raMs    zEmitter.write_tag_directiveTc Cs,|�dd�d}d}d}}�x�|t|�k�rd}|t|�krF||}|r�|dksZ|dkr�|d|kr�|j|jkr�|r�|dkr�|t|�kr�|��n<|||�}|jt|�7_|jr�|�|j�}|j�|�|}n�|�rH|dks�|dk�r�||dk�r|� �x4|||�D]$} | dk�r*|� �n |� | ��qW|��|}nj|dk�sf|d k�sf|dk�r�||k�r�|||�}|jt|�7_|j�r�|�|j�}|j�|�|}|dk�r�d }|jd 7_|j�r�|�|j�}|j�|�|d}|dk �r|dk}|dk}|d7}q W|�dd�dS) Nr�TFrr�ru …

ru …

z''r) rWrJr,r3rXrr�rr�r�) r�textr��spaces�breaksr�r�r�r��brr r r r�Vsb                 zEmitter.write_single_quotedr�r��b�t�n�v�f�r�er��\�N�_�L�P)���� r� � r�r�r�r�r�u
u
cCs�|�dd�d}}�xp|t|�k�r�d}|t|�kr>||}|dks�|dks�d|krddk�s�n|jr�d|kr�dk�s�nd |kr�d k�s�n||kr�|||�}|jt|�7_|jr�|�|j�}|j�|�|}|dk �r�||jk�r d |j|}n<|d k�r"d t |�}n$|dk�r:dt |�}n dt |�}|jt|�7_|j�rl|�|j�}|j�|�|d}d|k�r�t|�dk�r|nn�|dk�s�||k�r||j|||j k�r||�r||||�d }||k�r�|}|jt|�7_|j�r|�|j�}|j�|�|� �d|_ d|_ ||dk�r|d }|jt|�7_|j�rp|�|j�}|j�|�|d7}qW|�dd�dS)Nr�Tru "\…

r�r�r�u퟿uu�r��ÿz\x%02Xuï¿¿z\u%04Xz\U%08XrF)rWrJr1r,rr�rr��ESCAPE_REPLACEMENTSr�r3rXr-r.)rr�r�r�r�r�r�r r r r��sf            8      zEmitter.write_double_quotedcCs\d}|rX|ddkr"|t|j�7}|ddkr8|d7}n t|�dksP|ddkrX|d 7}|S) Nr�ru …

rFu …

r�r������+)�strr2rJ)rr��hintsr r r �determine_block_hints�s   zEmitter.determine_block_hintsc Cs|�|�}|�d|d�|dd�dkr0d|_|��d}d}d}d}}�x�|t|�k�rd}|t|�krv||}|�r|dks�|dk�r�|s�|dk r�|dkr�||d kr�|��|dk}x0|||�D] } | d kr�|��q�|�| �q�W|dk �r|��|}n�|�r�|dk�r�|d |k�r>|j|jk�r>|��n>|||�} |jt| �7_|j�rp| � |j�} |j � | �|}nh|dk�s�|d k�r�|||�} |jt| �7_|j�r�| � |j�} |j � | �|dk�r�|��|}|dk �r|dk}|dk}|d 7}qPWdS) Nr�TrFr�Fru …

r�rru …

) r�rWr/r�rJrXr,r3rr�rr�) rr�r�r�r�r�r�r�r�r�r�r r r r��sb               zEmitter.write_foldedc Cs<|�|�}|�d|d�|dd�dkr0d|_|��d}d}}x�|t|�k�r6d}|t|�krl||}|r�|dks�|dkr�x0|||�D] }|dkr�|��q�|�|�q�W|dk r�|��|}nR|dks�|dk�r|||�}|jr�|�|j�}|j� |�|dk�r|��|}|dk �r,|dk}|d7}qFWdS) Nr�TrFr�ru …

rr) r�rWr/r�rJrXrr�rr�) rr�r�r�r�r�r�r�r�r r r r�s>        zEmitter.write_literalc Cs|jr d|_|sdS|jsNd}|jt|�7_|jrB|�|j�}|j�|�d|_d|_ d}d}d}}�x�|t|�k�r d}|t|�kr�||}|�r|dk�r�|d|kr�|j|j kr�|r�|� �d|_d|_ n>|||�}|jt|�7_|j�r|�|j�}|j�|�|}n�|�r�|dk�r�||dk�r@|� �x4|||�D]$} | dk�rf|� �n |� | ��qNW|� �d|_d|_ |}nV|dk�s�|dk�r�|||�}|jt|�7_|j�r�|�|j�}|j�|�|}|dk �r|dk}|dk}|d7}qnWdS) NTr�Frru …

ru …

) r'r/r-r,rJrr�rr�r.r3rXr�) rr�r�r�r�r�r�r�r�r�r r r r�8sl              zEmitter.write_plain)NNNNN)FF)F)FFFF)F)F)FF)N)T)T)T)@rrrr[rr;r?r=rCrOr rSrRrUrmrdrorrrvrxr�r�r{r�r�r�r�ryr�r�r|r�r�r�r�rwrzrcr�rtrur�r�rYr_r`r�r�r�rlrQrerWrXr�rZrar�r�r�r�r�r�r�r r r r rs� C     $        $ #   7 6 6#N)�__all__�errorrr"rr rr r r r � s