
                         ^   S SK JrJr   S SKrS SKrS SKJrJrJrJ	r	  S SK
Jr  S SKJr  \(       a  S SKJrJrJrJr  OS SKJrJrJrJr   / SQrSrS	rS
rSrSr  " S S\!5      r"S r# " S S\!5      r$ " S S\!5      r% " S S\!5      r& " S S\!5      r' " S S\	\(\'5      r) " S S\*\'5      r+ " S S\5      r, " S S\,\5      r- " S  S!\,\5      r. " S" S#\,5      r/ " S$ S%\\'5      r0\1S& 5       r2 " S' S(\'\5      r3 " S) S*\05      r4 " S+ S,\\'5      r5 " S- S.\'5      r6S/S0\Rn                  4S1 jr8g)2    )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                       \ rS rSrSr\rS rS r\	S 5       r
\	S 5       r\R                  S 5       r\	S 5       r\R                  S	 5       rS
rg)Comment(   )comment_items_end_startc                 .    S U l         0 U l        / U l        g N)r   r   r    selfs    'lib/third_party/ruamel/yaml/comments.py__init__Comment.__init__.   s     	    c                     [        U R                  5      (       a  S[        U R                  5      -   nOSnSR                  U R                  U R
                  U5      $ )Nz,
  end= z$Comment(comment={0},
  items={1}{2}))boolr    strformatr   r   )r%   ends     r&   __str__Comment.__str__8   sD    		??DII.CC6==dllDKKY\]]r)   c                     U R                   $ r#   r   r$   s    r&   itemsComment.items@        {{r)   c                     U R                   $ r#   r    r$   s    r&   r/   Comment.endE   s     yyr)   c                     Xl         g r#   r8   r%   values     r&   r/   r9   J   s	     	r)   c                     U R                   $ r#   r!   r$   s    r&   startComment.startO   r6   r)   c                     Xl         g r#   r>   r;   s     r&   r?   r@   T   s	     r)   )r    r   r!   r   N)__name__
__module____qualname____firstlineno__	__slots__r   attribr'   r0   propertyr4   r/   setterr?   __static_attributes__ r)   r&   r   r   (   s     6IF^     	ZZ    \\ r)   r   c                      g r#   rK   rK   r)   r&   	NoCommentrM   [   s    r)   c                   8    \ rS rSrSr\rS rS rS r	SS jr
Srg)	Format`   _flow_stylec                     S U l         g r#   rQ   r$   s    r&   r'   Format.__init__d   
    r)   c                     SU l         g NTrQ   r$   s    r&   set_flow_styleFormat.set_flow_styleh   rU   r)   c                     SU l         g NFrQ   r$   s    r&   set_block_styleFormat.set_block_stylel   s
     r)   Nc                 8    U R                   c  U$ U R                   $ )zif 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)rQ   )r%   defaults     r&   
flow_styleFormat.flow_stylep   s!     #Nr)   r#   )rB   rC   rD   rE   rF   format_attribrG   r'   rX   r\   r`   rJ   rK   r)   r&   rO   rO   `   s      IF  ! r)   rO   c                   B    \ rS rSr\rS rS rS rS r	S r
S rS rS	rg
)LineCol{   c                 .    S U l         S U l        S U l        g r#   )linecoldatar$   s    r&   r'   LineCol.__init__~   s    		r)   c                 H    U R                   c  0 U l         X R                   U'   g r#   ri   r%   keyri   s      r&   add_kv_line_colLineCol.add_kv_line_col       99DI		#r)   c                 (    U R                  USS5      $ Nr      _kvr%   ks     r&   rn   LineCol.key       xx1a  r)   c                 (    U R                  USS5      $ )N      ru   rw   s     r&   r<   LineCol.value   rz   r)   c                 L    U R                   c  g U R                   U   nXB   XC   4$ r#   rl   )r%   rx   x0x1ri   s        r&   rv   LineCol._kv   s+    99yy|x!!r)   c                 f    U R                   c  g U R                   U   S   U R                   U   S   4$ rs   rl   r%   idxs     r&   itemLineCol.item   s4    99yy~a $))C."333r)   c                 H    U R                   c  0 U l         X R                   U'   g r#   rl   rm   s      r&   add_idx_line_colLineCol.add_idx_line_col   rq   r)   )rh   ri   rg   N)rB   rC   rD   rE   line_col_attribrG   r'   ro   rn   r<   rv   r   r   rJ   rK   r)   r&   rd   rd   {   s*    F!!"4r)   rd   c                   ,    \ rS rSrSrSr\rS rS r	Sr
g)Tag   z'store tag information for roundtrippingr<   c                     S U l         g r#   r   r$   s    r&   r'   Tag.__init__   s	    
r)   c                 $    SR                  U 5      $ )Nz#{0.__class__.__name__}({0.value!r}))r.   r$   s    r&   __repr__Tag.__repr__   s    4;;DAAr)   N)rB   rC   rD   rE   __doc__rF   
tag_attribrG   r'   r   rJ   rK   r)   r&   r   r      s    1IFBr)   r   c                       \ rS rSr\S 5       rSS jrSS jrSS jrSS jr	 SS jr
\S	 5       r\S4S
 jr\S 5       rS rS rS r\S 5       rS rSS jr\S 5       rS rSS jrS rS rS rSrg)CommentedBase   c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ r#   )hasattrr   rG   setattrgetattrr$   s    r&   caCommentedBase.ca   8     tW^^,,D'..')4tW^^,,r)   c                     Uc  g U(       d  U R                   R                  c  / U R                   l        U R                   R                  R                  U5        g r#   )r   r/   extend)r%   r   clears      r&   yaml_end_comment_extend%CommentedBase.yaml_end_comment_extend   s;    ?DGGKK'DGGK7#r)   c                     U R                   R                  R                  U/ SQ5      nU(       d  US   c)  US   b  [        US   [        5      (       d   eUS   US'   OUS   R                  US   5        US   US'   g )NNNNNrt   r   r   r   
setdefault
isinstancelistr   r%   rn   r   r   rs        r&   yaml_key_comment_extend%CommentedBase.yaml_key_comment_extend   w    GGNN%%c+CDAaDLqz%!'!*d33331:AaDaDKK
#qz!r)   c                     U R                   R                  R                  U/ SQ5      nU(       d  US   c)  US   b  [        US   [        5      (       d   eUS   US'   OUS   R                  US   5        US   US'   g )Nr   r}   rt   r   r|   r   r   s        r&   yaml_value_comment_extend'CommentedBase.yaml_value_comment_extend   r   r)   c                     SSK Jn  SSKJn  U R	                  5       nUS   S:X  a  USS nU" U5      nUR                  S5       H"  nUR                  U" SU-   S-   US5      5        M$     g)zwoverwrites any preceding comment lines on an object
expects comment to be without `#` and possible have multiple lines
rt   CommentMarkCommentToken
N# )errorr   tokensr   _yaml_get_pre_commentsplitappend)r%   r   indentr   r   pre_comments
start_markcoms           r&   yaml_set_start_comment$CommentedBase.yaml_set_start_comment   sl    
 	'(1132;$crlG (
==&CTCZ$->
D QR 'r)   Nc                 `  ^ SSK Jn  SSKJm  U4S jnUc  US-   nU(       a  [	        U5      S:  a  US   S	:X  a  USS nU(       a  US   S	:X  a  USS nU" U5      nU R
                  R                  R                  US/ SS/5      n	US	:X  a  U	S   R                  U" S
U5      5        O9U(       a2  UR                  S	5       H  n
U	S   R                  U" X5      5        M     U(       aF  U" U5      nU	S   c  / U	S'   UR                  S	5       H  n
U	S   R                  U" X5      5        M     gg)zS
expects comment (before/after) to be without `#` and possible have multiple lines
r   r   r   c                 6   > T" U (       a  SOSU -   S-   US 5      $ )Nr   r+   r   rK   )smarkr   s     r&   comment_tokenFCommentedBase.yaml_set_comment_before_after_key.<locals>.comment_token   s"      a 7$ >dKKr)   Nr|   rt   r   r   r+   r}   )
ruamel.yaml.errorr   ruamel.yaml.tokensr   lenr   r4   r   r   r   )r%   rn   beforer   afterafter_indentr   r   r   cr   r   s              @r&   !yaml_set_comment_before_after_key/CommentedBase.yaml_set_comment_before_after_key   s     	23	L
 !A:Ls6{QF2J$,>CR[FU2Y$&#2JE (
GGMM$$S4T4*@AT>aDKKb*56||D)!M#:; *$\2Jt|!{{4(!M#:; )	 r)   c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ )z4format attribute

set_flow_style()/set_block_style())r   rO   rG   r   r   r$   s    r&   faCommentedBase.fa  s8     tV]]++D&--2tV]]++r)   c                     SSK Jn  SSKJn  Uc   U R	                  U5      nUS   S:w  a  SU-   nUc  US   S:X  a  SU-   nSnU" U5      nU" XS5      S/nU R                  XrS	9  g! [
         a    Sn NRf = f)
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
rt   r   r   Nr   #r    rn   )r   r   r   r   _yaml_get_columnAttributeError_yaml_add_eol_comment)r%   r   rn   columnr   r   r   cts           r&   yaml_add_eol_comment"CommentedBase.yaml_add_eol_comment  s     	)&>..s3 1:WnG>qzS - (
75t<""2"/ " s   A& &A54A5c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ r#   )r   rd   rG   r   r   r$   s    r&   lcCommentedBase.lc0  r   r)   c                 D    XR                   l        X R                   l        g r#   )r   rg   rh   )r%   rg   rh   s      r&   _yaml_set_line_col CommentedBase._yaml_set_line_col7  s    r)   c                 :    U R                   R                  X5        g r#   )r   ro   rm   s      r&   _yaml_set_kv_line_col#CommentedBase._yaml_set_kv_line_col<  s    *r)   c                 :    U R                   R                  X5        g r#   )r   r   rm   s      r&   _yaml_set_idx_line_col$CommentedBase._yaml_set_idx_line_col@  s      +r)   c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ r#   )r   r
   rG   r   r   r$   s    r&   anchorCommentedBase.anchorD  s8     tV]]++D&--2tV]]++r)   c                 Z    [        U [        R                  5      (       d  g U R                  $ r#   )r   r
   rG   r   r$   s    r&   yaml_anchorCommentedBase.yaml_anchorK  s     tV]]++{{r)   c                 D    XR                   l        X R                   l        g r#   )r   r<   always_dump)r%   r<   r   s      r&   yaml_set_anchorCommentedBase.yaml_set_anchorQ  s    !"-r)   c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ r#   )r   r   rG   r   r   r$   s    r&   tagCommentedBase.tagV  s8     tSZZ((D#**ce,tSZZ((r)   c                 $    XR                   l        g r#   )r   r<   r;   s     r&   yaml_set_tagCommentedBase.yaml_set_tag]  s    r)   c                 h   [         R                  [        R                  [        R                  [        R                  [
        R                  [        4 H\  n[        X5      (       d  M  U(       a+  [        X[        R                  " [        X5      5      5        MG  [        X[        X5      5        M^     g r#   )r   rG   rO   rd   r
   r   r   r   r   copydeepcopyr   )r%   tdeepas       r&   copy_attributesCommentedBase.copy_attributesa  sg     ..&--**l,AtA$--0@"ABA'$"23,r)   c                     [         er#   NotImplementedErrorr%   r   rn   s      r&   r   #CommentedBase._yaml_add_eol_commentm      !!r)   c                     [         er#   r	  r$   s    r&   r   #CommentedBase._yaml_get_pre_commentq  r  r)   c                     [         er#   r	  r%   rn   s     r&   r   CommentedBase._yaml_get_columnu  r  r)   rK   )F)r   )Nr   NN)rB   rC   rD   rE   rH   r   r   r   r   r   r   r   rM   r   r   r   r   r   r   r   r   r   r   r  r   r   r   rJ   rK   r)   r&   r   r      s    - -$		S  DH!<F , , 1:$ 02 - -
+, , ,.
 ) )	4"""r)   r   c                       \ rS rSr\R
                  S4rS rS rS r	SS jr
S rS	 rS
 rS r\4S jrS rS rS rS rS rS rSS jrS rSrg)r   iz  _lstc                 8    [         R                  " U /UQ70 UD6  g r#   )r   r'   r%   argskws      r&   r'   CommentedSeq.__init__}  s    d(T(R(r)   c                 ,    [         R                  X5      $ r#   )r   __getitem__r   s     r&   __getsingleitem__CommentedSeq.__getsingleitem__  s    **r)   c                     U[        U 5      :  aT  [        U[        5      (       a?  [        U[        5      (       d*  [        X   [        5      (       a  [	        X   5      " U5      n[
        R                  XU5        g r#   )r   r   r   r	   typer   __setitem__)r%   r   r<   s      r&   __setsingleitem__CommentedSeq.__setsingleitem__  sX     T?5,//"5,77ty,77TY.E*r)   Nc                 R   [         R                  X5        U R                  R                  R	                  US 5        [        U R                  R                  5       HI  nX!:  a  M
  U R                  R                  R	                  U5      U R                  R                  US-
  '   MK     g Nrt   )r   __delitem__r   r4   popsorted)r%   r   
list_indexs      r&   __delsingleitem__CommentedSeq.__delsingleitem__  sq    ##t$ /J,0GGMM,=,=j,IDGGMM*q.) 0r)   c                 ,    [         R                  U 5      $ r#   )r   __len__r$   s    r&   r,  CommentedSeq.__len__  s    ||D!!r)   c                    [         R                  XU5        [        U R                  R                  SS9 HI  nX1:  a    gU R                  R                  R                  U5      U R                  R                  US-   '   MK     g)z5the comments after the insertion have to move forwardTreversert   N)r   insertr'  r   r4   r&  )r%   r   valr(  s       r&   r1  CommentedSeq.insert  s]     	Ds# =J,0GGMM,=,=j,IDGGMM*q.) >r)   c                 .    [         R                  X5        g r#   )r   r   )r%   r2  s     r&   r   CommentedSeq.extend  s    Dr)   c                 ,    [         R                  X5      $ r#   )r   __eq__r%   others     r&   r7  CommentedSeq.__eq__  s    {{4''r)   c                 Z    U[         La  U R                  X!5        g XR                  l        g r#   rM   r   r   r   r  s      r&   _yaml_add_commentCommentedSeq._yaml_add_comment  !    i((6%GGOr)   c                 "    U R                  XS9  g Nr   r=  r  s      r&   r   "CommentedSeq._yaml_add_eol_comment      w0r)   c                 b    U R                   R                  U   S   R                  R                  $ Nr   r   r4   r   r   r  s     r&   _yaml_get_columnXCommentedSeq._yaml_get_columnX  &    ww}}S!!$//666r)   c                 (   S nS nUS-
  US-   pTX@R                   R                  ;   a  UnOTXPR                   R                  ;   a  UnO8[        U 5       H)  u  pgXa:  a    O!X`R                   R                  ;  a  M'  UnM+     Ub  U R                  U5      nU$ r$  r   r4   	enumeraterH  r%   rn   r   sel_idxprepostrow_idx_k1s           r&   r   CommentedSeq._yaml_get_column      !GS1WT''--GWW]]"G !*$>''--/! !0 ++G4Fr)   c                     / nU R                   R                  c  S U/U R                   l        U$ XR                   R                  S'   U$ r$  r   r   r%   r   s     r&   r   "CommentedSeq._yaml_get_pre_comment  E    77??"#\2DGGO  ".GGOOAr)   c                     U R                  5       nX![        U 5      '   U  H8  nUR                  [        R                  " U5      5        U R                  USS9  M:     U$ NT)r  )	__class__idr   r  r  r  r%   memoresrx   s       r&   __deepcopy__CommentedSeq.__deepcopy__  sR    nnRXAJJt}}Q'(  4 0  
r)   c                 ,    [         R                  X5      $ r#   )r   __add__r8  s     r&   re  CommentedSeq.__add__  s    ||D((r)   c                 ~   UcO  [        [        U [        [        U 5      5      5      US9n[        R                  X Vs/ s H  oDS   PM	     sn5        O[        [        [        U[        R                  U 5      5      [        [        U 5      5      5      US9n[        R                  X Vs/ s H  n[        R                  XS   5      PM     sn5        U R                  R                  n0 U R                  l        [        U5       H,  u  pdUS   nXu;   d  M  XW   U R                  R                  U'   M.     g s  snf s  snf )Nr/  r   rt   )r'  zipranger   r   r'   map__iter__r  r   r4   r   rM  )r%   rn   r0  tmp_lstxitmr   	old_indexs           r&   sortCommentedSeq.sort  s    ;SuSY'78'JGMM$w 7w!1w 78CT]]4015T3CDgG MM$w Ow!!1!1$!!=w OPggmm(FC!I%(^c" ) !8
 !Ps   D5
)"D:
c                 ,    [         R                  U 5      $ r#   )r   r   r$   s    r&   r   CommentedSeq.__repr__  s    }}T""r)   rK   r#   r[   )rB   rC   rD   rE   r   rG   rF   r'   r  r!  r)  r,  r1  r   r7  rM   r=  r   rH  r   r   rb  re  rp  r   rJ   rK   r)   r&   r   r   z  sl    (I)+
+J"J( .7 &17*)4"#r)   r   c                   <    \ rS rSrSr\4S jrS rS rS r	S r
Srg	)
r   i  zEThis primarily exists to be able to roundtrip keys that are sequencesc                 Z    U[         La  U R                  X!5        g XR                  l        g r#   r<  r  s      r&   r=  !CommentedKeySeq._yaml_add_comment  r?  r)   c                 "    U R                  XS9  g rA  rB  r  s      r&   r   %CommentedKeySeq._yaml_add_eol_comment	  rD  r)   c                 b    U R                   R                  U   S   R                  R                  $ rF  rG  r  s     r&   rH  !CommentedKeySeq._yaml_get_columnX  rJ  r)   c                 (   S nS nUS-
  US-   pTX@R                   R                  ;   a  UnOTXPR                   R                  ;   a  UnO8[        U 5       H)  u  pgXa:  a    O!X`R                   R                  ;  a  M'  UnM+     Ub  U R                  U5      nU$ r$  rL  rN  s           r&   r    CommentedKeySeq._yaml_get_column  rU  r)   c                     / nU R                   R                  c  S U/U R                   l        U$ XR                   R                  S'   U$ r$  rW  rX  s     r&   r   %CommentedKeySeq._yaml_get_pre_comment&  rZ  r)   rK   N)rB   rC   rD   rE   r   rM   r=  r   rH  r   r   rJ   rK   r)   r&   r   r     s!    O-6 &17*r)   r   c                   $    \ rS rSrSrS rS rSrg)CommentedMapViewi0  _mappingc                     Xl         g r#   r  )r%   mappings     r&   r'   CommentedMapView.__init__3  s    r)   c                 0    [        U R                  5      nU$ r#   )r   r  )r%   counts     r&   r,  CommentedMapView.__len__7  s    DMM"r)   N)rB   rC   rD   rE   rF   r'   r,  rJ   rK   r)   r&   r  r  0  s    I r)   r  c                   4    \ rS rSrSr\S 5       rS rS rSr	g)CommentedMapKeysViewi=  rK   c                     [        U5      $ r#   setr%   its     r&   _from_iterable#CommentedMapKeysView._from_iterable@       2wr)   c                     XR                   ;   $ r#   r  r  s     r&   __contains__!CommentedMapKeysView.__contains__E  s    mm##r)   c              #   :   #    U R                    H  nUv   M	     g 7fr#   r  r%   rm  s     r&   rk  CommentedMapKeysView.__iter__I  s      AG    N
rB   rC   rD   rE   rF   classmethodr  r  rk  rJ   rK   r)   r&   r  r  =  s#    I $r)   r  c                   4    \ rS rSrSr\S 5       rS rS rSr	g)CommentedMapItemsViewiP  rK   c                     [        U5      $ r#   r  r  s     r&   r  $CommentedMapItemsView._from_iterableS  r  r)   c                 R    Uu  p# U R                   U   nXC:H  $ ! [         a     gf = fr[   )r  KeyError)r%   r   rn   r<   vs        r&   r  "CommentedMapItemsView.__contains__X  s:    
	c"A :  		s    
&&c              #   r   #    U R                   R                  5        H  nXR                   U   4v   M     g 7fr#   r  _keysr  s     r&   rk  CommentedMapItemsView.__iter__b  s.     ==&&(Cc*++ )s   57Nr  rK   r)   r&   r  r  P  s#    I ,r)   r  c                   $    \ rS rSrSrS rS rSrg)CommentedMapValuesViewih  rK   c                 R    U R                    H  nXR                   U   :X  d  M    g   g)NTFr  )r%   r<   rn   s      r&   r  #CommentedMapValuesView.__contains__k  s'    ==Cc** ! r)   c              #   p   #    U R                   R                  5        H  nU R                   U   v   M     g 7fr#   r  r  s     r&   rk  CommentedMapValuesView.__iter__r  s+     ==&&(C--$$ )s   46N)rB   rC   rD   rE   rF   r  rk  rJ   rK   r)   r&   r  r  h  s    I%r)   r  c                   v   \ rS rSr\R
                  SS4rS r\\4S jr	S r
S rS rS	 rS
 rS/S jrS0S jrS rS rS rS rS/S jrS rS rS rS rS rS rS r\(       a
  S rS rS r OS r\(       a  S r!S r"S  r#S! r$OS" r"S# r%\(       a
  S$ r&S% r'S& r(OS' r&\)S( 5       r*S) r+S* r,S+ r-S, r.S- r/S.r0g)1r   ix  _ok_refc                 d    [        5       U l        / U l        [        R                  " U /UQ70 UD6  g r#   )r  r  r  r   r'   r  s      r&   r'   CommentedMap.__init__{  s*    5	T/D/B/r)   c                     U[         La  U R                  X!5        gU[         La  U R                  X15        gXR                  l        gz>values is set to key to indicate a value attachment of commentNrM   r   r   r   r   r%   r   rn   r<   s       r&   r=  CommentedMap._yaml_add_comment  <     i((6	!**5:%GGOr)   c                 "    U R                  XS9  gz6add on the value line, with value specified by the keyr   NrB  r  s      r&   r   "CommentedMap._yaml_add_eol_comment       	w2r)   c                 b    U R                   R                  U   S   R                  R                  $ )Nr|   rG  r  s     r&   rH  CommentedMap._yaml_get_columnX  rJ  r)   c                 F   S nS nSu  pEnU  H  nUb	  Xq:w  a  Un  OXq:X  a  UnUnM     X@R                   R                  ;   a  UnOIXPR                   R                  ;   a  UnO-U  H'  nX:  a    O!XR                   R                  ;  a  M%  UnM)     Ub  U R                  U5      nU$ )N)NNN)r   r4   rH  )	r%   rn   r   rO  rP  rQ  lastrm  k1s	            r&   r   CommentedMap._yaml_get_column  s    *4A18xD  ''--GWW]]"G 9WW]]*  ++G4Fr)   c                     / nU R                   R                  c  S U/U R                   l        U$ XR                   R                  S'   U$ r$  rW  rX  s     r&   r   "CommentedMap._yaml_get_pre_comment  rZ  r)   c                 2    [         R                  " X5         U R                  R                  UR	                  5       5        g ! [         a    U H	  nX   X'   M      NFf = f! [
         a*    U H!  nU R                  R                  US   5        M#      g f = frF  )r   update	TypeErrorr  keysr   add)r%   valsrm  s      r&   r  CommentedMap.update  s    	"t*
	#HHOODIIK(  	"' 	"  	#QqT" 	#s"   A )A" AA"1BBNc                     [         R                  " XX#5        U R                  R                  U5        Ub  U R	                  XBS9  gg)z@insert key value into given position
attach comment if provided
Nr   )r   r1  r  r  r   )r%   posrn   r<   r   s        r&   r1  CommentedMap.insert  s@    
 	4c1S%%g%7 r)   c                    ^^ [        U[        5      (       d  U R                  X5      $ UU4S jm T" USU 5      $ ! [         a    Us $ [        [
        4 a    T(       d  e Us $ f = f)z/multi-level get that expects dicts within dictsc                    > T(       d  [        U[        5      (       d   eU[        U 5      :  a  U[        U 5      :  a  [        eX US-
        $ T" XS-   X US-
        5      $ r$  )r   dictr   
IndexError)key_listleveldget_one_levellist_oks      r&   r  )CommentedMap.mlget.<locals>.get_one_level  sf    !!T****H%3x=($$%!),-- 19a8K6LMMr)   rt   )r   r   getr  r  r  )r%   rn   r_   r  r  s      `@r&   mlgetCommentedMap.mlget  sg     #t$$88C))	N	 a.. 	N:& 	N	s   	; A%	A%$A%c                      [         R                  " X5      $ ! [         a.    [        U [        / 5       H  nXS   ;   d  M  US   U   s  s $    e f = fr$  )r   r  r  r   r   )r%   rn   mergeds      r&   r  CommentedMap.__getitem__  sW    	**455 	!$b9)#!!9S>) : 		s    $A 
AAc                    X;   aT  [        U[        5      (       a?  [        U[        5      (       d*  [        X   [        5      (       a  [        X   5      " U5      n[        R
                  " XU5        U R                  R                  U5        g r#   )r   r   r	   r  r   r   r  r  )r%   rn   r<   s      r&   r   CommentedMap.__setitem__  sb     ;5,//"5,77ty,77TY.51Sr)   c                 $    XR                   ;   a  gg rW   )r  r  s     r&   _unmerged_containsCommentedMap._unmerged_contains  s    ((?r)   c                 @    [        [        R                  " X5      5      $ r#   )r,   r   r  r  s     r&   r  CommentedMap.__contains__
  s    K,,T788r)   c                 8     U R                  U5      $ !   Us $ = fr#   )r  )r%   rn   r_   s      r&   r  CommentedMap.get  s$    	##C((	Ns    c                 N    [         R                  " U 5      R                  SS5      $ )Nr   r   )r   r   replacer$   s    r&   r   CommentedMap.__repr__  s     ##D)11.-PPr)   c              #      #    [         R                  " U 5       H.  nXR                  ;   d  M  U[         R                  " X5      4v   M0     g 7fr#   )r   rk  r  r  r  s     r&   non_merged_itemsCommentedMap.non_merged_items  s9     %%d+AHH}00999 ,s
   'AAc                     U R                   R                  U5        [        R                  " X5        U R                   H  nUR                  U5        M     g r#   )r  discardr   r%  r  update_key_value)r%   rn   referers      r&   r%  CommentedMap.__delitem__  s@     	*yyG$$S) !r)   c              #   N   #    [         R                  " U 5       H  nUv   M	     g 7fr#   r   rk  r  s     r&   rk  CommentedMap.__iter__3       %%d+AG ,   #%c              #   N   #    [         R                  " U 5       H  nUv   M	     g 7fr#   r  r  s     r&   r  CommentedMap._keys8  r  r  c                 .    [         R                  " U 5      $ r#   )r   r,  r$   s    r&   r,  CommentedMap.__len__=  s    ""4((r)   c                 0    [        [        U 5      U:H  5      $ r#   )r,   r  r8  s     r&   r7  CommentedMap.__eq__A  s    DJ%'((r)   c                 4    [        U R                  5       5      $ r#   )r   r  r$   s    r&   r  CommentedMap.keysG  s    

%%r)   c                 "    U R                  5       $ r#   )r  r$   s    r&   iterkeysCommentedMap.iterkeysK  s    ::<r)   c                     [        U 5      $ r#   r  r$   s    r&   viewkeysCommentedMap.viewkeysO      '--r)   c                     [        U 5      $ r#   r  r$   s    r&   r  r  U  r  r)   c              #   v   #    [         R                  " U 5       H  n[         R                  " X5      v   M     g 7fr#   r   rk  r  r  s     r&   _valuesCommentedMap._values[  s+      ))$/!--d66 0s   79c                 4    [        U R                  5       5      $ r#   )r   r  r$   s    r&   valuesCommentedMap.values`  s    ''r)   c                 "    U R                  5       $ r#   )r  r$   s    r&   
itervaluesCommentedMap.itervaluesd  s    <<>!r)   c                     [        U 5      $ r#   r  r$   s    r&   
viewvaluesCommentedMap.viewvaluesh      )$//r)   c                     [        U 5      $ r#   r  r$   s    r&   r  r  n  r  r)   c              #   z   #    [         R                  " U 5       H  nU[         R                  " X5      4v   M     g 7fr#   r
  r  s     r&   r   CommentedMap._itemsr  s0     %%d+A[,,T555 ,s   9;c                 4    [        U R                  5       5      $ r#   )r   r   r$   s    r&   r4   CommentedMap.itemsy  s    &&r)   c                 "    U R                  5       $ r#   r3   r$   s    r&   	iteritemsCommentedMap.iteritems}  s    ;;= r)   c                     [        U 5      $ r#   r  r$   s    r&   	viewitemsCommentedMap.viewitems      (..r)   c                     [        U 5      $ r#   r!  r$   s    r&   r4   r    r$  r)   c                 n    [        U [        5      (       d  [        U [        / 5        [        U [        5      $ r#   )r   r   r   r   r$   s    r&   mergeCommentedMap.merge  s*     t\**D,+t\**r)   c                     [        U 5      " 5       nU R                  5        H	  u  p#X1U'   M     U R                  U5        U$ r#   )r  r   r  )r%   rm  rx   r  s       r&   r  CommentedMap.copy  s9    JLKKMDAaD "Qr)   c                 Z    XR                   ;  a  U R                   R                  U5        g g r#   )r  r   )r%   cms     r&   add_referentCommentedMap.add_referent  s#    YYIIR  r)   c                    U Hg  nUS   R                  U 5        US   R                  5        H9  u  p2[        R                  " X5      (       a  M"  [        R                  " XU5        M;     Mi     U R
                  R                  U5        g r$  )r-  r4   r   r  r   r'  r   )r%   r<   r  rx   s       r&   add_yaml_mergeCommentedMap.add_yaml_merge  sl    AaDd#!

++D44''3 %  	

% r)   c                     XR                   ;   a  g U R                   H*  nXS   ;   d  M  [        R                  " XUS   U   5          g    [        R                  " X5        g r$  )r  r'  r   r   r%  )r%   rn   r  s      r&   r  CommentedMap.update_key_value  sP    ((?Ad{''1Q49=  	*r)   c                     U R                  5       nX![        U 5      '   U  H  n[        R                  " X   5      X#'   M     U R	                  USS9  U$ r\  )r]  r^  r  r  r  r_  s       r&   rb  CommentedMap.__deepcopy__  sM    nnRXA]]47+CF St,
r)   )r  r  r#   r[   )1rB   rC   rD   rE   r   rG   rF   r'   rM   r=  r   rH  r   r   r  r1  r  r  r   r  r  r  r   r  r%  rk  r  r,  r7  r   r  r  r  r  r  r  r  r   r4   r  r"  rH   r'  r  r-  r0  r  rb  rJ   rK   r)   r&   r   r   x  s   /I0 .7i 	&3
78#849Q:*(

)) 	&	 	.	. 	7
	(	"	0	06
 	'	!	/	/ + +!
!+r)   r   c                 J    [        SR                  U R                  5      5      e)Nz{} objects are immutable)r  r.   rB   )clsr  kwargss      r&   raise_immutabler9    s     .55cllC
DDr)   c                       \ rS rSr\R
                  S4r S r\=r	=r
=r=r=r=rrS rS rS rS rS r\SS
 j5       r\4S jrS rS rS rS rSrg	)CommentedKeyMapi  _odc                     [        U S5      (       a  [        U 5         [        U0 UD6U l        g ! [         a0    [
        (       a#  [        US   R                  5       5      U l         g e f = f)Nr<  r   )r   r9  r   r<  r  r   r4   r  s      r&   r'   CommentedKeyMap.__init__  sZ    4D!	"D/B/DH 	s&tAw}}7		s   / 6A)'A)c                      U R                   U   $ r#   r<  )r%   indexs     r&   r  CommentedKeyMap.__getitem__  s    xxr)   c              #   V   #    U R                   R                  5        H  nUv   M	     g 7fr#   )r<  rk  r  s     r&   rk  CommentedKeyMap.__iter__  s!     ""$AG %s   ')c                 ,    [        U R                  5      $ r#   )r   r<  r$   s    r&   r,  CommentedKeyMap.__len__  s    488}r)   c                 F    [        [        U R                  5       5      5      $ r#   )hashtupler4   r$   s    r&   __hash__CommentedKeyMap.__hash__  s    E$**,'((r)   c                     [        U [        5      (       d  U R                  R                  5       $ S[	        [        U R                  R                  5       5      5      -   S-   $ )Nzordereddict())r   r   r<  r   reprr   r4   r$   s    r&   r   CommentedKeyMap.__repr__  sG    t\**88$$&&T$((..*:%; <<sBBr)   Nc                 >    [        [        R                  X5      5      $ r#   )r;  r  fromkeys)r  r  s     r&   rQ  CommentedKeyMap.fromkeys  s     t}}T566r)   c                 Z    U[         La  U R                  X!5        g XR                  l        g r#   r<  r  s      r&   r=  !CommentedKeyMap._yaml_add_comment  r?  r)   c                 "    U R                  XS9  g rA  rB  r  s      r&   r   %CommentedKeyMap._yaml_add_eol_comment  rD  r)   c                 b    U R                   R                  U   S   R                  R                  $ rF  rG  r  s     r&   rH  !CommentedKeyMap._yaml_get_columnX  rJ  r)   c                 (   S nS nUS-
  US-   pTX@R                   R                  ;   a  UnOTXPR                   R                  ;   a  UnO8[        U 5       H)  u  pgXa:  a    O!X`R                   R                  ;  a  M'  UnM+     Ub  U R                  U5      nU$ r$  rL  rN  s           r&   r    CommentedKeyMap._yaml_get_column  rU  r)   c                     / nU R                   R                  c  S U/U R                   l        U$ XR                   R                  S'   U$ r$  rW  rX  s     r&   r   %CommentedKeyMap._yaml_get_pre_comment  rZ  r)   r@  r#   )rB   rC   rD   rE   r   rG   rF   r'   r9  r%  r   r   r&  popitemr   r  r  rk  r,  rJ  r   r  rQ  rM   r=  r   rH  r   r   rJ   rK   r)   r&   r;  r;    s    %IN
 O^]K]+]]]g]
V
)C 7 7 .7 &17*r)   r;  c                   .    \ rS rSr\R
                  4rSrg)r   i!  rK   N)rB   rC   rD   rE   r   rG   rF   rJ   rK   r)   r&   r   r   !  s    !Ir)   r   c                   r    \ rS rSr\R
                  S4rSS jr\\4S jr	S r
S rS rS	 rS
 rS rS rSrg)r   i%  odictNc                 ^    [        5       U l        [        R                  " U 5        Ub  X-  n g g r#   )r   r`  r   r'   )r%   r  s     r&   r'   CommentedSet.__init__(  s+     ]
D!ND r)   c                     U[         La  U R                  X!5        gU[         La  U R                  X15        gXR                  l        gr  r  r  s       r&   r=  CommentedSet._yaml_add_comment/  r  r)   c                 "    U R                  XS9  gr  rB  r  s      r&   r   "CommentedSet._yaml_add_eol_comment:  r  r)   c                 "    SU R                   U'   g)zAdd an element.Nr`  r;   s     r&   r  CommentedSet.add?  s     !

5r)   c                     U R                   U	 g)z8Remove an element.  Do not raise an exception if absent.Nrh  r;   s     r&   r  CommentedSet.discardD  s     JJur)   c                     XR                   ;   $ r#   rh  r  s     r&   r  CommentedSet.__contains__I  s    JJr)   c              #   :   #    U R                    H  nUv   M	     g 7fr#   rh  r  s     r&   rk  CommentedSet.__iter__M  s     AG r  c                 ,    [        U R                  5      $ r#   )r   r`  r$   s    r&   r,  CommentedSet.__len__R  s    4::r)   c                 T    SR                  U R                  R                  5       5      $ )Nz
set({0!r}))r.   r`  r  r$   s    r&   r   CommentedSet.__repr__V  s    ""4::??#455r)   rh  r#   )rB   rC   rD   rE   r   rG   rF   r'   rM   r=  r   r  r  r  rk  r,  r   rJ   rK   r)   r&   r   r   %  sD    'I .7i 	&3
!


6r)   r   c                        \ rS rSrS rS rSrg)TaggedScalari[  c                      S U l         S U l        g r#   )r<   styler$   s    r&   r'   TaggedScalar.__init__]  s    

r)   c                     U R                   $ r#   r   r$   s    r&   r0   TaggedScalar.__str__b  s    zzr)   )rw  r<   N)rB   rC   rD   rE   r'   r0   rJ   rK   r)   r&   ru  ru  [  s    
r)   ru  r+   .c                    [        U [        5      (       a  [        U S5      (       a  U(       a.  [        R                  R                  SR                  U5      5        UR                  SR                  U R                  5      5        U  H  n[        X   U(       a  X-   U-   OUX#S9  M      g[        U [        5      (       a  [        U S5      (       a  U(       a.  [        R                  R                  SR                  U5      5        UR                  SR                  U R                  5      5        [        U 5       H/  u  pT[        XA(       a  X-   [        U5      -   O
[        U5      X#S9  M1     ggg)z[
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   rM  r-   )r  r}  r~  r  rx   r   s         r&   r  r  g  s     !Twq$//JJV]]401		&--%&A!$dj1n1#W 	At		D!1!1JJV]]401		&--%&lFC4c#h.SX3 #	 "2	r)   )9
__future__r   r   r  r  ruamel.yaml.compatr   r   r   r   ruamel.yaml.scalarstringr	   ruamel.yaml.anchorr
   collectionsr   r   r   r   collections.abctypingAnyDictOptionalListUnionIterator__all__r   rb   r   r   r   objectr   rM   rO   rd   r   r   r   r   rI  r   r  r  r  r  r   r  r9  r;  r   r   ru  r  r  rK   r)   r&   <module>r     sm   7   X W 1 %;;??=
 !"
/f /f	
 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
ZmW Zz", "36:} 36l	= 	 #3:: r)   