
    i                     Z   d dl mZmZ 	 d dlZd dlZddlmZ ddlmZmZm	Z	 ddl
mZ ddlmZ erd dlmZmZmZmZ nd dlmZmZmZmZ 	 g d	Zd
ZdZdZdZdZ  G d de!      Z"d Z# G d de!      Z$ G d de!      Z% G d de!      Z& G d de!      Z' G d de	e(e'      Z) G d de*e'      Z+ G d de      Z, G d  d!e,e      Z- G d" d#e,e      Z. G d$ d%e,      Z/ G d& d'ee'      Z0e1d(        Z2 G d) d*e'e      Z3 G d+ d,e0      Z4 G d- d.ee'      Z5 G d/ d0e'      Z6d1d2ejn                  fd3Z8y)4    )absolute_importprint_functionN   )ordereddict)PY2string_typesMutableSliceableSequence)ScalarString)Anchor)
MutableSetSizedSetMapping)CommentedSeqCommentedKeySeqCommentedMapCommentedOrderedMapCommentedSetcomment_attribmerge_attrib_yaml_comment_yaml_format_yaml_line_col_yaml_merge	_yaml_tagc                       e Zd ZdZeZd Zd Zed        Z	ed        Z
e
j                  d        Z
ed        Zej                  d        Zy	)
Comment)comment_items_end_startc                 .    d | _         i | _        g | _        y N)r   r   r    selfs    k/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/ruamel_yaml/comments.py__init__zComment.__init__/   s     	    c                     t        | j                        rdt        | j                        z   }nd}dj                  | j                  | j
                  |      S )Nz,
  end= z$Comment(comment={0},
  items={1}{2}))boolr    strformatr   r   )r%   ends     r&   __str__zComment.__str__9   sF    		?DII.CC6==LL$++s
 	
r(   c                     | j                   S r#   r   r$   s    r&   itemszComment.itemsC        {{r(   c                     | j                   S r#   r    r$   s    r&   r.   zComment.endH   s     yyr(   c                     || _         y r#   r5   r%   values     r&   r.   zComment.endM   s     	r(   c                     | j                   S r#   r!   r$   s    r&   startzComment.startR   r3   r(   c                     || _         y r#   r:   r7   s     r&   r;   zComment.startW   s     r(   N)__name__
__module____qualname__	__slots__r   attribr'   r/   propertyr2   r.   setterr;    r(   r&   r   r   )   s     6IF
     	ZZ    \\ r(   r   c                       y r#   rD   rD   r(   r&   	NoCommentrF   ^   s    r(   c                   .    e Zd ZdZeZd Zd Zd ZddZ	y)Format_flow_stylec                     d | _         y r#   rI   r$   s    r&   r'   zFormat.__init__g   
    r(   c                     d| _         y NTrI   r$   s    r&   set_flow_stylezFormat.set_flow_stylek   rL   r(   c                     d| _         y NFrI   r$   s    r&   set_block_stylezFormat.set_block_styleo   s
     r(   Nc                 6    | j                   |S | j                   S )a  if default (the flow_style) is None, the flow style tacked on to
        the object explicitly will be taken. If that is None as well the
        default flow style rules the format down the line, or the type
        of the constituent values (simple -> flow, map/list -> block)rI   )r%   defaults     r&   
flow_stylezFormat.flow_styles   s!     #Nr(   r#   )
r=   r>   r?   r@   format_attribrA   r'   rO   rR   rU   rD   r(   r&   rH   rH   c   s      IF  ! r(   rH   c                   :    e Zd ZeZd Zd Zd Zd Zd Z	d Z
d Zy)	LineColc                 .    d | _         d | _        d | _        y r#   )linecoldatar$   s    r&   r'   zLineCol.__init__   s    		r(   c                 H    | j                   i | _         || j                   |<   y r#   r\   r%   keyr\   s      r&   add_kv_line_colzLineCol.add_kv_line_col        99DI		#r(   c                 (    | j                  |dd      S Nr   r   _kvr%   ks     r&   r`   zLineCol.key       xx1a  r(   c                 (    | j                  |dd      S )N      re   rg   s     r&   r8   zLineCol.value   ri   r(   c                 N    | j                   y | j                   |   }||   ||   fS r#   r^   )r%   rh   x0x1r\   s        r&   rf   zLineCol._kv   s/    99yy|Bxb!!r(   c                 d    | j                   y | j                   |   d   | j                   |   d   fS rd   r^   r%   idxs     r&   itemzLineCol.item   s4    99yy~a $))C."333r(   c                 H    | j                   i | _         || j                   |<   y r#   r^   r_   s      r&   add_idx_line_colzLineCol.add_idx_line_col   rb   r(   N)r=   r>   r?   line_col_attribrA   r'   ra   r`   r8   rf   rs   ru   rD   r(   r&   rX   rX   ~   s*    F!!"4r(   rX   c                   $    e Zd ZdZdZeZd Zd Zy)Tagz'store tag information for roundtrippingr8   c                     d | _         y r#   ry   r$   s    r&   r'   zTag.__init__   s	    
r(   c                 $    dj                  |       S )Nz#{0.__class__.__name__}({0.value!r}))r-   r$   s    r&   __repr__zTag.__repr__   s    4;;DAAr(   N)	r=   r>   r?   __doc__r@   
tag_attribrA   r'   r|   rD   r(   r&   rx   rx      s    1IFBr(   rx   c                       e Zd Zed        ZddZddZddZddZ	 ddZ	ed        Z
edfd	Zed
        Zd Zd Zd Zed        Zd ZddZed        Zd ZddZd Zd Zd Zy)CommentedBasec                     t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r#   )hasattrr   rA   setattrgetattrr$   s    r&   cazCommentedBase.ca   5     tW^^,D'..')4tW^^,,r(   c                     |y |s| j                   j                  g | j                   _        | j                   j                  j                  |       y r#   )r   r.   extend)r%   r   clears      r&   yaml_end_comment_extendz%CommentedBase.yaml_end_comment_extend   s;    ?DGGKK'DGGK7#r(   c                     | j                   j                  j                  |g d      }|s|d   #|d   t        |d   t              sJ |d   |d<   n|d   j                  |d          |d   |d<   y )NNNNNr   r   r   r   
setdefault
isinstancelistr   r%   r`   r   r   rs        r&   yaml_key_comment_extendz%CommentedBase.yaml_key_comment_extend   t    GGNN%%c+CDAaDLqz%!'!*d3331:AaDaDKK
#qz!r(   c                     | j                   j                  j                  |g d      }|s|d   #|d   t        |d   t              sJ |d   |d<   n|d   j                  |d          |d   |d<   y )Nr   rl   r   r   rk   r   r   s        r&   yaml_value_comment_extendz'CommentedBase.yaml_value_comment_extend   r   r(   c                     ddl m} ddlm} | j	                         }|d   dk(  r|dd } ||      }|j                  d      D ]!  }|j                   |d|z   dz   |d             # y)zoverwrites any preceding comment lines on an object
        expects comment to be without `#` and possible have multiple lines
        r   CommentMarkCommentToken
N# )errorr   tokensr   _yaml_get_pre_commentsplitappend)r%   r   indentr   r   pre_comments
start_markcoms           r&   yaml_set_start_commentz$CommentedBase.yaml_set_start_comment   ss    
 	'(1132;$crlG (
==& 	SCTCZ$->
D QR	Sr(   Nc                 &   ddl m} ddlm fd}||dz   }|rt	        |      dkD  r|d   d	k(  r|dd }|r|d   d	k(  r|dd } ||      }| j
                  j                  j                  |dg ddg      }	|d	k(  r|	d   j                   |d
|             n3|r1|j                  d	      D ]  }
|	d   j                   ||
|              |rD ||      }|	d   g |	d<   |j                  d	      D ]  }
|	d   j                   ||
|              yy)zc
        expects comment (before/after) to be without `#` and possible have multiple lines
        r   r   r   c                 ,     | rdnd| z   dz   |d       S )Nr   r*   r   rD   )smarkr   s     r&   comment_tokenzFCommentedBase.yaml_set_comment_before_after_key.<locals>.comment_token   s"      a 7$ >dKKr(   Nrk   r   r   r   r*   rl   )
srsly.ruamel_yaml.errorr   srsly.ruamel_yaml.tokensr   lenr   r2   r   r   r   )r%   r`   beforer   afterafter_indentr   r   r   cr   r   s              @r&   !yaml_set_comment_before_after_keyz/CommentedBase.yaml_set_comment_before_after_key   s.    	89	L
 !A:Ls6{QF2J$,>CR[FU2Y$&#2JE (
GGMM$$S4T4*@AT>aDKKb*56||D) <!M#z:;<$\2Jt|!{{4( <!M#z:;<	 r(   c                     t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S )z<format attribute

        set_flow_style()/set_block_style())r   rH   rA   r   r   r$   s    r&   fazCommentedBase.fa  s5     tV]]+D&--2tV]]++r(   c                     ddl m} ddlm} |	 | j	                  |      }|d   dk7  rd|z   }||d   dk(  rd|z   }d} ||      } |||d      dg}| j                  ||	       y# t
        $ r d}Y Sw xY w)
z
        there is a problem as eol comments should start with ' #'
        (but at the beginning of the line the space doesn't have to be before
        the #. The column index is for the # mark
        r   r   r   Nr   #r    r`   )r   r   r   r   _yaml_get_columnAttributeError_yaml_add_eol_comment)r%   r   r`   columnr   r   r   cts           r&   yaml_add_eol_commentz"CommentedBase.yaml_add_eol_comment  s     	)&>..s3 1:WnG>qzS - (
7J5t<""23"/ " s   A' 'A54A5c                     t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r#   )r   rX   rA   r   r   r$   s    r&   lczCommentedBase.lc3  r   r(   c                 H    || j                   _        || j                   _        y r#   )r   rZ   r[   )r%   rZ   r[   s      r&   _yaml_set_line_colz CommentedBase._yaml_set_line_col:  s    r(   c                 <    | j                   j                  ||       y r#   )r   ra   r_   s      r&   _yaml_set_kv_line_colz#CommentedBase._yaml_set_kv_line_col?  s    T*r(   c                 <    | j                   j                  ||       y r#   )r   ru   r_   s      r&   _yaml_set_idx_line_colz$CommentedBase._yaml_set_idx_line_colC  s      d+r(   c                     t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r#   )r   r   rA   r   r   r$   s    r&   anchorzCommentedBase.anchorG  s5     tV]]+D&--2tV]]++r(   c                 P    t        | t        j                        sy | j                  S r#   )r   r   rA   r   r$   s    r&   yaml_anchorzCommentedBase.yaml_anchorN  s    tV]]+{{r(   c                 H    || j                   _        || j                   _        y r#   )r   r8   always_dump)r%   r8   r   s      r&   yaml_set_anchorzCommentedBase.yaml_set_anchorT  s    !"-r(   c                     t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r#   )r   rx   rA   r   r   r$   s    r&   tagzCommentedBase.tagY  s5     tSZZ(D#**ce,tSZZ((r(   c                 &    || j                   _        y r#   )r   r8   r7   s     r&   yaml_set_tagzCommentedBase.yaml_set_tag`  s    r(   c                 V   t         j                  t        j                  t        j                  t        j                  t
        j                  t        fD ]T  }t        | |      s|,t        ||t        j                  t        | ||                   >t        ||t        | |             V y r#   )r   rA   rH   rX   r   rx   r   r   r   copydeepcopyr   )r%   tmemoas       r&   copy_attributeszCommentedBase.copy_attributesd  sx     ..&--**l, 	4AtQ#Aq$--a0F"GHAq'$"23	4r(   c                     t         r#   NotImplementedErrorr%   r   r`   s      r&   r   z#CommentedBase._yaml_add_eol_commentp      !!r(   c                     t         r#   r   r$   s    r&   r   z#CommentedBase._yaml_get_pre_commentt  r   r(   c                     t         r#   r   r%   r`   s     r&   r   zCommentedBase._yaml_get_columnx  r   r(   )F)r   )Nr   NNr#   )r=   r>   r?   rB   r   r   r   r   r   r   r   rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD   r(   r&   r   r      s    - -$		S  DH!<F , , 1:$ 02 - -
+, , ,.
 ) )	4"""r(   r   c                       e Zd Zej                  dfZd Zd Zd ZddZ	d Z
d Zd	 Zd
 ZefdZd Zd Zd Zd Zd Zd ZddZd Zy)r   _lstc                 6    t        j                  | g|i | y r#   )r   r'   r%   argskws      r&   r'   zCommentedSeq.__init__  s    d(T(R(r(   c                 .    t         j                  | |      S r#   )r   __getitem__rq   s     r&   __getsingleitem__zCommentedSeq.__getsingleitem__  s    c**r(   c                     |t        |       k  rGt        |t              r7t        |t              s't        | |   t              r t	        | |         |      }t
        j                  | ||       y r#   )r   r   r   r
   typer   __setitem__)r%   rr   r8   s      r&   __setsingleitem__zCommentedSeq.__setsingleitem__  sW     T?5,/"5,7tCy,7'T#Y.sE*r(   Nc                 N   t         j                  | |       | j                  j                  j	                  |d        t        | j                  j                        D ]G  }||k  r	| j                  j                  j	                  |      | j                  j                  |dz
  <   I y Nr   )r   __delitem__r   r2   popsorted)r%   rr   
list_indexs      r&   __delsingleitem__zCommentedSeq.__delsingleitem__  s|    s##t$ / 	JJC,0GGMM,=,=j,IDGGMM*q.)	Jr(   c                 ,    t         j                  |       S r#   )r   __len__r$   s    r&   r   zCommentedSeq.__len__  s    ||D!!r(   c                 
   t         j                  | ||       t        | j                  j                  d      D ]H  }||k  r y| j                  j                  j                  |      | j                  j                  |dz   <   J y)z5the comments after the insertion have to move forwardTreverser   N)r   insertr   r   r2   r   )r%   rr   valr   s       r&   r   zCommentedSeq.insert  sh     	D#s# = 	JJC,0GGMM,=,=j,IDGGMM*q.)	Jr(   c                 0    t         j                  | |       y r#   )r   r   )r%   r   s     r&   r   zCommentedSeq.extend  s    D#r(   c                 .    t         j                  | |      S r#   )r   __eq__r%   others     r&   r  zCommentedSeq.__eq__  s    {{4''r(   c                 \    |t         ur| j                  ||       y || j                  _        y r#   rF   r   r   r   r   s      r&   _yaml_add_commentzCommentedSeq._yaml_add_comment  %    i((g6%DGGOr(   c                 *    | j                  ||       y Nr   r  r   s      r&   r   z"CommentedSeq._yaml_add_eol_comment      wC0r(   c                 b    | j                   j                  |   d   j                  j                  S Nr   r   r2   r   r   r   s     r&   _yaml_get_columnXzCommentedSeq._yaml_get_columnX  &    ww}}S!!$//666r(   c                    d }d }|dz
  |dz   }}|| j                   j                  v r|}nP|| j                   j                  v r|}n5t        |       D ]'  \  }}||k\  r n|| j                   j                  vr&|}) || j                  |      }|S r   r   r2   	enumerater  r%   r`   r   sel_idxprepostrow_idx_k1s           r&   r   zCommentedSeq._yaml_get_column      !GS1WT$''--GTWW]]"G !*$ "c>$''--/!" ++G4Fr(   c                     g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r   r   r   r%   r   s     r&   r   z"CommentedSeq._yaml_get_pre_comment  G    77??"#\2DGGO  ".DGGOOAr(   c                     | j                         }||t        |       <   | D ]:  }|j                  t        j                  ||             | j                  ||       < |S N)r   )	__class__idr   r   r   r   r%   r   resrh   s       r&   __deepcopy__zCommentedSeq.__deepcopy__  s[    nnRX 	1AJJt}}Q-.  4 0	1 
r(   c                 .    t         j                  | |      S r#   )r   __add__r  s     r&   r'  zCommentedSeq.__add__  s    ||D%((r(   c                    |Qt        t        | t        t        |                   |      }t        j                  | |D cg c]  }|d   	 c}       nt        t        t        |t        j                  |             t        t        |                   |      }t        j                  | |D cg c]  }t        j                  | |d          c}       | j                  j                  }i | j                  _        t        |      D ]+  \  }}|d   }||v s||   | j                  j                  |<   - y c c}w c c}w )Nr   r   r   )r   zipranger   r   r'   map__iter__r   r   r2   r   r  )r%   r`   r   tmp_lstxitmrr   	old_indexs           r&   sortzCommentedSeq.sort  s    ;SuSY'78'JGMM$w 7!1 78CT]]4015T3CDgG MM$w O!!1!1$!!= OPggmm( 	4FC!IC%(^c"	4 !8
 !Ps    D6
. D;
c                 ,    t         j                  |       S r#   )r   r|   r$   s    r&   r|   zCommentedSeq.__repr__  s    }}T""r(   r#   rQ   )r=   r>   r?   r   rA   r@   r'   r   r   r   r   r   r   r  rF   r  r   r  r   r   r%  r'  r1  r|   rD   r(   r&   r   r   }  sl    (I)+
+J"J( .7 &17*)4"#r(   r   c                   2    e Zd ZdZefdZd Zd Zd Zd Z	y)r   zEThis primarily exists to be able to roundtrip keys that are sequencesc                 \    |t         ur| j                  ||       y || j                  _        y r#   r  r   s      r&   r  z!CommentedKeySeq._yaml_add_comment  r  r(   c                 *    | j                  ||       y r	  r
  r   s      r&   r   z%CommentedKeySeq._yaml_add_eol_comment  r  r(   c                 b    | j                   j                  |   d   j                  j                  S r  r  r   s     r&   r  z!CommentedKeySeq._yaml_get_columnX  r  r(   c                    d }d }|dz
  |dz   }}|| j                   j                  v r|}nP|| j                   j                  v r|}n5t        |       D ]'  \  }}||k\  r n|| j                   j                  vr&|}) || j                  |      }|S r   r  r  s           r&   r   z CommentedKeySeq._yaml_get_column  r  r(   c                     g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r   r  r  s     r&   r   z%CommentedKeySeq._yaml_get_pre_comment)  r  r(   N)
r=   r>   r?   r}   rF   r  r   r  r   r   rD   r(   r&   r   r     s!    O-6 &17*r(   r   c                       e Zd ZdZd Zd Zy)CommentedMapView_mappingc                     || _         y r#   r;  )r%   mappings     r&   r'   zCommentedMapView.__init__6  s	    r(   c                 0    t        | j                        }|S r#   )r   r<  )r%   counts     r&   r   zCommentedMapView.__len__:  s    DMM"r(   N)r=   r>   r?   r@   r'   r   rD   r(   r&   r:  r:  3  s    I r(   r:  c                   ,    e Zd ZdZed        Zd Zd Zy)CommentedMapKeysViewrD   c                     t        |      S r#   setr%   its     r&   _from_iterablez#CommentedMapKeysView._from_iterableC       2wr(   c                     || j                   v S r#   r;  r   s     r&   __contains__z!CommentedMapKeysView.__contains__H  s    dmm##r(   c              #   6   K   | j                   D ]  }|  y wr#   r;  r%   r.  s     r&   r,  zCommentedMapKeysView.__iter__L  s        	AG	   Nr=   r>   r?   r@   classmethodrH  rK  r,  rD   r(   r&   rB  rB  @  s#    I $r(   rB  c                   ,    e Zd ZdZed        Zd Zd Zy)CommentedMapItemsViewrD   c                     t        |      S r#   rD  rF  s     r&   rH  z$CommentedMapItemsView._from_iterableV  rI  r(   c                 T    |\  }}	 | j                   |   }||k(  S # t        $ r Y yw xY wrQ   )r<  KeyError)r%   rs   r`   r8   vs        r&   rK  z"CommentedMapItemsView.__contains__[  s>    
U	c"A :  		s    	''c              #   p   K   | j                   j                         D ]  }|| j                   |   f  y wr#   r<  _keysr   s     r&   r,  zCommentedMapItemsView.__iter__e  s6     ==&&( 	,Cc*++	,   46NrO  rD   r(   r&   rR  rR  S  s#    I ,r(   rR  c                       e Zd ZdZd Zd Zy)CommentedMapValuesViewrD   c                 N    | j                   D ]  }|| j                   |   k(  s y y)NTFr;  )r%   r8   r`   s      r&   rK  z#CommentedMapValuesView.__contains__n  s.    == 	Cc**	 r(   c              #   l   K   | j                   j                         D ]  }| j                   |     y wr#   rX  r   s     r&   r,  zCommentedMapValuesView.__iter__u  s1     ==&&( 	%C--$$	%s   24N)r=   r>   r?   r@   rK  r,  rD   r(   r&   r\  r\  k  s    I%r(   r\  c                   H   e Zd Zej                  ddfZd ZeefdZd Z	d Z
d Zd Zd	 Zd-dZd.d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 Zer
d Zd Zd Znd Zerd Z d Z!d Z"d  Z#nd! Z!d" Z$er
d# Z%d$ Z&d% Z'nd& Z%e(d'        Z)d( Z*d) Z+d* Z,d+ Z-d, Z.y
)/r   _ok_refc                 b    t               | _        g | _        t        j                  | g|i | y r#   )rE  r`  ra  r   r'   r   s      r&   r'   zCommentedMap.__init__~  s*    5	T/D/B/r(   c                     |t         ur| j                  ||       y|t         ur| j                  ||       y|| j                  _        yz>values is set to key to indicate a value attachment of commentNrF   r   r   r   r   r%   r   r`   r8   s       r&   r  zCommentedMap._yaml_add_comment  B     i((g6	!**5':%DGGOr(   c                 *    | j                  ||       yz6add on the value line, with value specified by the keyry   Nr
  r   s      r&   r   z"CommentedMap._yaml_add_eol_comment       	wc2r(   c                 b    | j                   j                  |   d   j                  j                  S )Nrk   r  r   s     r&   r  zCommentedMap._yaml_get_columnX  r  r(   c                 4   d }d }d\  }}}| D ]  }|	||k7  r|} n||k(  r|}|} || j                   j                  v r|}nD|| j                   j                  v r|}n)| D ]$  }||k\  r n|| j                   j                  vr#|}& || j                  |      }|S )NNNN)r   r2   r  )	r%   r`   r   r  r  r  lastr.  k1s	            r&   r   zCommentedMap._yaml_get_column  s    *T4 	A18CxD	 $''--GTWW]]"G  9TWW]]* ++G4Fr(   c                     g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r   r  r  s     r&   r   z"CommentedMap._yaml_get_pre_comment  r  r(   c                 *   	 t        j                  | |       	 | j                  j                  |j	                                y # t        $ r |D ]
  }||   | |<    Y Ew xY w# t
        $ r( |D ]   }| j                  j                  |d          " Y y w xY wr  )r   update	TypeErrorr`  keysr   add)r%   valsr.  s      r&   rr  zCommentedMap.update  s    	"tT*
	#HHOODIIK(  	" "q'Q"	"  	# #QqT"#	#s"   A )A! AA!.BBNc                     t        j                  | |||       | j                  j                  |       || j	                  ||       yy)zPinsert key value into given position
        attach comment if provided
        Nr   )r   r   r`  ru  r   )r%   posr`   r8   r   s        r&   r   zCommentedMap.insert  sF    
 	4c51S%%g3%7 r(   c                     t        |t              s| j                  ||      S fd	  |d|       S # t        $ r |cY S t        t
        f$ r s |cY S w xY w)z/multi-level get that expects dicts within dictsc                     st        |t              sJ |t        |       k\  r|t        |       kD  rt        || |dz
        S  | |dz   || |dz
              S r   )r   dictr   
IndexError)key_listleveldget_one_levellist_oks      r&   r  z)CommentedMap.mlget.<locals>.get_one_level  si    !!T***H%3x=($$%!),-- 519a8K6LMMr(   r   )r   r   getrU  rs  r|  )r%   r`   rT   r  r  s      `@r&   mlgetzCommentedMap.mlget  sf     #t$88C))	N	 a.. 	N:& 	N	s   	6 AAAc                     	 t        j                  | |      S # t        $ r+ t        | t        g       D ]  }||d   v s|d   |   c cY S   w xY wr   )r   r   rU  r   r   )r%   r`   mergeds      r&   r   zCommentedMap.__getitem__  s`    	**455 	!$b9 *&)#!!9S>)* 		s    $A
A	Ac                     || v rGt        |t              r7t        |t              s't        | |   t              r t        | |         |      }t	        j
                  | ||       | j                  j                  |       y r#   )r   r   r
   r   r   r   r`  ru  )r%   r`   r8   s      r&   r   zCommentedMap.__setitem__  sc     $;5,/"5,7tCy,7'T#Y.c51Sr(   c                 "    || j                   v ryy rN   )r`  r   s     r&   _unmerged_containszCommentedMap._unmerged_contains  s    $((?r(   c                 @    t        t        j                  | |            S r#   )r+   r   rK  r   s     r&   rK  zCommentedMap.__contains__  s    K,,T3788r(   c                 8    	 | j                  |      S #  |cY S xY wr#   )r   )r%   r`   rT   s      r&   r  zCommentedMap.get  s$    	##C((	Ns    c                 L    t        j                  |       j                  dd      S )Nr   r   )r   r|   replacer$   s    r&   r|   zCommentedMap.__repr__  s     ##D)11.-PPr(   c              #      K   t        j                  |       D ]+  }|| j                  v s|t        j                  | |      f - y wr#   )r   r,  r`  r   rM  s     r&   non_merged_itemszCommentedMap.non_merged_items  sC     %%d+ 	:ADHH}00q999	:s
   'AAc                     | j                   j                  |       t        j                  | |       | j                  D ]  }|j                  |        y r#   )r`  discardr   r   ra  update_key_value)r%   r`   referers      r&   r   zCommentedMap.__delitem__"  sG     	c*yy 	*G$$S)	*r(   c              #   H   K   t        j                  |       D ]  }|  y wr#   r   r,  rM  s     r&   r,  zCommentedMap.__iter__6  %     %%d+ 	AG	    "c              #   H   K   t        j                  |       D ]  }|  y wr#   r  rM  s     r&   rY  zCommentedMap._keys;  r  r  c                 >    t        t        j                  |             S r#   )intr   r   r$   s    r&   r   zCommentedMap.__len__@  s    ;&&t,--r(   c                 0    t        t        |       |k(        S r#   )r+   r{  r  s     r&   r  zCommentedMap.__eq__D  s    DJ%'((r(   c                 4    t        | j                               S r#   )r   rY  r$   s    r&   rt  zCommentedMap.keysJ  s    

%%r(   c                 "    | j                         S r#   )rY  r$   s    r&   iterkeyszCommentedMap.iterkeysN  s    ::<r(   c                     t        |       S r#   rB  r$   s    r&   viewkeyszCommentedMap.viewkeysR      '--r(   c                     t        |       S r#   r  r$   s    r&   rt  zCommentedMap.keysX  r  r(   c              #   p   K   t        j                  |       D ]  }t        j                  | |        y wr#   r   r,  r   rM  s     r&   _valueszCommentedMap._values^  s3      ))$/ 7!--dA667rZ  c                 4    t        | j                               S r#   )r   r  r$   s    r&   valueszCommentedMap.valuesc  s    ''r(   c                 "    | j                         S r#   )r  r$   s    r&   
itervalueszCommentedMap.itervaluesg  s    <<>!r(   c                     t        |       S r#   r\  r$   s    r&   
viewvalueszCommentedMap.viewvaluesk      )$//r(   c                     t        |       S r#   r  r$   s    r&   r  zCommentedMap.valuesq  r  r(   c              #   t   K   t        j                  |       D ]  }|t        j                  | |      f  y wr#   r  rM  s     r&   r   zCommentedMap._itemsu  s8     %%d+ 	6A[,,T1555	6s   68c                 4    t        | j                               S r#   )r   r   r$   s    r&   r2   zCommentedMap.items|  s    &&r(   c                 "    | j                         S r#   r1   r$   s    r&   	iteritemszCommentedMap.iteritems  s    ;;= r(   c                     t        |       S r#   rR  r$   s    r&   	viewitemszCommentedMap.viewitems      (..r(   c                     t        |       S r#   r  r$   s    r&   r2   zCommentedMap.items  r  r(   c                 d    t        | t              st        | t        g        t        | t              S r#   )r   r   r   r   r$   s    r&   mergezCommentedMap.merge  s'     t\*D,+t\**r(   c                      t        |              }| j                         D ]
  \  }}|||<    | j                  |       |S r#   )r   r   r   )r%   r.  rh   rV  s       r&   r   zCommentedMap.copy  sD    DJLKKM 	DAqAaD	Qr(   c                 X    || j                   vr| j                   j                  |       y y r#   )ra  r   )r%   cms     r&   add_referentzCommentedMap.add_referent  s%    TYYIIR  r(   c                    |D ]_  }|d   j                  |        |d   j                         D ]3  \  }}t        j                  | |      rt        j                  | ||       5 a | j
                  j                  |       y r   )r  r2   r   rK  r   r  r   )r%   r8   rV  rh   s       r&   add_yaml_mergezCommentedMap.add_yaml_merge  sy     	4AaDd#!

 41++D!4''a34	4 	

% r(   c                     || j                   v ry | j                  D ](  }||d   v st        j                  | ||d   |           y  t        j                  | |       y r   )r`  r  r   r   r   )r%   r`   rV  s      r&   r  zCommentedMap.update_key_value  s]    $((? 	Aad{''c1Q49=	 	c*r(   c                     | j                         }||t        |       <   | D ]  }t        j                  | |   |      ||<     | j	                  ||       |S r   )r!  r"  r   r   r   r#  s       r&   r%  zCommentedMap.__deepcopy__  sZ    nnRX 	2A]]47D1CF	2St,
r(   r#   rQ   )/r=   r>   r?   r   rA   r@   r'   rF   r  r   r  r   r   rr  r   r  r   r   r  rK  r  r|   r  r   r,  rY  r   r  r   rt  r  r  r  r  r  r  r   r2   r  r  rB   r  r   r  r  r  r%  rD   r(   r&   r   r   {  s   /I0 .7i 	&3
78#849Q:*(

.) 	&	 	.	. 	7
	(	"	0	06
 	'	!	/	/ + +!
!+r(   r   c                 J    t        dj                  | j                              )Nz{} objects are immutable)rs  r-   r=   )clsr   kwargss      r&   raise_immutabler    s     .55cllC
DDr(   c                       e Zd Zej                  dfZ	 d ZexZxZ	xZ
xZxZxZZd Zd Zd Zd Zd Zedd	       Zefd
Zd Zd Zd Zd Zy)CommentedKeyMap_odc                     t        | d      rt        |        	 t        |i || _        y # t        $ r+ t
        r#t        |d   j                               | _        Y y  w xY w)Nr  r   )r   r  r   r  rs  r   r2   r   s      r&   r'   zCommentedKeyMap.__init__  sU    4D!	"D/B/DH 	&tAw}}7		s   * 0AAc                      | j                   |   S r#   )r  )r%   indexs     r&   r   zCommentedKeyMap.__getitem__  s    xxr(   c              #   R   K   | j                   j                         D ]  }|  y wr#   )r  r,  rM  s     r&   r,  zCommentedKeyMap.__iter__  s'     ""$ 	AG	s   %'c                 ,    t        | j                        S r#   )r   r  r$   s    r&   r   zCommentedKeyMap.__len__  s    488}r(   c                 F    t        t        | j                                     S r#   )hashtupler2   r$   s    r&   __hash__zCommentedKeyMap.__hash__  s    E$**,'((r(   c                     t        | t              s| j                  j                         S dt	        t        | j                  j                                     z   dz   S )Nzordereddict())r   r   r  r|   reprr   r2   r$   s    r&   r|   zCommentedKeyMap.__repr__  sD    t\*88$$&&T$((..*:%; <<sBBr(   Nc                 @    t        t        j                  | |            S r#   )r  r{  fromkeys)rt  rV  s     r&   r  zCommentedKeyMap.fromkeys  s     t}}T1566r(   c                 \    |t         ur| j                  ||       y || j                  _        y r#   r  r   s      r&   r  z!CommentedKeyMap._yaml_add_comment  r  r(   c                 *    | j                  ||       y r	  r
  r   s      r&   r   z%CommentedKeyMap._yaml_add_eol_comment  r  r(   c                 b    | j                   j                  |   d   j                  j                  S r  r  r   s     r&   r  z!CommentedKeyMap._yaml_get_columnX  r  r(   c                    d }d }|dz
  |dz   }}|| j                   j                  v r|}nP|| j                   j                  v r|}n5t        |       D ]'  \  }}||k\  r n|| j                   j                  vr&|}) || j                  |      }|S r   r  r  s           r&   r   z CommentedKeyMap._yaml_get_column  r  r(   c                     g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r   r  r  s     r&   r   z%CommentedKeyMap._yaml_get_pre_comment  r  r(   r#   )r=   r>   r?   r   rA   r@   r'   r  r   r   r   r   popitemr   rr  r   r,  r   r  r|   rP  r  rF   r  r   r  r   r   rD   r(   r&   r  r    s    %IN
 7FFK FFFFF *V
)C 7 7 .7 &17*r(   r  c                   &    e Zd Zej                  fZy)r   N)r=   r>   r?   r   rA   r@   rD   r(   r&   r   r   &  s    !Ir(   r   c                   f    e Zd Zej                  dfZddZeefdZd Z	d Z
d Zd Zd	 Zd
 Zd Zy)r   odictNc                 \    t               | _        t        j                  |        || |z  } y y r#   )r   r  r   r'   )r%   r  s     r&   r'   zCommentedSet.__init__-  s-     ]
D!FND r(   c                     |t         ur| j                  ||       y|t         ur| j                  ||       y|| j                  _        yrd  re  rf  s       r&   r  zCommentedSet._yaml_add_comment4  rg  r(   c                 *    | j                  ||       yri  r
  r   s      r&   r   z"CommentedSet._yaml_add_eol_comment?  rj  r(   c                 "    d| j                   |<   y)zAdd an element.Nr  r7   s     r&   ru  zCommentedSet.addD  s     !

5r(   c                     | j                   |= y)z8Remove an element.  Do not raise an exception if absent.Nr  r7   s     r&   r  zCommentedSet.discardI  s     JJur(   c                     || j                   v S r#   r  rM  s     r&   rK  zCommentedSet.__contains__N  s    DJJr(   c              #   6   K   | j                   D ]  }|  y wr#   r  rM  s     r&   r,  zCommentedSet.__iter__R  s      	AG	rN  c                 ,    t        | j                        S r#   )r   r  r$   s    r&   r   zCommentedSet.__len__W  s    4::r(   c                 T    dj                  | j                  j                               S )Nz
set({0!r}))r-   r  rt  r$   s    r&   r|   zCommentedSet.__repr__[  s    ""4::??#455r(   r#   )r=   r>   r?   r   rA   r@   r'   rF   r  r   ru  r  rK  r,  r   r|   rD   r(   r&   r   r   *  sD    'I .7i 	&3
!


6r(   r   c                       e Zd ZddZd Zy)TaggedScalarNc                 H    || _         || _        || j                  |       y y r#   )r8   styler   )r%   r8   r  r   s       r&   r'   zTaggedScalar.__init__b  s(    

?c" r(   c                     | j                   S r#   ry   r$   s    r&   r/   zTaggedScalar.__str__i  s    zzr(   rm  )r=   r>   r?   r'   r/   rD   r(   r&   r  r  `  s    #r(   r  r*   .c                    t        | t              rt        | d      r~|r.t        j                  j                  dj                  |             |j                  dj                  | j                               | D ]  }t        | |   |r||z   |z   n|||         yt        | t              rt        | d      r|r.t        j                  j                  dj                  |             |j                  dj                  | j                               t        |       D ]0  \  }}t        ||r||z   t        |      z   n
t        |      ||       2 yyy)zg
    recursively dump comments, all but the toplevel preceded by the path
    in dotted form x.0.a
    r   z{}
)namesepoutN)r   r{  r   sysstdoutwriter-   r   dump_commentsr   r  r,   )r  r  r  r  rh   rr   s         r&   r  r  n  s    !Twq$/JJV]]401		&--%& 	XA!A$dSj1n1#SVW	X	At	D!1JJV]]401		&--%&l 	FC4c#h.SX3TW		 "2	r(   )9
__future__r   r   r  r   compatr   r   r   r	   scalarstringr
   r   r   collectionsr   r   r   r   collections.abctypingAnyDictOptionalListUnionIterator__all__r   rV   rv   r   r~   objectr   rF   rH   rX   rx   r   r   r   r  r   r:  rB  rR  r\  r   rP  r  r  r   r   r  r  r  rD   r(   r&   <module>r     so   7     ? ? & ;;??=
 !"
1f 1j	
 V  6(f (VB& BB"F B"JB#+T= B#J.e] .b
u 
+S &,,c ,0%- % B; BL
 E E
\mW \~", "36:} 36l=  #3:: r(   