
    h                     f   S SK JrJr   S SKrS SKrSSKJr  SSK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/ S0\'5      r6S1S2\Rn                  4S3 jr8g)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                       \ 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    T/home/james-whalen/.local/lib/python3.13/site-packages/srsly/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__9   sH    		??DII.CC6==LL$++s
 	
r*   c                     U R                   $ r$   r    r%   s    r'   itemsComment.itemsC        {{r*   c                     U R                   $ r$   r!   r%   s    r'   r0   Comment.endH   s     yyr*   c                     Xl         g r$   r9   r&   values     r'   r0   r:   M   s	     	r*   c                     U R                   $ r$   r"   r%   s    r'   startComment.startR   r7   r*   c                     Xl         g r$   r?   r<   s     r'   r@   rA   W   s	     r*   )r!   r    r"   r   N)__name__
__module____qualname____firstlineno__	__slots__r   attribr(   r1   propertyr5   r0   setterr@   __static_attributes__ r*   r'   r   r   )   s     6IF
     	ZZ    \\ r*   r   c                      g r$   rL   rL   r*   r'   	NoCommentrN   ^   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)	Formatc   _flow_stylec                     S U l         g r$   rR   r%   s    r'   r(   Format.__init__g   
    r*   c                     SU l         g NTrR   r%   s    r'   set_flow_styleFormat.set_flow_stylek   rV   r*   c                     SU l         g NFrR   r%   s    r'   set_block_styleFormat.set_block_styleo   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)rR   )r&   defaults     r'   
flow_styleFormat.flow_styles   s!     #Nr*   r$   )rC   rD   rE   rF   rG   format_attribrH   r(   rY   r]   ra   rK   rL   r*   r'   rP   rP   c   s      IF  ! r*   rP   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$   rj   r&   keyrj   s      r'   add_kv_line_colLineCol.add_kv_line_col       99DI		#r*   c                 (    U R                  USS5      $ Nr   r   _kvr&   ks     r'   ro   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$   rm   )r&   rx   x0x1rj   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$ rt   rm   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$   rm   rn   s      r'   add_idx_line_colLineCol.add_idx_line_col   rr   r*   )ri   rj   rh   N)rC   rD   rE   rF   line_col_attribrH   r(   rp   ro   r=   rv   r   r   rK   rL   r*   r'   re   re   ~   s*    F!!"4r*   re   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)rC   rD   rE   rF   __doc__rG   
tag_attribrH   r(   r   rK   rL   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   rH   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   r0   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NNNNr   r   r   r    
setdefault
isinstancelistr   r&   ro   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}   r   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
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_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   rL   )smarkr   s     r'   comment_tokenFCommentedBase.yaml_set_comment_before_after_key.<locals>.comment_token   s"      a 7$ >dKKr*   Nr|   r   r   r   r,   r}   )
srsly.ruamel_yaml.errorr   srsly.ruamel_yaml.tokensr   lenr   r5   r   r   r   )r&   ro   beforer   afterafter_indentr   r   r   cr   r   s              @r'   !yaml_set_comment_before_after_key/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#:; *$\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   rP   rH   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
r   r   r   Nr   #r    ro   )r   r   r   r   _yaml_get_columnAttributeError_yaml_add_eol_comment)r&   r   ro   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   re   rH   r   r   r%   s    r'   lcCommentedBase.lc3  r   r*   c                 D    XR                   l        X R                   l        g r$   )r   rh   ri   )r&   rh   ri   s      r'   _yaml_set_line_col CommentedBase._yaml_set_line_col:  s    r*   c                 :    U R                   R                  X5        g r$   )r   rp   rn   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   rn   s      r'   _yaml_set_idx_line_col$CommentedBase._yaml_set_idx_line_colC  s      +r*   c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ r$   )r   r   rH   r   r   r%   s    r'   anchorCommentedBase.anchorG  s8     tV]]++D&--2tV]]++r*   c                 Z    [        U [        R                  5      (       d  g U R                  $ r$   )r   r   rH   r   r%   s    r'   yaml_anchorCommentedBase.yaml_anchorN  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_anchorT  s    !"-r*   c                     [        U [        R                  5      (       d#  [        U [        R                  [        5       5        [	        U [        R                  5      $ r$   )r   r   rH   r   r   r%   s    r'   tagCommentedBase.tagY  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                 b   [         R                  [        R                  [        R                  [        R                  [
        R                  [        4 HY  n[        X5      (       d  M  Ub,  [        X[        R                  " [        XU5      5      5        MD  [        X[        X5      5        M[     g r$   )r   rH   rP   re   r   r   r   r   r   copydeepcopyr   )r&   tmemoas       r'   copy_attributesCommentedBase.copy_attributesd  sl     ..&--**l,At#A$--0F"GHA'$"23,r*   c                     [         er$   NotImplementedErrorr&   r   ro   s      r'   r   #CommentedBase._yaml_add_eol_commentp      !!r*   c                     [         er$   r	  r%   s    r'   r   #CommentedBase._yaml_get_pre_commentt  r  r*   c                     [         er$   r	  r&   ro   s     r'   r   CommentedBase._yaml_get_columnx  r  r*   rL   )F)r   )Nr   NNr$   )rC   rD   rE   rF   rI   r   r   r   r   r   r   r   rN   r   r   r   r   r   r   r   r   r   r   r  r   r   r   rK   rL   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   i}  _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 Nr   )r   __delitem__r   r5   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reverser   N)r   insertr'  r   r5   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$   rN   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   r5   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   r5   	enumeraterH  r&   ro   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  H7  nUR                  [        R                  " X15      5        U R                  X!S9  M9     U$ N)r  )	__class__idr   r  r  r  r&   r  resrx   s       r'   __deepcopy__CommentedSeq.__deepcopy__  sP    nnRXAJJt}}Q-.   0  
r*   c                 ,    [         R                  X5      $ r$   )r   __add__r8  s     r'   rd  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   r   )r'  zipranger   r   r(   map__iter__r  r   r5   r    rM  )r&   ro   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*   rL   r$   r\   )rC   rD   rE   rF   r   rH   rG   r(   r  r!  r)  r,  r1  r   r7  rN   r=  r   rH  r   r   ra  rd  ro  r   rK   rL   r*   r'   r   r   }  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*   rL   N)rC   rD   rE   rF   r   rN   r=  r   rH  r   r   rK   rL   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)CommentedMapViewi3  _mappingc                     Xl         g r$   r  )r&   mappings     r'   r(   CommentedMapView.__init__6  s    r*   c                 0    [        U R                  5      nU$ r$   )r   r  )r&   counts     r'   r,  CommentedMapView.__len__:  s    DMM"r*   N)rC   rD   rE   rF   rG   r(   r,  rK   rL   r*   r'   r  r  3  s    I r*   r  c                   4    \ rS rSrSr\S 5       rS rS rSr	g)CommentedMapKeysViewi@  rL   c                     [        U5      $ r$   setr&   its     r'   _from_iterable#CommentedMapKeysView._from_iterableC       2wr*   c                     XR                   ;   $ r$   r  r  s     r'   __contains__!CommentedMapKeysView.__contains__H  s    mm##r*   c              #   :   #    U R                    H  nUv   M	     g 7fr$   r  r&   rl  s     r'   rj  CommentedMapKeysView.__iter__L  s      AG    N
rC   rD   rE   rF   rG   classmethodr  r  rj  rK   rL   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)CommentedMapItemsViewiS  rL   c                     [        U5      $ r$   r  r  s     r'   r  $CommentedMapItemsView._from_iterableV  r  r*   c                 R    Uu  p# U R                   U   nXC:H  $ ! [         a     gf = fr\   )r  KeyError)r&   r   ro   r=   vs        r'   r  "CommentedMapItemsView.__contains__[  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'   rj  CommentedMapItemsView.__iter__e  s.     ==&&(Cc*++ )s   57Nr  rL   r*   r'   r  r  S  s#    I ,r*   r  c                   $    \ rS rSrSrS rS rSrg)CommentedMapValuesViewik  rL   c                 R    U R                    H  nXR                   U   :X  d  M    g   g)NTFr  )r&   r=   ro   s      r'   r  #CommentedMapValuesView.__contains__n  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'   rj  CommentedMapValuesView.__iter__u  s+     ==&&(C--$$ )s   46N)rC   rD   rE   rF   rG   r  rj  rK   rL   r*   r'   r  r  k  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   i{  _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rN   r   r   r   r   r&   r   ro   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   r5   rH  )	r&   ro   r   rO  rP  rQ  lastrl  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&   valsrl  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&   posro   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*   r   )r   r   getr  r  r  )r&   ro   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&   ro   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&   ro   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 rX   )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&   ro   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   rj  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&   ro   referers      r'   r%  CommentedMap.__delitem__"  s@     	*yyG$$S) !r*   c              #   N   #    [         R                  " U 5       H  nUv   M	     g 7fr$   r   rj  r  s     r'   rj  CommentedMap.__iter__6       %%d+AG ,   #%c              #   N   #    [         R                  " U 5       H  nUv   M	     g 7fr$   r  r  s     r'   r  CommentedMap._keys;  r  r  c                 @    [        [        R                  " U 5      5      $ r$   )intr   r,  r%   s    r'   r,  CommentedMap.__len__@  s    ;&&t,--r*   c                 0    [        [        U 5      U:H  5      $ r$   )r-   r  r8  s     r'   r7  CommentedMap.__eq__D  s    DJ%'((r*   c                 4    [        U R                  5       5      $ r$   )r   r  r%   s    r'   r  CommentedMap.keysJ  s    

%%r*   c                 "    U R                  5       $ r$   )r  r%   s    r'   iterkeysCommentedMap.iterkeysN  s    ::<r*   c                     [        U 5      $ r$   r  r%   s    r'   viewkeysCommentedMap.viewkeysR      '--r*   c                     [        U 5      $ r$   r  r%   s    r'   r  r   X  r  r*   c              #   v   #    [         R                  " U 5       H  n[         R                  " X5      v   M     g 7fr$   r   rj  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.valuesc  s    ''r*   c                 "    U R                  5       $ r$   )r  r%   s    r'   
itervaluesCommentedMap.itervaluesg  s    <<>!r*   c                     [        U 5      $ r$   r  r%   s    r'   
viewvaluesCommentedMap.viewvaluesk      )$//r*   c                     [        U 5      $ r$   r  r%   s    r'   r  r  q  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._itemsu  s0     %%d+A[,,T555 ,s   9;c                 4    [        U R                  5       5      $ r$   )r   r    r%   s    r'   r5   CommentedMap.items|  s    &&r*   c                 "    U R                  5       $ r$   r4   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'   r5   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&   rl  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.  r5   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&   ro   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   U5      X#'   M      U R	                  X!S9  U$ r\  )r]  r^  r  r  r  r_  s       r'   ra  CommentedMap.__deepcopy__  sM    nnRXA]]47D1CF S,
r*   )r  r  r$   r\   )1rC   rD   rE   rF   r   rH   rG   r(   rN   r=  r   rH  r   r   r  r1  r  r  r   r  r  r  r   r  r%  rj  r  r,  r7  r   r  r  r  r  r  r  r  r    r5   r  r#  rI   r(  r  r.  r1  r  ra  rK   rL   r*   r'   r   r   {  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/   rC   )clsr  kwargss      r'   raise_immutabler:    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   r:  r   r=  r  r   r5   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=  rj  r  s     r'   rj  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tupler5   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   r5   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'   rR  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*   rA  r$   )rC   rD   rE   rF   r   rH   rG   r(   r:  r%  r   r   r&  popitemr   r  r  rj  r,  rK  r   r  rR  rN   r=  r   rH  r   r   rK   rL   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                   .    \ rS rSr\R
                  4rSrg)r   i&  rL   N)rC   rD   rE   rF   r   rH   rG   rK   rL   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   ra  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_comment4  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ra  r<   s     r'   r  CommentedSet.addD  s     !

5r*   c                     U R                   U	 g)z8Remove an element.  Do not raise an exception if absent.Nri  r<   s     r'   r  CommentedSet.discardI  s     JJur*   c                     XR                   ;   $ r$   ri  r  s     r'   r  CommentedSet.__contains__N  s    JJr*   c              #   :   #    U R                    H  nUv   M	     g 7fr$   ri  r  s     r'   rj  CommentedSet.__iter__R  s     AG r  c                 ,    [        U R                  5      $ r$   )r   ra  r%   s    r'   r,  CommentedSet.__len__W  s    4::r*   c                 T    SR                  U R                  R                  5       5      $ )Nz
set({0!r}))r/   ra  r  r%   s    r'   r   CommentedSet.__repr__[  s    ""4::??#455r*   ri  r$   )rC   rD   rE   rF   r   rH   rG   r(   rN   r=  r   r  r  r  rj  r,  r   rK   rL   r*   r'   r   r   *  sD    'I .7i 	&3
!


6r*   r   c                   $    \ rS rSrSS jrS rSrg)TaggedScalari`  Nc                 F    Xl         X l        Ub  U R                  U5        g g r$   )r=   styler   )r&   r=   rx  r   s       r'   r(   TaggedScalar.__init__b  s$    

?c" r*   c                     U R                   $ r$   r   r%   s    r'   r1   TaggedScalar.__str__i  s    zzr*   )rx  r=   r  )rC   rD   rE   rF   r(   r1   rK   rL   r*   r'   rv  rv  `  s    #r*   rv  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  n  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  compatr   r   r   r	   scalarstringr
   r   r   collectionsr   r   r   r   collections.abctypingAnyDictOptionalListUnionIterator__all__r   rc   r   r   r   objectr   rN   rP   re   r   r   r   r   rJ  r   r  r  r  r  r   r  r:  r<  r   r   rv  r  r  rL   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*   