
                            d dl mZmZmZ d dl d dl d dlmZmZm	Z	m
Z
mZ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 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#er	d d
l$Z$d d
l%Z%nd d
l&Z$	 g dZ. G d de/      Z0e
rd Z1 G d de2      Z3 G d de3      Z4e4jk                   e6d
      e4jn                         e4jk                  e8e4jr                         e
re4jk                  e:e4jv                         ne4jk                  e<e4jz                         e4jk                  e>e4j~                         e4jk                  e@e4j                         e
re4jk                  eBe4j                         e4jk                  eDe4j                         e4jk                  eFe4j                         e4jk                  eHe4j                         e4jk                  eIe4j                         e4jk                  eKe4j                         e4jk                  ee4j                         e"j                  dk\  r*d d
lOZOe4jk                  eOj                  e4j                         e4jk                  e!j                  e4j                         e4jk                  e!jB                  e4j                         e4jk                  d
e4j                          G d de4      ZUe
rTeUjk                  e8eUjr                         eUjk                  e:eUjv                         eUjk                  eBeUj                         eUjk                  eVeUj                         eUjk                  eHeUj                         eUjk                  e6eUj                         e
r&eUjk                  e#j                  eUj                         eUjk                  e#j                  eUj                         eUjk                  e#j                  eUj                         eUjk                  e#j                  eUj                         e
r&eUj                  e#j                  eUj                         eUj                  e2eUj                         eUj                  e6eUj                         d dlcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZl  G d de4      Zmemjk                   e6d
      emjn                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  eemj                         emjk                  efemj                         emjk                  edemj                         emjk                  eeemj                         e"j                  dk\  r*d d
lOZOemjk                  eOj                  emj                         emjk                  eiemj                         emjk                  elemj                         emjk                  e emj                         y
)    )print_functionabsolute_importdivision)*)	text_typebinary_type
to_unicodePY2PY3ordereddict)nprintnprintf)LiteralScalarStringFoldedScalarStringSingleQuotedScalarStringDoubleQuotedScalarStringPlainScalarString)	ScalarInt	BinaryIntOctalIntHexInt
HexCapsInt)ScalarFloat)ScalarBoolean)	TimeStampN)BaseRepresenterSafeRepresenterRepresenterRepresenterErrorRoundTripRepresenterc                       e Zd Zy)r   N)__name__
__module____qualname__     *lib/third_party/ruamel/yaml/representer.pyr   r   )   s    r&   r   c                 b    | g}| j                   D ]  }|j                  t        |              |S N)	__bases__extendget_classobj_bases)clsbasesbases      r'   r,   r,   /   s.    MMDLL+D12 "r&   c                       e Zd Zi Zi ZddZed        Zd Zd Z	d Z
ed        Zed        Zdd	Zdd
ZddZddZd Zy)r   Nc                     || _         | j                   | | j                   _        || _        || _        i | _        g | _        d | _        d| _        y )NT)dumper_representerdefault_styledefault_flow_stylerepresented_objectsobject_keeper	alias_key sort_base_mapping_type_on_outputselfr4   r5   r2   s       r'   __init__zBaseRepresenter.__init__<   sN    ;;"'+DKK$*"4#% 04-r&   c                     	 t        | j                  d      r| j                  j                  S | j                  j                  S # t        $ r | cY S w xY w)Ntyp)hasattrr2   
serializer_serializerAttributeError)r;   s    r'   r@   zBaseRepresenter.serializerH   sI    	t{{E*{{---;;*** 	K	s   +A A AAc                     | j                  |      }| j                  j                  |       i | _        g | _        d | _        y r)   )represent_datar@   	serializer6   r7   r8   )r;   datanodes      r'   	representzBaseRepresenter.representR   s;    ""4(!!$'#% r&   c                 .   | j                  |      rd | _        nt        |      | _        | j                  N| j                  | j                  v r| j                  | j                     }|S | j                  j                  |       t        |      j                  }t        r;t        |t        j                        r!t        |j                        t        |      z   }|d   | j                  v r | j                  |d      | |      }|S |D ])  }|| j                   v s | j                   |   | |      } |S  d | j                   v r | j                   d    | |      }|S d | j                  v r | j                  d    | |      }|S t#        d t%        |            }|S )Nr   )ignore_aliasesr8   idr6   r7   appendtype__mro__r
   
isinstancetypesInstanceTyper,   	__class__listyaml_representersyaml_multi_representers
ScalarNoder   )r;   rF   rG   
data_types	data_types        r'   rD   zBaseRepresenter.represent_dataZ   s   t$!DNXDN>>%~~!9!99//? %%d+$Z''
$ 2 23/?$zBRR
a=D22284))*Q-8tDD  (	 < <<B477	B4ND  (
 4777=477=dDID  T3337411$7dCD
  &dIdO<D r&   c                 $    | j                  |      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
        )rD   r;   rF   s     r'   represent_keyzBaseRepresenter.represent_key   s     ""4((r&   c                 |    d| j                   vr| j                  j                         | _        || j                  |<   y )NrT   )__dict__rT   copyr-   rX   representers      r'   add_representerzBaseRepresenter.add_representer   s7     cll2$'$9$9$>$>$@C!+6i(r&   c                 |    d| j                   vr| j                  j                         | _        || j                  |<   y )NrU   )r]   rU   r^   r_   s      r'   add_multi_representerz%BaseRepresenter.add_multi_representer   s7     %CLL8*-*E*E*J*J*LC'1<##I.r&   c                     || j                   }d }|r|d   dv rt        |dd       }|rd |gg}t        |||||      }| j                  || j                  | j                  <   |S )Nr   z|>comment)stylere   anchor)r4   getattrrV   r8   r6   )r;   tagvaluerf   rg   re   rG   s          r'   represent_scalarz BaseRepresenter.represent_scalar   sw    =&&EU1X%eY5G'+#uE76R>>%7;D$$T^^4r&   c                 R   g }t        |||      }| j                  || j                  | j                  <   d}|D ]B  }| j                  |      }t	        |t
              r|j                  rd}|j                  |       D |&| j                  | j                  |_	        |S ||_	        |S )N
flow_styleTF)
SequenceNoder8   r6   rD   rO   rV   rf   rL   r5   rn   )	r;   ri   sequencern   rj   rG   
best_styleitem	node_items	            r'   represent_sequencez"BaseRepresenter.represent_sequence   s    C:>>>%7;D$$T^^4
D++D1Iy*5ioo"
LL#	 
 &&2"&"9"9  #-r&   c                 $   g }t        |||      }| j                  || j                  | j                  <   d}|D ]+  }||   }| j                  ||i      }	|j	                  |	       - |&| j
                  | j
                  |_        |S ||_        |S )Nrm   T)ro   r8   r6   rD   rL   r5   rn   )
r;   ri   omaprn   rj   rG   rq   item_keyitem_valrs   s
             r'   represent_omapzBaseRepresenter.represent_omap   s    C:>>>%7;D$$T^^4
HH~H++Xx,@AI LL#  &&2"&"9"9  #-r&   c                 R   g }t        |||      }| j                  || j                  | j                  <   d}t        |d      r1t	        |j                               }| j                  r	 t        |      }|D ]v  \  }}| j                  |      }	| j                  |      }
t        |	t              r|	j                  rd}t        |
t              r|
j                  rd}|j                  |	|
f       x |&| j                  | j                  |_        |S ||_        |S # t        $ r Y w xY w)Nrm   TitemsF)MappingNoder8   r6   r?   rS   r{   r9   sorted	TypeErrorr[   rD   rO   rV   rf   rL   r5   rn   )r;   ri   mappingrn   rj   rG   rq   rw   
item_valuenode_key
node_values              r'   represent_mappingz!BaseRepresenter.represent_mapping   s!   3*=>>%7;D$$T^^4
7G$7==?+G44$WoG %, Hj))(3H,,Z8Jx4X^^"
z:6z?O?O"
LL(J/0 %, &&2"&"9"9  #- ! s   *D 	D&%D&c                      yNFr%   rZ   s     r'   rJ   zBaseRepresenter.ignore_aliases   s    r&   NNN)NNr)   )r"   r#   r$   rT   rU   r<   propertyr@   rH   rD   r[   classmethodra   rc   rk   rt   ry   r   rJ   r%   r&   r'   r   r   7   sx     
5  $L) 7 7 = =&*:r&   r   c                       e Zd Zd Zd Zerd Zd Znd Zd ZddZ	d	 Z
erd
 ZdZ ee       eeez        k7  reez  Z ee       eeez        k7  rd Zd Zd Zd Zd Zd Zd ZddZd Zy)r   c                     |t        |t              r|dk(  ryt        |t        t        t        t
        t        f      ryy)Nr%   TF)rO   tupler   r   boolintfloatrZ   s     r'   rJ   zSafeRepresenter.ignore_aliases   s6    
 <JtU3
d[)T3FGr&   c                 &    | j                  dd      S )Ntag:yaml.org,2002:nullnullrk   rZ   s     r'   represent_nonezSafeRepresenter.represent_none   s    $$%>HHr&   c                 &    | j                  d|      S Ntag:yaml.org,2002:strr   rZ   s     r'   represent_strzSafeRepresenter.represent_str      (()A4HHr&   c                     t        t        d      r%t        j                  |      j                  d      }n$t        j                  |      j                  d      }| j                  d|d      S )Nencodebytesasciitag:yaml.org,2002:binary|rf   )r?   base64r   decodeencodestringrk   rZ   s     r'   represent_binaryz SafeRepresenter.represent_binary  s\    v}-))$/66w?**4077@(()DdRU(VVr&   c                     d }d }	 t        |d      }d}| j                  |||      S # t        $ r7 	 t        |d      }d}n$# t        $ r |j                  d      }d}d}Y nw xY wY Sw xY w)Nr   r   utf-8r   r   r   r   unicodeUnicodeDecodeErrorencoderk   r;   rF   ri   rf   s       r'   r   zSafeRepresenter.represent_str  s    CE
 tW-. ((d%(@@ &   "41D2C)  ;;x0D5CE 	 2   ( 	A(A A(A"A(!A""A('A(c                 &    | j                  d|      S r   r   rZ   s     r'   represent_unicodez!SafeRepresenter.represent_unicode!  r   r&   Nc                     	 | j                   j                  t        |         }| j	                  d||      S # t        $ r
 |rd}nd}Y &w xY w)Ntruefalseztag:yaml.org,2002:boolrg   )r2   boolean_representationr   rB   rk   )r;   rF   rg   rj   s       r'   represent_boolzSafeRepresenter.represent_bool%  sY    	!KK66tDzBE $$%>f$UU  	! 		!s   "8 A
Ac                 8    | j                  dt        |            S Ntag:yaml.org,2002:intrk   r   rZ   s     r'   represent_intzSafeRepresenter.represent_int0  s    $$%=yOOr&   c                 8    | j                  dt        |            S r   r   rZ   s     r'   represent_longzSafeRepresenter.represent_long6  s    (()A9T?SSr&   gu <7~c                 B   ||k7  s
|dk(  r|dk(  rd}n||| j                   k(  rd}nj|| j                    k(  rd}nWt        t        |            j                         }t	        | j
                  dd       dk(  rd|vrd	|v r|j                  d	d
d      }| j                  d|      S )N              ?.nan.inf-.infuse_version)   r   .ez.0er   tag:yaml.org,2002:float)	inf_valuer	   reprlowerrh   r@   replacerk   r;   rF   rj   s      r'   represent_floatzSafeRepresenter.represent_float>  s    4<DCKDCKET^^#Ednn_$EtDz*002Ett<Fu$ "MM$:E$$%?GGr&   c                 &    | j                  d|      S )Ntag:yaml.org,2002:seqrt   rZ   s     r'   represent_listzSafeRepresenter.represent_listT  s     &&'?FFr&   c                 &    | j                  d|      S )Ntag:yaml.org,2002:mapr   rZ   s     r'   represent_dictzSafeRepresenter.represent_dicte  s    %%&>EEr&   c                 &    | j                  d|      S )Nztag:yaml.org,2002:omap)ry   rZ   s     r'   represent_ordereddictz%SafeRepresenter.represent_ordereddicti  s    ""#<dCCr&   c                 B    i }|D ]  }d ||<   	 | j                  d|      S )Ntag:yaml.org,2002:setr   )r;   rF   rj   keys       r'   represent_setzSafeRepresenter.represent_setm  s.    CE#J %%&>FFr&   c                 X    t        |j                               }| j                  d|      S )Ntag:yaml.org,2002:timestampr	   	isoformatrk   r   s      r'   represent_datezSafeRepresenter.represent_datet  s'    4>>+,$$%CUKKr&   c                 Z    t        |j                  d            }| j                  d|      S )N r   r   r   s      r'   represent_datetimez"SafeRepresenter.represent_datetimey  s)    4>>#./$$%CUKKr&   c                     t        |d      r|j                         }n|j                  j                         }| j	                  |||      S )N__getstate__rm   )r?   r   r]   r^   r   )r;   ri   rF   r-   rn   states         r'   represent_yaml_objectz%SafeRepresenter.represent_yaml_object~  sD    4(%%'EMM&&(E%%c5Z%HHr&   c                     t        d|      )Nzcannot represent an object: )r   rZ   s     r'   represent_undefinedz#SafeRepresenter.represent_undefined  s    4IJJr&   r)   )r"   r#   r$   rJ   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r%   r&   r'   r   r      s    	I 	I	W	A"	I	VP 	T I
y/T)i"78
8Y	 y/T)i"78
8H,	G"FDGL
L
IKr&   r   )      c                   J    e Zd Zer	d Zd Zd Zd Zd Zd Z	d Z
erd Zd	 Zy
)r   c                     d }d }	 t        |d      }d}| j                  |||      S # t        $ r7 	 t        |d      }d}n$# t        $ r |j                  d      }d}d}Y nw xY wY Sw xY w)	Nr   r   r   ztag:yaml.org,2002:python/strr   r   r   r   r   r   s       r'   r   zRepresenter.represent_str  s    CE
 tW-. ((d%(@@ &   "41D9C)  ;;x0D5CE 	 r   c                 t    d }	 |j                  d       d}| j                  ||      S # t        $ r d}Y w xY w)Nr   z tag:yaml.org,2002:python/unicoder   )r   UnicodeEncodeErrorrk   r;   rF   ri   s      r'   r   zRepresenter.represent_unicode  sH    C/G$9 ((d33 & /./s   ) 77c                 Z    d}t        |      |urd}| j                  |t        |            S )Nr   ztag:yaml.org,2002:python/long)r   rk   r	   r   s      r'   r   zRepresenter.represent_long  s0    *C4y$6((j.>??r&   c                 0   |j                   dk(  rd|j                  z  }nf|j                  dk(  rd|j                   z  }nG|j                   dkD  r|j                  d|j                   d}n|j                  |j                   d}| j                  d|      S )Nr   z%rz%rjr   +jz tag:yaml.org,2002:python/complex)imagrealrk   rZ   s     r'   represent_complexzRepresenter.represent_complex  sy    99499$DYY#DII%DYY] $		4995D#yy$))4D$$%H$OOr&   c                 &    | j                  d|      S )Nztag:yaml.org,2002:python/tupler   rZ   s     r'   represent_tuplezRepresenter.represent_tuple  s    &&'H$OOr&   c                     	 |j                   d|j                  }| j	                  d|z   d      S # t        $ r |j                   d|j                  }Y ;w xY w)Nr   ztag:yaml.org,2002:python/name: )r#   r$   rB   r"   rk   )r;   rF   names      r'   represent_namezRepresenter.represent_name  sY    	?#0A0ABD $$%F%MrRR  	?#>D	?s   2 $AAc                 @    | j                  d|j                  z   d      S )Nz tag:yaml.org,2002:python/module:r   )rk   r"   rZ   s     r'   represent_modulezRepresenter.represent_module  s     $$%H4==%XZ\]]r&   c                    |j                   }|j                  d|j                  }d }d }t        |d      rt	        |j                               }t        |d      r|j                         }n|j                  }|%t        |t              r| j                  d|z   |      S t        |t              r|s| j                  d|z   |      S i }t        |      r||d<   ||d<   | j                  d|z   |      S )Nr   __getinitargs__r    tag:yaml.org,2002:python/object:$tag:yaml.org,2002:python/object/new:argsr   )rR   r#   r"   r?   rS   r   r   r]   rO   dictr   rt   r   )r;   rF   r-   
class_namer  r   rj   s          r'   represent_instancezRepresenter.represent_instance  s    & ..C%(^^S\\BJDEt./D0023t^,))+|
5$ 7--7*De  %&u..;jH$  EDz $f"E'N))7*De r&   c                    t        |      }|t        j                  v rt        j                  |   |      }nIt        |d      r|j	                  d      }n+t        |d      r|j                         }nt        d|      t        |      d gdz  z   d d }|\  }}}}}t        |      }|i }|t        |      }|t        |      }|j                  dk(  r|d   }|dd  }d	}	d
}
nd}	d}
	 |j                  d|j                  }|s+|s)|s't        |t              r|
r| j                  d|z   |      S |s)|s't        |t              r|s| j                  |	|z   |      S i }|r||d<   |st        |t              s||d<   |r||d<   |r||d<   | j                  |	|z   |      S # t        $ r |j                  d|j                  }Y w xY w)N__reduce_ex__r   
__reduce__zcannot represent object:    
__newobj__r   r   r   Tz&tag:yaml.org,2002:python/object/apply:Fr   r   r  r   	listitems	dictitems)rM   copyregdispatch_tabler?   r  r  r   rS   r  r"   r#   r$   rB   rO   r   rt   )r;   rF   r-   reducefunctionr  r   r
  r  ri   newobjfunction_namerj   s                r'   represent_objectzRepresenter.represent_object&  s   $ 4j'(((++C06FT?+''*FT<(__&F"D#JKKv,$!+Ra06<3$y)Dz=E YI YI,AwH8D9CF;CF	P(0(;(;X=R=RSM IiJud<SX^))3mCU  z%/Fu**3+>EE E&M
5$/"E'N!*E+!*E+%%cM&95AA%  	P(0(;(;X=N=NOM	Ps   )F $GGN)r"   r#   r$   r
   r   r   r   r   r   r   r   r  r  r%   r&   r'   r   r     s@    
	A"	4	@
PPS^ +	Z@Br&   r   )	CommentedMapCommentedOrderedMapCommentedSeqCommentedKeySeqCommentedKeyMapCommentedSetcomment_attribmerge_attribTaggedScalarc                       e Zd ZddZd Zd Zd ZeZd Zd Z	d Z
d	 Zdd
Zd Zd Zd Zd Zd Zd ZddZd Zd ZddZddZd Zd Zd Zd Zd Zd Zy)r    Nc                 V    t        |d      s|d}t        j                  | |||       y )Nr>   F)r4   r5   r2   )r?   r   r<   r:   s       r'   r<   zRoundTripRepresenter.__init__  s7    vu%*<*D!&  '1	 	! 	
r&   c                     	 |j                   |j                   j                  yt        j	                  | |      S # t        $ r Y !w xY wr   )rg   rj   rB   r   rJ   rZ   s     r'   rJ   z#RoundTripRepresenter.ignore_aliases  sL    	{{&4;;+<+<+H --dD99  		s   "; 	AAc                     t        | j                        dk(  r(| j                  j                  s| j	                  dd      S | j	                  dd      S )Nr   r   r   r   )lenr6   r@   use_explicit_startrk   rZ   s     r'   r   z#RoundTripRepresenter.represent_none  sI    t''(A-doo6X6X(()BGLL$$%>CCr&   c                     d }d}|j                  d      }t        rt        |t              st        |d      }d}| j	                  ||||      S )Nr   Tanyr   r   rf   rg   yaml_anchorr
   rO   r   rk   r;   rF   ri   rf   rg   s        r'   represent_literal_scalarstringz3RoundTripRepresenter.represent_literal_scalarstring  V    !!d!+z$04)D&$$S$eF$KKr&   c                    d }d}|j                  d      }t        t        |dg             D ]\  }||   dk(  s|dkD  s||dz
     j                         r)|t	        |      k  s8||dz      j                         rO|d | dz   ||d  z   }^ t
        rt        |t              st        |d	      }d
}| j                  ||||      S )N>Tr#  fold_posr   r   r   r   r   r%  )	r'  reversedrh   isspacer   r
   rO   r   rk   )r;   rF   ri   rf   rg   r-  s         r'   represent_folded_scalarstringz2RoundTripRepresenter.represent_folded_scalarstring  s    !!d!+ z2!>?HX#%\$x!|*<*D*D*FD	)$x!|2D2L2L2NIX-XY? @ z$04)D&$$S$eF$KKr&   c                     d }d}|j                  d      }t        rt        |t              st        |d      }d}| j	                  ||||      S )N'Tr#  r   r   r%  r&  r(  s        r'   $represent_single_quoted_scalarstringz9RoundTripRepresenter.represent_single_quoted_scalarstring  r*  r&   c                     d }d}|j                  d      }t        rt        |t              st        |d      }d}| j	                  ||||      S )N"Tr#  r   r   r%  r&  r(  s        r'   $represent_double_quoted_scalarstringz9RoundTripRepresenter.represent_double_quoted_scalarstring  r*  r&   c                     d }d}|j                  d      }t        rt        |t              st        |d      }d}| j	                  ||||      S )Nr   Tr#  r   r   r%  r&  r(  s        r'   represent_plain_scalarstringz1RoundTripRepresenter.represent_plain_scalarstring  sV    !!d!+z$04)D&$$S$eF$KKr&   c                 8   || j                  d||z   |      S |d   rRt        |      }t        |      |d   z
  }|dkD  r |j                  |d       ||d   z  }|dkD  r dj	                  |      }|d   rd|z   }|d   r|dz  }| j                  d||z   |      S )Nr   r   r   _r   r   r   )rk   rS   r   insertjoin)r;   prefixs
underscorerg   slposs          r'   insert_underscorez&RoundTripRepresenter.insert_underscore  s    (()A6A:V\(]]a=aBa&:a=(C'		#s#z!}$ ' Aa=aAa=HA$$%=vzRX$YYr&   c                     |j                   dj                  ||j                         }nt        |d      }|j                  d      }| j                  d||j                  |      S )Nz{:0{}d}dTr#  r   r   _widthformatr'  rC  _underscorer;   rF   r?  rg   s       r'   represent_scalar_intz)RoundTripRepresenter.represent_scalar_int  sa    ;;"  t{{3AtS!A!!d!+%%b!T-=-=f%MMr&   c                     |j                   dj                  ||j                         }nt        |d      }|j                  d      }| j                  d||j                  |      S )Nz{:0{}b}bTr#  0br   rF  rJ  s       r'   represent_binary_intz)RoundTripRepresenter.represent_binary_int  a    ;;"  t{{3AtS!A!!d!+%%dAt/?/?%OOr&   c                     |j                   dj                  ||j                         }nt        |d      }|j                  d      }| j                  d||j                  |      S )Nz{:0{}o}oTr#  0or   rF  rJ  s       r'   represent_octal_intz(RoundTripRepresenter.represent_octal_int  rP  r&   c                     |j                   dj                  ||j                         }nt        |d      }|j                  d      }| j                  d||j                  |      S )Nz{:0{}x}xTr#  0xr   rF  rJ  s       r'   represent_hex_intz&RoundTripRepresenter.represent_hex_int  rP  r&   c                     |j                   dj                  ||j                         }nt        |d      }|j                  d      }| j                  d||j                  |      S )Nz{:0{}X}XTr#  rW  r   rF  rJ  s       r'   represent_hex_caps_intz+RoundTripRepresenter.represent_hex_caps_int%  rP  r&   c                 	   d}|j                  d      }||k7  s
|dk(  r|dk(  rd}n$|| j                  k(  rd}n|| j                   k(  rd}|r| j                  d	||
      S |j                  i|j                  dkD  rZ|j                  |j
                  dz
  k(  r>dj                  |j                  r|j                  ndt        t        |                  }n|j                  |j                  }|j                  r|j                  nd}dj                  |t        |      |j
                  t        |      z
  |j
                  |z
  dz
        }|dk(  s
|dk(  r|dk7  r|j                  dd      }t        |      |j
                  k  r9|dz  }t        |      |j
                  k  rndj                  ||j
                  |j
                  |j                  rdndz         j                  d      \  }}|j                  dkD  r|j
                  n|j
                  dz   }|dk  r|dz  }|d| }t        |      }	|j                  d      \  }
}t        |
      t        |      z   |j
                  |j                  dk\  rdndz
  k  r>|dz  }t        |
      t        |      z   |j
                  |j                  dk\  rdndz
  k  r>|j                  r
|dkD  rd|
z   }
|j                  rdnd}|j                  dk  r|dk7  r|	t        |      z  }	nd}t        |
      t        |      z   |j                  rdndz
  |j
                  k  r@|dz  }|	dz  }	t        |
      t        |      z   |j                  rdndz
  |j
                  k  r@|
|z   |j                  z   dj                  |	||j                        z   }n|j                  dk(  rB|	t        |      z  }	|
|z   dz   |j                  z   dj                  |	||j                        z   }n|j                  dkD  r9d|j                  dz
  z  |
z   |z   }d}
|d|j                    }|	|j                  z  }	t        |
      |j                  k  r+|
|d   z  }
|dd }|	dz  }	t        |
      |j                  k  r+|
dz   |z   |j                  z   dj                  |	||j                        z   }|"t!        t#        |            j%                         }| j                  d	||
      S )z this is way more complicated NTr#  r   r   r   r   r   r   r   r   r   z{}{:d}.r   z{}{:0{}.{}f}z0.r   0z	{:{}.{}e}r   r   z	{:{}0{}d})r'  r   rk   _exp_precrG  rH  _m_signabsr   r   r   split_e_sign_e_width_m_lead0r	   r   r   )r;   rF   rj   rg   precmsmeswr   m1m2esgns                r'   represent_scalar_floatz+RoundTripRepresenter.represent_scalar_float/  s    !!d!+4<DCKDCKET^^#Ednn_$E(()CUSY(ZZ99aDJJ$++PQ/4Q%%dlldllCPSTXPYN[EYY::D!%2B#**CIt{{SW4dkkD6H16LE qyTQY28eT2e*t{{* e*t{{* !''DLLqa8	
 eCj Ar  $zzA~DKK!OAaxQ"1ABAWWS\FBb'CG#dkk$**/Qq&QQd
 b'CG#dkk$**/Qq&QQ||q2X<<4RDzzA~:RLAB2wR(A1ET$JBFA 2wR(A1ET R$))+l.A.A!T4==.YYqSWGdNTYY.1D1DQdmm1\\  ==1$!23b82=BB,t}}n-B&A"g

*"Q%KBABBFA "g

*
 INTYY.1D1DQdmm1\\  =tDz*002E$$%?v$VVr&   c                 |   g }	 |j                   j                  |      }	 |j                         }t	        ||||      }| j
                  || j                  | j
                  <   d}	 t        |t              }|j                  |_	        |j                  r3|j                  d   r$|j                  d   D ]  }	|	j                           |j                  }
|
j                         D ]%  }|s|d   s|d   D ]  }	|	j                           ' |j                  }
|j                  |_	        	 |j                  j                  |j                         t        |      D ]f  \  }}| j!                  |      }| j#                  ||
j%                  |             t'        |t(              r|j*                  rd}|j                  |       h |4t-        |      dk7  r| j.                  | j.                  |_        |S ||_        |S # t        $ r |}Y w xY w# t        $ r d }Y w xY w# t        $ r Y w xY w# t        $ r i }
Y w xY w)Nrn   rg   Tr   Fr   )farn   rB   r'  ro   r8   r6   rh   r  re   resetr{   valuesrL   end	enumeraterD   merge_commentsgetrO   rV   rf   r   r5   )r;   ri   rp   rn   rj   rg   rG   rq   re   ctitem_commentsvidxrr   rs   s                  r'   rt   z'RoundTripRepresenter.represent_sequence~  s   	$!//
;J	))+F C:fM>>%7;D$$T^^4
	h7G"??DL||Q,,q/BHHJ *#MMM"))+1d
 # , $MMM"??DL##GKK0
 #8,IC++D1I	=+<+<S+ABy*5ioo"
LL# - 8}!d&=&=&I"&"9"9  #-S  	$#J	$  	F	, "  	M	s_   G: H 'BH- )H- /9H- )%H :H	H	HH	H*'H- )H**H- -H;:H;c                     |t        |d      sJ |S t        |dd       Lt        |      D ]>  \  }}|t        |j                        k\  r|j                  |   }|1|||k(  sJ |||<   @ ||_        |S )Nre   )r?   rh   ru  r   re   )r;   rG   commentsr{  valncs         r'   rv  z#RoundTripRepresenter.merge_comments  s    4+++K4D)5%h/S#dll++\\#&>;#)33$&HSM 0  r&   c                     t        |t              rd | _        | j                  d|d      S t        |t              rd | _        | j                  d|d      S t        j                  | |      S )Nr   Trm   r   )rO   r  r8   rt   r  r   r   r[   rZ   s     r'   r[   z"RoundTripRepresenter.represent_key  sk    dO,!DN**+CTVZ*[[dO,!DN))*BDUY)ZZ,,T488r&   c                    g }	 |j                   j                  |      }	 |j                         }t	        ||||      }| j
                  || j                  | j
                  <   d}	 t        |t              }|j                  |_	        |j                  r3|j                  d   r$|j                  d   D ]  }	|	j                           |j                  }
|
j                         D ]%  }|s|d   s|d   D ]  }	|	j                           ' 	 |j                  j                  |j                         t        |t        g       D cg c]  }|d   	 }}	 t        |t        dgg      d   d   }d}t#        |      r|j%                         }n|j                         }|D ]  \  }}|dz  }| j'                  |      }| j)                  |      }|
j+                  |      }|rCt        |dd       J |d d |_	        t        |dd       }||d   |d<   |d   |d<   n
|dd  |_	        t-        |t.              r|j0                  rd}t-        |t.              r|j0                  rd}|j                  ||f        |5|dk7  st#        |      r| j2                  | j2                  |_        n||_        t#        |      rYt5        |      dk(  r| j)                  |d         }n| j)                  |      }d|_        |j7                  |t/        d	d
      |f       |S # t        $ r |}Y w xY w# t        $ r d }Y w xY w# t        $ r Y w xY w# t        $ r i }
Y w xY wc c}w # t         $ r d}Y w xY w)Nrp  Tr   r   re   r      Fztag:yaml.org,2002:mergez<<)rq  rn   rB   r'  r|   r8   r6   rh   r  re   rr  r{   rs  rL   rt  r  
IndexErrorr   non_merged_itemsr[   rD   rw  rO   rV   rf   r5   r   r<  )r;   ri   r   rn   rj   rg   rG   rq   re   rx  ry  rz  rh  
merge_list	merge_pos
item_countr{   rw   r   r   r   item_commentnvcargs                           r'   r   z&RoundTripRepresenter.represent_mapping  s^   	$ ..z:J	((*F 3*VL>>%7;D$$T^^4
	g~6G"??DL||Q,,q/BHHJ *#MMM"))+1d
 # ,##GKK0
 %,G\2$FG$Fqad$F
G	u=a@CI 

,,.EMMOE$) Hj!OJ))(3H,,Z8J(,,X6LxD9AAA#/#3 j)T:?)!_CF)!_CF)5ab)9J&x4X^^"
z:6z?O?O"
LL(J/0% %*& qT*%54;R;R;^"&"9"9",
 :!#))*Q-8))*5!%LLZ0JD%QSV$WXO  	$#J	$  	F	( "  	M	G  	I	sw   L L 'BM )M /M %L1 MM LLL.-L.1	L>:M =L>>M MMM'&M'c                    g }	 |j                   j                  |      }	 |j                         }t	        ||||      }| j
                  || j                  | j
                  <   d}	 t        |t              }|j                  |_	        |j                  r3|j                  d   r$|j                  d   D ]  }	|	j                           |j                  }
|
j                         D ]%  }|s|d   s|d   D ]  }	|	j                           ' 	 |j                  j                  |j                         |D ]  }||   }| j                  ||i      }|
j!                  |      }|r|d   rd |d   g|_	        t        |j"                  d   d   dd       J |d   d g|j"                  d   d   _	        t        |j"                  d   d   dd       }||d   |d<   |d   |d<   n|dd  |j"                  d   d   _	        |j                  |        |&| j$                  | j$                  |_        |S ||_        |S # t        $ r |}Y #w xY w# t        $ r d }Y $w xY w# t        $ r Y 3w xY w# t        $ r i }
Y Ew xY w)Nrp  Tr   r   re   r   r  )rq  rn   rB   r'  ro   r8   r6   rh   r  re   rr  r{   rs  rL   rt  rD   rw  rj   r5   )r;   ri   rv   rn   rj   rg   rG   rq   re   rx  ry  rz  rw   rx   rs   r  r  s                    r'   ry   z#RoundTripRepresenter.represent_omap  s   	$++J7J	%%'F C:fM>>%7;D$$T^^4
	dN3G"??DL||Q,,q/BHHJ *#MMM"))+1d
 # ,##GKK0
 HH~H++Xx,@AI ),,X6L?)-|A(?I%yq1!4iFNNN1=a$0G	"1%-iooa03YE?)!_CF)!_CF4@4DIOOA&q)1 LL#) * &&2"&"9"9  #-k  	$#J	$  	F	& "  	M	s_   H4 I 'BI( )I( /I( %I 4IIII	I%!I( $I%%I( (I76I7c                 L   d}d}g }|j                   j                  |      }	 |j                         }t	        ||||      }| j
                  || j                  | j
                  <   d}	 t        |t              }|j                  |_	        |j                  r3|j                  d   r$|j                  d   D ]  }	|	j                           |j                  }
|
j                         D ]%  }|s|d   s|d   D ]  }	|	j                           ' 	 |j                  j                  |j                         |j                  D ]  }| j!                  |      }| j#                  d       }|
j%                  |      }|rt        |dd       J |d d |_	        dx|_        |_        t)        |t*              r|j&                  rd}t)        |t*              r|j&                  rd}|j                  ||f        |}|S # t        $ r d }Y w xY w# t        $ r Y w xY w# t        $ r i }
Y w xY w)	NFr   rp  Tr   re   r   ?)rq  rn   r'  rB   r|   r8   r6   rh   r  re   rr  r{   rs  rL   rt  odictr[   rD   rw  rf   rO   rV   )r;   settingrn   ri   rj   rg   rG   rq   re   rx  ry  rz  rw   r   r   r  s                   r'   r   z"RoundTripRepresenter.represent_setU  s   
&ZZ**:6
	((*F 3*VL>>%7;D$$T^^4
	g~6G"??DL||Q,,q/BHHJ *#MMM"))+1d
 # ,##GKK0
  H))(3H,,T2J(,,X6LxD9AAA#/#3 033HNZ-x4X^^"
z:6z?O?O"
LL(J/0 &  
M  	F	( "  	M	sN   G4 *BH ,H 2H %H 4HH	HH HH H#"H#c                     	 |j                   j                  }|r|j                  d      r	d|dd z   }n|}nd}| j	                  ||      S # t        $ r d}Y @w xY w)z!write out tag if saved on loadingN!!tag:yaml.org,2002:r   r   )ri   rj   rB   
startswithr   r;   rF   tri   s       r'   r   z#RoundTripRepresenter.represent_dict  sh    	A ||D!*QqrU2*C%%c400  	A	   A AAc                     	 |j                   j                  }|r|j                  d      r	d|dd  z   }n|}nd}| j	                  ||      S # t        $ r d }Y @w xY w)Nr  r  r   r   )ri   rj   rB   r  rt   r  s       r'   r   z#RoundTripRepresenter.represent_list  sh    	A ||D!*QqrU2*C&&sD11  	A	r  c                     |j                   d   rdnd}|j                   }|d   r||d   z  }|j                  |      }n|j                  |      }|d   r||d   z  }| j                  dt        |            S )Nr  Tr   deltatzr   )_yamlr   rk   r	   )r;   rF   interr  rj   s        r'   r   z'RoundTripRepresenter.represent_datetime  s|    zz#C

>E'N"DNN5)ENN5)E;U4[ E$$%CZPUEVWWr&   c                     	 |j                   j                  }	 |j                         }| j	                  ||j                  |j
                  |      S # t        $ r d }Y Gw xY w# t        $ r d }Y Gw xY w)Nr%  )ri   rj   rB   r'  rk   rf   )r;   rF   ri   rg   s       r'   represent_tagged_scalarz,RoundTripRepresenter.represent_tagged_scalar  sv    	((..C	%%'F $$S$**DJJv$VV  	C	  	F	s"   A A# A A #A10A1c                 v    	 |j                         }t        j                  | ||      S # t        $ r d }Y %w xY w)Nr   )r'  rB   r   r   )r;   rF   rg   s      r'   represent_scalar_boolz*RoundTripRepresenter.represent_scalar_bool  sE    	%%'F --dD-HH  	F	s   * 88r   r)   )r"   r#   r$   r<   rJ   r   r)   represent_preserved_scalarstringr1  r4  r7  r9  rC  rK  rO  rT  rX  r[  rn  rt   rv  r[   r   ry   r   r   r   r   r  r  r%   r&   r'   r    r      s    	
:DL (F$L"LLLZ"NPPPPMW^1f 9L\:x/b1 2X
WIr&   r    ){
__future__r   r   r   ruamel.yaml.errorruamel.yaml.nodesruamel.yaml.compatr   r   r	   r
   r   r   r   r   ruamel.yaml.scalarstringr   r   r   r   r   ruamel.yaml.scalarintr   r   r   r   r   ruamel.yaml.scalarfloatr   ruamel.yaml.scalarboolr   ruamel.yaml.timestampr   datetimesysrP   r  r   copy_regtypingDictListAnyUnionTextOptional__all__	YAMLErrorr   r,   objectr   r   ra   rM   r   strr   r   r   bytesr   r   r   r   r   longr   r   r   rS   r   r   r  r   setr   r   version_infocollectionsOrderedDictdater   r   r   r   complexr   r   r   	ClassTypeFunctionTypeBuiltinFunctionType
ModuleTyper   rc   rQ   r  r  ruamel.yaml.commentsr  r  r  r  r  r  r  r  r  r    r)  r1  r4  r7  r9  rK  rO  rT  rX  r[  rn  r  r  r%   r&   r'   <module>r     s   A @    X X .  U T / 0 +  
 7
	y 	 vf vrXKo XKv   T
O,J,J K   _%B%B C##G_-N-NO##E?+K+KL   o&D&D E   _%B%B C##D/*H*HI   'F'F G   o&D&D E   'E'E F   o&D&D E   _%B%B C   _-R-R Sv##!F!F   /M/M N    1 1?3U3U V   o&I&I JqB/ qBh [%>%>?)F)FGk&@&@A   G[%B%B C   E;#>#> ?   D+"<"< =1K1KL   E..0J0J K   E55{7Q7Q R   E,,k.J.J K%%e&8&8+:X:XY  ! !&+*F*F G  ! !$(B(B C
 
 
qI? qIh  $ $T$Z1E1T1T U  $ $-LL  $ $,JJ  $ $2WW  $ $2WW  $ $+HH  $ $Y0D0Y0Y Z  $ $Y0D0Y0Y Z  $ $X/C/W/W X  $ $V-A-S-S T  $ $Z1E1\1\ ]  $ $[2F2]2] ^  $ $]4H4^4^ _  $ $\3G3V3V W  $ $\3G3V3V W  $ $-CC v((!5!K!K  $ $\3G3U3U V  $ $&>>  $ $Y0D0W0W Xr&   