
    i)                        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 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 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__     n/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/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-   0   s3    MM 	3DLL+D12	3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selfr5   r6   r3   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)hasattrr3   
serializer_serializerAttributeError)r<   s    r(   rA   zBaseRepresenter.serializerI   sI    	t{{E*{{---;;*** 	K	s   +A A AAc                     | j                  |      }| j                  j                  |       i | _        g | _        d | _        y r*   )represent_datarA   	serializer7   r8   r9   )r<   datanodes      r(   	representzBaseRepresenter.representS   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_aliasesr9   idr7   r8   appendtype__mro__r   
isinstancetypesInstanceTyper-   	__class__listyaml_representersyaml_multi_representers
ScalarNoder   )r<   rG   rH   
data_types	data_types        r(   rE   zBaseRepresenter.represent_data[   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
        )rE   r<   rG   s     r(   represent_keyzBaseRepresenter.represent_key   s     ""4((r'   c                 |    d| j                   vr| j                  j                         | _        || j                  |<   y )NrU   )__dict__rU   copyr.   rY   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 )NrV   )r^   rV   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)stylerf   anchor)r5   getattrrW   r9   r7   )r<   tagvaluerg   rh   rf   rH   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)
SequenceNoder9   r7   rE   rP   rW   rg   rM   r6   ro   )	r<   rj   sequencero   rk   rH   
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 )Nrn   T)rp   r9   r7   rE   rM   r6   ro   )
r<   rj   omapro   rk   rH   rr   item_keyitem_valrt   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)Nrn   TitemsF)MappingNoder9   r7   r@   rT   r|   r:   sorted	TypeErrorr\   rE   rP   rW   rg   rM   r6   ro   )r<   rj   mappingro   rk   rH   rr   rx   
item_valuenode_key
node_values              r(   represent_mappingz!BaseRepresenter.represent_mapping   s&   3*=>>%7;D$$T^^4
7G$7==?+G44$WoG %, 	1 Hj))(3H,,Z8Jx4X^^"
z:6z?O?O"
LL(J/0	1 &&2"&"9"9  #- ! s   *D 	D&%D&c                      yNFr&   r[   s     r(   rK   zBaseRepresenter.ignore_aliases   s    r'   NNN)NNr*   )r#   r$   r%   rU   rV   r=   propertyrA   rI   rE   r\   classmethodrb   rd   rl   ru   rz   r   rK   r&   r'   r(   r   r   8   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)rP   tupler	   r   boolintfloatr[   s     r(   rK   zSafeRepresenter.ignore_aliases   s6    
 <JtU3
d[)T3FGr'   c                 &    | j                  dd      S )Ntag:yaml.org,2002:nullnullrl   r[   s     r(   represent_nonezSafeRepresenter.represent_none   s    $$%>HHr'   c                 &    | j                  d|      S Ntag:yaml.org,2002:strr   r[   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|rg   )r@   base64r   decodeencodestringrl   r[   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encoderl   r<   rG   rj   rg   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   r[   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rh   )r3   boolean_representationr   rC   rl   )r<   rG   rh   rk   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rl   r   r[   s     r(   represent_intzSafeRepresenter.represent_int1  s    $$%=yOOr'   c                 8    | j                  dt        |            S r   r   r[   s     r(   represent_longzSafeRepresenter.represent_long7  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   r   .ez.0er   tag:yaml.org,2002:float)	inf_valuer
   reprlowerri   rA   replacerl   r<   rG   rk   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ru   r[   s     r(   represent_listzSafeRepresenter.represent_listU  s     &&'?FFr'   c                 &    | j                  d|      S )Ntag:yaml.org,2002:mapr   r[   s     r(   represent_dictzSafeRepresenter.represent_dictf  s    %%&>EEr'   c                 &    | j                  d|      S )Nztag:yaml.org,2002:omap)rz   r[   s     r(   represent_ordereddictz%SafeRepresenter.represent_ordereddictj  s    ""#<dCCr'   c                 B    i }|D ]  }d ||<   	 | j                  d|      S )Ntag:yaml.org,2002:setr   )r<   rG   rk   keys       r(   represent_setzSafeRepresenter.represent_setn  s3     	CE#J	%%&>FFr'   c                 X    t        |j                               }| j                  d|      S )Ntag:yaml.org,2002:timestampr
   	isoformatrl   r   s      r(   represent_datezSafeRepresenter.represent_dateu  s'    4>>+,$$%CUKKr'   c                 Z    t        |j                  d            }| j                  d|      S )N r   r   r   s      r(   represent_datetimez"SafeRepresenter.represent_datetimez  s)    4>>#./$$%CUKKr'   c                     t        |d      r|j                         }n|j                  j                         }| j	                  |||      S )N__getstate__rn   )r@   r   r^   r_   r   )r<   rj   rG   r.   ro   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    r[   s     r(   represent_undefinedz#SafeRepresenter.represent_undefined  s    4IJJr'   r*   )r#   r$   r%   rK   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   UnicodeEncodeErrorrl   r<   rG   rj   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   rl   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realrl   r[   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   r[   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%   rC   r#   rl   )r<   rG   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   )rl   r#   r[   s     r(   represent_modulezRepresenter.represent_module  s#    $$/$--?
 	
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   )rS   r$   r#   r@   rT   r   r   r^   rP   dictr   ru   r   )r<   rG   r.   
class_namer  r   rk   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)rN   copyregdispatch_tabler@   r  r  r    rT   r  r#   r$   r%   rC   rP   r   ru   )r<   rG   r.   reducefunctionr  r   r
  r  rj   newobjfunction_namerk   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
 5$'))3mCU  z%/Fu**3+>EE E&M
5$/"E'N!*E+!*E+%%cM&95AA1  	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F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)r5   r6   r3   )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   )rh   rk   rC   r   rK   r[   s     r(   rK   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   )lenr7   rA   use_explicit_startrl   r[   s     r(   r   z#RoundTripRepresenter.represent_none  sN     (()Q.OO66 (()BGLL$$%>CCr'   c                     d }d}|j                  d      }t        rt        |t              st        |d      }d}| j	                  ||||      S )Nr   Tanyr   r   rg   rh   yaml_anchorr   rP   r   rl   r<   rG   rj   rg   rh   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'  reversedri   isspacer   r   rP   r   rl   )r<   rG   rj   rg   rh   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   )rl   rT   r   insertjoin)r<   prefixs
underscorerh   slposs          r(   insert_underscorez&RoundTripRepresenter.insert_underscore  s    (((&1*V )   a=aBa&:a=(C'		#s#z!}$ ' Aa=aAa=HA$$$fqj % 
 	
r'   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<   rG   r?  rh   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_int7  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   rl   _exp_precrG  rH  _m_signabsr   r   r   split_e_sign_e_width_m_lead0r
   r   r   )r<   rG   rk   rh   precmsmeswr   m1m2esgns                r(   represent_scalar_floatz+RoundTripRepresenter.represent_scalar_floatA  s    !!d!+4<DCKDCKET^^#Ednn_$E((*E& )   99aDJJ$++PQ/4Q%% $"c#d)n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 Gdii',*=*=at}}*UU  qSW ii  #))!T4==A	B  ==1$!23b82=BB,t}}n-B&A"g

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

*
  ii  #))!T4==A	B  =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ro   rh   Tr   Fr   )faro   rC   r'  rp   r9   r7   ri   r  rf   resetr|   valuesrM   end	enumeraterE   merge_commentsgetrP   rW   rg   r   r6   )r<   rj   rq   ro   rk   rh   rH   rr   rf   ctitem_commentsvidxrs   rt   s                  r(   ru   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 )Nrf   )r@   ri   ru  r   rf   )r<   rH   commentsr{  valncs         r(   rv  z#RoundTripRepresenter.merge_comments  s    4+++K4D)5%h/ 'S#dll++\\#&>;#)33$&HSM'  r'   c                     t        |t              rd | _        | j                  d|d      S t        |t              rd | _        | j                  d|d      S t        j                  | |      S )Nr   Trn   r   )rP   r  r9   ru   r  r   r   r\   r[   s     r(   r\   z"RoundTripRepresenter.represent_key  sy    dO,!DN**($4 +   dO,!DN))($4 *   ,,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   rf   r      Fztag:yaml.org,2002:mergez<<)rq  ro   rC   r'  r}   r9   r7   ri   r  rf   rr  r|   rs  rM   rt  r  
IndexErrorr   non_merged_itemsr\   rE   rw  rP   rW   rg   r6   r   r<  )r<   rj   r   ro   rk   rh   rH   rr   rf   rx  ry  rz  rh  
merge_list	merge_pos
item_countr|   rx   r   r   r   item_commentnvcargs                           r(   r   z&RoundTripRepresenter.represent_mapping  sp   	$ ..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GqadG
G	u=a@CI 

,,.EMMOE$) 	1 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%	1& qT*%5))5"&"9"9",
 :!#))*Q-8))*5!%LLZ0JD%QSV$WXS  	$#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   rf   r   r  )rq  ro   rC   r'  rp   r9   r7   ri   r  rf   rr  r|   rs  rM   rt  rE   rw  rk   r6   )r<   rj   rw   ro   rk   rh   rH   rr   rf   rx  ry  rz  rx   ry   rt   r  r  s                    r(   rz   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   rf   r   ?)rq  ro   r'  rC   r}   r9   r7   ri   r  rf   rr  r|   rs  rM   rt  odictr\   rE   rw  rg   rP   rW   )r<   settingro   rj   rk   rh   rH   rr   rf   rx  ry  rz  rx   r   r   r  s                   r(   r   z"RoundTripRepresenter.represent_set{  s   
&ZZ**:6
	((*F 3*VL>>%7;D$$T^^4
	g~6G"??DL||Q,,q/ BHHJ#MMM"))+ #1d #
####GKK0
   	1H))(3H,,T2J(,,X6LxD9AAA#/#3 033HNZ-x4X^^"
z:6z?O?O"
LL(J/0	1  
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   )rj   rk   rC   
startswithr   r<   rG   trj   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   )rj   rk   rC   r  ru   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   rl   r
   )r<   rG   interr  rk   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%  )rj   rk   rC   r'  rl   rg   )r<   rG   rj   rh   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'  rC   r   r   )r<   rG   rh   s      r(   represent_scalar_boolz*RoundTripRepresenter.represent_scalar_bool  sE    	%%'F --dD-HH  	F	s   * 88r   r*   )r#   r$   r%   r=   rK   r   r)   represent_preserved_scalarstringr1  r4  r7  r9  rC  rK  rO  rT  rX  r[  rn  ru   rv  r\   r   rz   r   r   r   r   r  r  r&   r'   r(   r!   r!     s    	
:DL (F$L"LLL
*NPPPP[Wz1f 9N`:x/b1 2X
WIr'   r!   ){
__future__r   r   r   errornodescompatr   r	   r
   r   r   r   r   r   scalarstringr   r   r   r   r   	scalarintr   r   r   r   r   scalarfloatr   
scalarboolr   	timestampr   datetimesysrQ   r  r   copy_regtypingDictListAnyUnionTextOptional__all__	YAMLErrorr    r-   objectr   r   rb   rN   r   strr   r   r   bytesr   r   r   r   r   longr   r   r   rT   r   r   r  r   setr   r   version_infocollectionsOrderedDictdater   r   r   r   complexr   r   r   	ClassTypeFunctionTypeBuiltinFunctionType
ModuleTyper   rd   rR   r  r  r}  r  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 @   @ @  #  J I $ %    
 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yB/ yBx [%>%>?)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%%K::  ! !&+*F*F G  ! !$(B(B C
 
 
L	I? L	I^  $ $T$Z1E1T1T U  $ $-LL  $ $,JJ  $ $2WW  $ $2WW  $ $+HH  $ $#88  $ $#88  $ $X/C/W/W X  $ $V-A-S-S T  $ $$;;  $ $%<<  $ $'==  $ $\3G3V3V W  $ $\3G3V3V W  $ $-CC v((!5!K!K  $ $\3G3U3U V  $ $&>>  $ $Y0D0W0W Xr'   