a
    ܌xd                     @   s  d dl T d dlT d dlmZ d dlmZmZ d dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d d	l m!Z! d d
l"m#Z# d dl$Z$d dl%Z%d dl&Z&d dl'Z'd dl(Z(d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ g dZ0G dd de1Z2G dd dZ3G dd de3Z4e45e6de4j7 e45e8e4j9 e45e:e4j; e45e<e4j= e45e>e4j? e45e@e4jA e45eBe4jC e45eDe4jC e45eEe4jF e45eGe4jH e45ee4jI e%jJdkr d dlKZKe45eKjLe4jI e45e$jMe4jN e45e$j$e4jO e45de4jP G dd de4ZQeQ5eReQjS eQ5eDeQjT eQ5e6eQjU eQ5e&jVeQjU eQ5e&jWeQjU eQ5e&jXeQjY eQZe[eQj\ eQZe6eQjU G dd de4Z]e]5e6de]j7 e]5ee]j^ e]5ee]j_ e]5e	e]j` e]5e
e]ja e]5ee]jb e]5ee]jc e]5ee]jd e]5ee]je e]5ee]jf e]5ee]jg e]5ee]jh e]5ee]ji e]5ee]jC e]5ee]jF e]5ee]jI e%jJdkrd dlKZKe]5eKjLe]jI e]5ee]jH e]5ee]jj e]5e!e]jO dS )    )*)ordereddict)nprintnprintf)LiteralScalarStringFoldedScalarStringSingleQuotedScalarStringDoubleQuotedScalarStringPlainScalarString)	CommentedMapCommentedOrderedMapCommentedSeqCommentedKeySeqCommentedKeyMapCommentedSetcomment_attribmerge_attribTaggedScalar)	ScalarInt	BinaryIntOctalIntHexInt
HexCapsInt)ScalarFloat)ScalarBoolean)	TimeStamp)AnchorN)DictListAnyUnionTextOptional)BaseRepresenterSafeRepresenterRepresenterRepresenterErrorRoundTripRepresenterc                   @   s   e Zd ZdS )r&   N)__name__
__module____qualname__ r+   r+   O/var/www/html/Ranjet/env/lib/python3.9/site-packages/ruamel/yaml/representer.pyr&   .   s   r&   c                   @   s&  e Zd ZU i Zeeef ed< i Zeeef ed< d$eeeeddddZe	eddd	Z
edd
ddZeed
ddZeed
ddZeeeddddZeeeddddZd%eeeeedddZd&eeeedddZd'eeeedddZd(eeeedd d!Zeed
d"d#ZdS ))r#   yaml_representersyaml_multi_representersN)selfdefault_styledefault_flow_styledumperreturnc                 C   s@   || _ | j d ur| | j _|| _|| _i | _g | _d | _d| _d S )NT)r2   Z_representerr0   r1   represented_objectsobject_keeper	alias_key sort_base_mapping_type_on_outputr/   r0   r1   r2   r+   r+   r,   __init__7   s    
zBaseRepresenter.__init__)r3   c                 C   s<   z t | jdr| jjW S | jjW S  ty6   |  Y S 0 d S )Ntyp)hasattrr2   
serializerZ_serializerAttributeError)r/   r+   r+   r,   r<   G   s    

zBaseRepresenter.serializerdatar3   c                 C   s,   |  |}| j| i | _g | _d | _d S )N)represent_datar<   	serializer4   r5   r6   )r/   r?   noder+   r+   r,   	representP   s
    
zBaseRepresenter.representc                 C   s   |  |rd | _n
t|| _| jd urN| j| jv rB| j| j }|S | j| t|j}|d | jv r|| j|d  | |}nn|D ]"}|| j	v r| j	| | |} qqd | j	v r| j	d  | |}n*d | jv r| jd  | |}nt
d t|}|S )Nr   )ignore_aliasesr6   idr4   r5   appendtype__mro__r-   r.   
ScalarNodestr)r/   r?   rB   
data_types	data_typer+   r+   r,   r@   W   s*    






zBaseRepresenter.represent_datac                 C   s
   |  |S )a  
        David Fraser: Extract a method to represent keys in mappings, so that
        a subclass can choose not to quote them (for example)
        used in represent_mapping
        https://bitbucket.org/davidfraser/pyyaml/commits/d81df6eb95f20cac4a79eed95ae553b5c6f77b8c
        )r@   r/   r?   r+   r+   r,   represent_keyx   s    zBaseRepresenter.represent_key)rL   representerr3   c                 C   s$   d| j vr| j | _|| j|< d S )Nr-   )__dict__r-   copyclsrL   rO   r+   r+   r,   add_representer   s    
zBaseRepresenter.add_representerc                 C   s$   d| j vr| j | _|| j|< d S )Nr.   )rP   r.   rQ   rR   r+   r+   r,   add_multi_representer   s    
z%BaseRepresenter.add_multi_representer)tagvaluestyleanchorr3   c                 C   sh   |d u r| j }d }|r<|d dv r<t|dd }|r<d |gg}t|||||d}| jd urd|| j| j< |S )Nr   z|>comment)rX   rZ   rY   )r0   getattrrI   r6   r4   )r/   rV   rW   rX   rY   rZ   rB   r+   r+   r,   represent_scalar   s    

z BaseRepresenter.represent_scalarrV   sequence
flow_styler3   c           	      C   s   g }t |||d}| jd ur(|| j| j< d}|D ],}| |}t|trN|jrRd}|| q0|d u r| jd urz| j|_	n||_	|S )Nr_   TF)
SequenceNoder6   r4   r@   
isinstancerI   rX   rF   r1   r_   )	r/   rV   r^   r_   rW   rB   
best_styleitem	node_itemr+   r+   r,   represent_sequence   s    



z"BaseRepresenter.represent_sequencerV   omapr_   r3   c           
      C   s|   g }t |||d}| jd ur(|| j| j< d}|D ]$}|| }| ||i}	||	 q0|d u rx| jd urr| j|_n||_|S )Nr`   T)ra   r6   r4   r@   rF   r1   r_   )
r/   rV   rh   r_   rW   rB   rc   item_keyitem_valre   r+   r+   r,   represent_omap   s    


zBaseRepresenter.represent_omaprV   mappingr_   r3   c                 C   s   g }t |||d}| jd ur(|| j| j< d}t|drht| }| jrhzt|}W n tyf   Y n0 |D ]R\}}| 	|}	| 
|}
t|	tr|	jrd}t|
tr|
jrd}||	|
f ql|d u r| jd ur| j|_n||_|S )Nr`   TitemsF)MappingNoder6   r4   r;   listrn   r7   sorted	TypeErrorrN   r@   rb   rI   rX   rF   r1   r_   )r/   rV   rm   r_   rW   rB   rc   ri   
item_valuenode_key
node_valuer+   r+   r,   represent_mapping   s2    





z!BaseRepresenter.represent_mappingc                 C   s   dS NFr+   rM   r+   r+   r,   rD      s    zBaseRepresenter.ignore_aliases)NNN)NN)N)N)N)r(   r)   r*   r-   r   r   __annotations__r.   r9   propertyr<   rC   r@   rN   classmethodrT   rU   rI   r\   ra   rf   rk   ro   rv   boolrD   r+   r+   r+   r,   r#   2   sD   
   !	  r#   c                   @   s.  e Zd ZeedddZeedddZeedddZeeddd	Z	d$ee
e edddZeedddZdZeeeee kree9 ZqteedddZeedddZeedddZeedddZeedddZeedddZeedddZd%eeeeedd d!Zed
dd"d#Zd
S )&r$   r>   c                 C   s:   |d u st |tr|dkrdS t |tttttfr6dS dS )Nr+   TF)rb   tuplebytesrJ   r{   intfloatrM   r+   r+   r,   rD      s
    zSafeRepresenter.ignore_aliasesc                 C   s   |  ddS )Ntag:yaml.org,2002:nullnullr\   rM   r+   r+   r,   represent_none   s    zSafeRepresenter.represent_nonec                 C   s   |  d|S )Ntag:yaml.org,2002:strr   rM   r+   r+   r,   represent_str   s    zSafeRepresenter.represent_strc                 C   s<   t tdrt|d}nt|d}| jd|ddS )Nencodebytesasciiztag:yaml.org,2002:binary|)rX   )r;   base64r   decodeencodestringr\   rM   r+   r+   r,   represent_binary   s    
z SafeRepresenter.represent_binaryN)r?   rY   r3   c                 C   sF   z| j jt| }W n  ty4   |r,d}nd}Y n0 | jd||dS )Ntruefalseztag:yaml.org,2002:boolrY   )r2   Zboolean_representationr{   r=   r\   )r/   r?   rY   rW   r+   r+   r,   represent_bool   s    
zSafeRepresenter.represent_boolc                 C   s   |  dt|S )Ntag:yaml.org,2002:int)r\   rJ   rM   r+   r+   r,   represent_int  s    zSafeRepresenter.represent_intgu <7~c                 C   s   ||ks|dkr|dkrd}n^|| j kr.d}nN|| j  kr@d}n<t| }t| jdd dkr|d|vr|d	|v r||d	d
d}| d|S )N              ?.nan.inf-.infuse_version   r   .ez.0er   tag:yaml.org,2002:float)	inf_valuereprlowerr[   r<   replacer\   r/   r?   rW   r+   r+   r,   represent_float  s    
zSafeRepresenter.represent_floatc                 C   s   |  d|S )Ntag:yaml.org,2002:seqrf   rM   r+   r+   r,   represent_list#  s    zSafeRepresenter.represent_listc                 C   s   |  d|S )Ntag:yaml.org,2002:maprv   rM   r+   r+   r,   represent_dict3  s    zSafeRepresenter.represent_dictc                 C   s   |  d|S )Nztag:yaml.org,2002:omap)rk   rM   r+   r+   r,   represent_ordereddict6  s    z%SafeRepresenter.represent_ordereddictc                 C   s"   i }|D ]}d ||< q|  d|S )Ntag:yaml.org,2002:setr   )r/   r?   rW   keyr+   r+   r,   represent_set9  s    
zSafeRepresenter.represent_setc                 C   s   |  }| d|S )Ntag:yaml.org,2002:timestamp	isoformatr\   r   r+   r+   r,   represent_date?  s    zSafeRepresenter.represent_datec                 C   s   | d}| d|S )N r   r   r   r+   r+   r,   represent_datetimeC  s    
z"SafeRepresenter.represent_datetimerV   r?   rS   r_   r3   c                 C   s.   t |dr| }n
|j }| j|||dS N__getstate__r`   )r;   r   rP   rQ   rv   )r/   rV   r?   rS   r_   stater+   r+   r,   represent_yaml_objectG  s    


z%SafeRepresenter.represent_yaml_objectc                 C   s   t d|d S )Nzcannot represent an object: )r&   rM   r+   r+   r,   represent_undefinedP  s    z#SafeRepresenter.represent_undefined)N)N)r(   r)   r*   r   r{   rD   rI   r   r   r   r"   r   r   r   r   r   ra   r   ro   r   r   r   r   r   r   r   r+   r+   r+   r,   r$      s,   


 	r$   )      c                   @   sd   e Zd ZeedddZeedddZeedddZeeddd	Z	ee
eef dd
dZdS )r%   r>   c                 C   sl   |j dkrt|j}nJ|jdkr.|j d}n2|j dkrN|jd|j d}n|j|j d}| d|S )Nr   jr   +z tag:yaml.org,2002:python/complex)imagr   realr\   rM   r+   r+   r,   represent_complexy  s    


zRepresenter.represent_complexc                 C   s   |  d|S )Nztag:yaml.org,2002:python/tupler   rM   r+   r+   r,   represent_tuple  s    zRepresenter.represent_tuplec                 C   sL   z|j d|j}W n$ ty:   |j d|j}Y n0 | d| dS )Nr   ztag:yaml.org,2002:python/name: )r)   r*   r=   r(   r\   )r/   r?   namer+   r+   r,   represent_name  s
    zRepresenter.represent_namec                 C   s   |  d|j dS )Nz tag:yaml.org,2002:python/module:r   )r\   r(   rM   r+   r+   r,   represent_module  s    zRepresenter.represent_modulec                 C   s  t |}|tjv r"tj| |}n8t|dr8|d}n"t|drL| }ntd|t|d gd  d d }|\}}}}}t|}|d u ri }|d urt|}|d urt|}|j	dkr|d }|dd  }d	}	d
}
nd}	d}
z|j
d|j}W n& ty"   |j
d|j	}Y n0 |sX|sX|sXt|trX|
rX| d| |S |s|st|tr|s| |	| |S i }|r||d< |st|ts||d< |r||d< |r||d< | |	| |S )N__reduce_ex__r   
__reduce__zcannot represent object:    
__newobj__r   r   z$tag:yaml.org,2002:python/object/new:Tz&tag:yaml.org,2002:python/object/apply:Fr   z tag:yaml.org,2002:python/object:argsr   	listitems	dictitems)rG   copyregdispatch_tabler;   r   r   r&   rp   dictr(   r)   r*   r=   rb   rv   rf   )r/   r?   rS   reducefunctionr   r   r   r   rV   ZnewobjZfunction_namerW   r+   r+   r,   represent_object  sX    




$zRepresenter.represent_objectN)r(   r)   r*   r   r   ra   r   rI   r   r   r    ro   r   r+   r+   r+   r,   r%   x  s
   r%   c                   @   s  e Zd ZdAeeeddddZeedddZeeddd	Zeedd
dZ	e	Z
eedddZeedddZeedddZeedddZdBeeeeedddZeedddZeedddZeedddZeedddZeeddd Zeedd!d"ZdCeeeed#d$d%Zeeed&d'd(Zeedd)d*ZdDeeeed+d,d-ZdEeeeed.d/d0Zeed1d2d3Zeedd4d5Zeedd6d7Zeedd8d9Z eedd:d;Z!eedd<d=Z"dFeeee#e ed>d?d@Z$dS )Gr'   N)r0   r1   r2   r3   c                 C   s,   t |ds|d u rd}tj| |||d d S )Nr:   F)r0   r1   r2   )r;   r$   r9   r8   r+   r+   r,   r9     s    zRoundTripRepresenter.__init__r>   c                 C   s@   z |j d ur|j jd urW dS W n ty2   Y n0 t| |S rw   )rY   rW   r=   r$   rD   rM   r+   r+   r,   rD     s    
z#RoundTripRepresenter.ignore_aliasesc                 C   s.   t | jdkr"| jjs"| ddS | ddS )Nr   r   r   r   )lenr4   r<   Zuse_explicit_startr\   rM   r+   r+   r,   r     s    z#RoundTripRepresenter.represent_nonec                 C   s*   d }d}|j dd}d}| j||||dS )Nr   Tanyr   rX   rY   yaml_anchorr\   r/   r?   rV   rX   rY   r+   r+   r,   represent_literal_scalarstring  s
    z3RoundTripRepresenter.represent_literal_scalarstringc                 C   s   d }d}|j dd}tt|dg D ]`}|| dkr$|dkr$||d   s$|t|k r$||d   s$|d | d ||d   }q$d	}| j||||d
S )N>Tr   fold_posr   r   r   r   r   )r   reversedr[   isspacer   r\   )r/   r?   rV   rX   rY   r   r+   r+   r,   represent_folded_scalarstring  s"    

z2RoundTripRepresenter.represent_folded_scalarstringc                 C   s*   d }d}|j dd}d}| j||||dS )N'Tr   r   r   r   r   r+   r+   r,   $represent_single_quoted_scalarstring  s
    z9RoundTripRepresenter.represent_single_quoted_scalarstringc                 C   s*   d }d}|j dd}d}| j||||dS )N"Tr   r   r   r   r   r+   r+   r,   $represent_double_quoted_scalarstring!  s
    z9RoundTripRepresenter.represent_double_quoted_scalarstringc                 C   s*   d }d}|j dd}d}| j||||dS )Nr   Tr   r   r   r   r   r+   r+   r,   represent_plain_scalarstring(  s
    z1RoundTripRepresenter.represent_plain_scalarstring)prefixs
underscorerY   r3   c                 C   s   |d u r| j d|| |dS |d rht|}t||d  }|dkr^||d ||d 8 }q<d|}|d rxd| }|d r|d7 }| j d|| |dS )Nr   r   r   _r   r   r   )r\   rp   r   insertjoin)r/   r   r   r   rY   slposr+   r+   r,   insert_underscore/  s    
z&RoundTripRepresenter.insert_underscorec                 C   sH   |j d ur|d|j  d}n
t|d}|jdd}| jd||j|dS )N0dTr   r   r   _widthformatr   r   _underscorer/   r?   r   rY   r+   r+   r,   represent_scalar_intA  s
    

z)RoundTripRepresenter.represent_scalar_intc                 C   sH   |j d ur|d|j  d}n
t|d}|jdd}| jd||j|dS )Nr   bTr   0br   r   r   r+   r+   r,   represent_binary_intI  s
    

z)RoundTripRepresenter.represent_binary_intc                 C   sb   |j d ur|d|j  d}n
t|d}|jdd}d}t| jdd dkrNd}| j|||j|dS )	Nr   oTr   Z0or   r   r   )r   r   r   r[   r<   r   r   )r/   r?   r   rY   r   r+   r+   r,   represent_octal_intR  s    

z(RoundTripRepresenter.represent_octal_intc                 C   sH   |j d ur|d|j  d}n
t|d}|jdd}| jd||j|dS )Nr   xTr   0xr   r   r   r+   r+   r,   represent_hex_int^  s
    

z&RoundTripRepresenter.represent_hex_intc                 C   sH   |j d ur|d|j  d}n
t|d}|jdd}| jd||j|dS )Nr   XTr   r   r   r   r   r+   r+   r,   represent_hex_caps_intg  s
    

z+RoundTripRepresenter.represent_hex_caps_intc                 C   s  d}|j dd}||ks(|dkr.|dkr.d}n || jkr>d}n|| j krNd}|rb| jd	||d
S |jdu r|jdkr|j|jd kr|jr|jnd tt|dd}n |jdu r|j}|jr|jnd}|dk r| tt|d|jt	|  d}n^| t|d|jt	|  d|j| d  d}|dksV|dkrb|dkrb|
dd}t	||jk r|d7 }qbnL||j d|j|jrdnd  dd\}}|jdkr|jn|jd }|dk r|d7 }|d| }t|}	|d\}
}t	|
t	| |j|jdkr&dnd k r<|d7 }q|jrV|dkrVd|
 }
|jrbdnd}|jdk r|dkr|	t	|8 }	nd}t	|
t	| |jrdnd |jk r|d7 }|	d8 }	q|
| |j |	| d|j d }n|jdkr2|	t	|8 }	|
| d |j |	| d|j d }n|jdkrrd|jd  |
 | }d}
|d|j  }|	|j7 }	t	|
|jk r|
|d 7 }
|dd }|	d8 }	qr|
d | |j |	| d|j d }|du rt| }| jd	||d
S )z this is way more complicated NTr   r   r   r   r   r   r   r   r   r   r   r   r   r   fz0.r   r   )r   r   r\   _expZ_precr   Z_m_signabsr~   r   r   splitZ_e_signZ_e_widthZ_m_lead0r   r   )r/   r?   rW   rY   precmsmeswr   m1m2Zesgnr+   r+   r,   represent_scalar_floatp  sz    
$(
*4,
,
(&*
(
z+RoundTripRepresenter.represent_scalar_floatr]   c                 C   s  g }z|j |}W n ty*   |}Y n0 z| }W n tyN   d }Y n0 t||||d}| jd urv|| j| j< d}zt|t}|j	|_	|j	r|j	d r|j	d D ]}	|	
  q|j}
|
 D ]&}|r|d r|d D ]}	|	
  qq|j}
|j	d u r|j	|_	n|j	d d  |_	z|j	|j W n ty>   Y n0 W n tyZ   i }
Y n0 t|D ]H\}}| |}| ||
| t|tr|jrd}|| qd|d u rt|dkr| jd ur| j|_n||_|S )Nr_   rY   Tr   Fr   )far_   r=   r   ra   r6   r4   r[   r   rZ   resetrn   valuesrF   end	enumerater@   merge_commentsgetrb   rI   rX   r   r1   )r/   rV   r^   r_   rW   rY   rB   rc   rZ   ctitem_commentsvidxrd   re   r+   r+   r,   rf     sZ    










z'RoundTripRepresenter.represent_sequence)rB   commentsr3   c                 C   s   |d u rt |dsJ |S t|dd d urzt|D ]F\}}|t|jkrJq2|j| }|d ur2|d u sp||kspJ |||< q2||_|S )NrZ   )r;   r[   r  r   rZ   )r/   rB   r  r  valncr+   r+   r,   r    s    

z#RoundTripRepresenter.merge_commentsc                 C   sL   t |tr d | _| jd|ddS t |tr@d | _| jd|ddS t| |S )Nr   Tr`   r   )rb   r   r6   rf   r   rv   r$   rN   rM   r+   r+   r,   rN      s    

z"RoundTripRepresenter.represent_keyrl   c                 C   s  g }z|j |}W n ty*   |}Y n0 z| }W n tyN   d }Y n0 t||||d}| jd urv|| j| j< d}zt|t}|j	d u r|j	|_	n|j	d d  |_	|j	r|j	d r|j	d D ]}	|	
  q|j}
| jjd u rB|
 D ](}|r|d r|d D ]}	|	
  qqz|j	|j W n ty>   Y n0 n W n ty\   i }
Y n0 dd t|tg D }zt|tdggd d }W n ty   d}Y n0 d}t|r| }n| }|D ]\}}|d7 }| |}| |}|
|}|rN|d d |_	t|dd }|d ur@|d |d< |d	 |d< n|dd  |_	t|trb|jrfd
}t|trz|jr~d
}|||f q|d u r|dkst|r| jd ur| j|_n||_t|rt|dkr| |d }n| |}d|_||tdd|f |S )Nr  Tr   c                 S   s   g | ]}|d  qS )r   r+   ).0r  r+   r+   r,   
<listcomp>1      z:RoundTripRepresenter.represent_mapping.<locals>.<listcomp>r   r   rZ      Fztag:yaml.org,2002:mergez<<)r  r_   r=   r   ro   r6   r4   r[   r   rZ   r  rn   r2   Zcomment_handlingr  rF   r  r   
IndexErrorr{   Znon_merged_itemsrN   r@   r  rb   rI   rX   r1   r   r   )r/   rV   rm   r_   rW   rY   rB   rc   rZ   r  r  r  Z
merge_listZ	merge_pos
item_countrn   ri   rs   rt   ru   item_commentnvcargr+   r+   r,   rv   	  s    















 


z&RoundTripRepresenter.represent_mappingrg   c                 C   sT  g }z|j |}W n ty*   |}Y n0 z| }W n tyN   d }Y n0 t||||d}| jd urv|| j| j< d}zt|t}|j	d u r|j	|_	n|j	d d  |_	|j	r|j	d r|j	d D ]}	|	
  q|j}
|
 D ]&}|r|d r|d D ]}	|	
  qqz|j	|j W n ty.   Y n0 W n tyJ   i }
Y n0 |D ]}|| }| ||i}|
|}|r|d rd |d g|_	t|jd d dd d u sJ |d d g|jd d _	t|jd d dd }|d ur|d |d< |d |d< n|dd  |jd d _	|| qP|d u rP| jd urJ| j|_n||_|S )Nr  Tr   r   rZ   r   r  )r  r_   r=   r   ra   r6   r4   r[   r   rZ   r  rn   r  rF   r  r@   r  rW   r1   )r/   rV   rh   r_   rW   rY   rB   rc   rZ   r  r  r  ri   rj   re   r"  r#  r+   r+   r,   rk   `  sh    










 


z#RoundTripRepresenter.represent_omap)settingr3   c                 C   s  d}d}g }|j |}z| }W n ty:   d }Y n0 t||||d}| jd urb|| j| j< d}zt|t}|j	d u r|j	|_	n|j	d d  |_	|j	r|j	d r|j	d D ]}	|	
  q|j}
|
 D ]&}|r|d r|d D ]}	|	
  qqz|j	|j W n ty   Y n0 W n ty6   i }
Y n0 |jD ]}| |}| d }|
|}|rt|dd d u s|J |d d |_	d |_|_t|tr|jrd}t|tr|jrd}|||f q>|}|S )	NFr   r  Tr   rZ   r   ?)r  r_   r   r=   ro   r6   r4   r[   r   rZ   r  rn   r  rF   r  ZodictrN   r@   r  rX   rb   rI   )r/   r%  r_   rV   rW   rY   rB   rc   rZ   r  r  r  ri   rt   ru   r"  r+   r+   r,   r     s\    











z"RoundTripRepresenter.represent_setc                 C   sZ   z|j j}W n ty"   d}Y n0 |rJ|drDd|dd  }qN|}nd}| ||S )z!write out tag if saved on loadingN!!tag:yaml.org,2002:r   r   )rV   rW   r=   
startswithrv   r/   r?   trV   r+   r+   r,   r     s    

z#RoundTripRepresenter.represent_dictc                 C   sZ   z|j j}W n ty"   d }Y n0 |rJ|drDd|dd   }qN|}nd}| ||S )Nr'  r(  r   r   )rV   rW   r=   r)  rf   r*  r+   r+   r,   r     s    

z#RoundTripRepresenter.represent_listc                 C   sb   |j d rdnd}|j }|d r8||d 7 }||}n
||}|d rV||d 7 }| d|S )Nr+  Tr   deltatzr   )_yamlr   r\   )r/   r?   interr/  rW   r+   r+   r,   r     s    
z'RoundTripRepresenter.represent_datetimec                 C   s^   z|j j}W n ty"   d }Y n0 z| }W n tyF   d }Y n0 | j||j|j|dS )Nr   )rV   rW   r=   r   r\   rX   )r/   r?   rV   rY   r+   r+   r,   represent_tagged_scalar  s    

z,RoundTripRepresenter.represent_tagged_scalarc                 C   s4   z|  }W n ty"   d }Y n0 tj| ||dS )Nr   )r   r=   r$   r   )r/   r?   rY   r+   r+   r,   represent_scalar_bool  s
    
z*RoundTripRepresenter.represent_scalar_boolr   c                 C   sN   t |dr| }n
|j }|tjd }| j|||d}|d urJ||_|S r   )	r;   r   rP   rQ   popr   attribrv   rY   )r/   rV   r?   rS   r_   r   rY   resr+   r+   r,   r     s    


z*RoundTripRepresenter.represent_yaml_object)NNN)N)N)N)N)N)%r(   r)   r*   r   r9   r{   rD   rI   r   r   Z represent_preserved_scalarstringr   r   r   r   r   r   r   r   r   r   r  ra   rf   r  rN   ro   rv   rk   r   r   r   r   r1  r2  r"   r   r+   r+   r+   r,   r'     sX     			J 8	W?4 r'   )kZruamel.yaml.errorZruamel.yaml.nodesZruamel.yaml.compatr   r   r   Zruamel.yaml.scalarstringr   r   r   r	   r
   Zruamel.yaml.commentsr   r   r   r   r   r   r   r   r   Zruamel.yaml.scalarintr   r   r   r   r   Zruamel.yaml.scalarfloatr   Zruamel.yaml.scalarboolr   Zruamel.yaml.timestampr   Zruamel.yaml.anchorr   datetimesystypesr   r   typingr   r   r   r    r!   r"   __all__Z	YAMLErrorr&   r#   r$   rT   rG   r   rJ   r   r}   r   r{   r   r~   r   r   r   rp   r   r|   r   r   setr   r   version_infocollectionsOrderedDictdater   r   r   r%   complexr   r   r   FunctionTypeBuiltinFunctionType
ModuleTyper   rU   objectr   r'   r   r   r   r   r   r   r   r   r   r   r  r2  r1  r+   r+   r+   r,   <module>   s   ,  3p\    ;