
    =OOfI                       d dl mZ 	 d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZ 	 g d	Zd Zd
ZdZdZ G d d      Z e       Z  e        xZ!Z" e        Z# e        xZ$Z% e        xZ&Z' e        Z( e        Z) e        Z* e        Z+ e        Z, e        Z- e        Z. e        Z/dZ0dZ1dZ2dZ3 G d d      Z4 G d d      Z5 G d d      Z6 G d d      Z7 G d d      Z8 G d dee9e8      Z: G d d e;e8      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e8      ZAeBd7d+       ZC G d, d-e8e      ZD G d. d/eA      ZE G d0 d1ee8      ZF G d2 d3e8      ZGd4d5ej                  fd8d6ZIy)9    )annotationsN)ordereddict)MutableSliceableSequencenprintf)ScalarString)Anchor)Tag)
MutableSetSizedSetMapping)CommentedSeqCommentedKeySeqCommentedMapCommentedOrderedMapCommentedSetcomment_attribmerge_attribTaggedScalarC_POSTC_PREC_SPLIT_ON_FIRST_BLANKC_BLANK_LINE_PRESERVE_SPACE         c                  $    e Zd ZddZddZddZy)IDXc                    d| _         y Nr   _idxselfs    U/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/ruamel/yaml/comments.py__init__zIDX.__init__4   s	    	    c                H    | j                   }| xj                   dz  c_         |S Nr   r!   r$   xs     r%   __call__zIDX.__call__7   s    II		Q	r'   c                ,    t        | j                        S N)strr"   r#   s    r%   __str__zIDX.__str__<   s    499~r'   NreturnNoner2   Any)__name__
__module____qualname__r&   r,   r0    r'   r%   r   r   2   s    
r'   r   _yaml_comment_yaml_format_yaml_line_col_yaml_mergec                      e Zd ZdZeZdddZddZddZddZ	e
dd       Ze
dd       Zej                  dd       Ze
dd	       Zej                  dd
       ZddZddZddZy)Comment)comment_items_post_prec                D    |rd ng | _         d | _        i | _        g | _        y r.   )rC   r@   rA   rB   )r$   olds     r%   r&   zComment.__init__^   s$    DR	 ') "
r'   c                    t        | j                        rdt        | j                        z   }nd}d| j                   d| j                   | dS )N,
  end= zComment(comment=z
,
  items=))boolrB   r/   r@   rA   )r$   ends     r%   r0   zComment.__str__h   sF    

DJJ/CC!$,,{4;;-uANNr'   c           
        t        | j                        rdt        | j                        z   }nd}	 t        | j                  D cg c]  }t        t        |             c}      dz   }dj                  | j                  j                         D cg c]  \  }}t        |      dz   | dd| d c}}      }|rd|z   d	z   }d
| j                   d| d| dS c c}w # t        $ r d}Y w xY wc c}}w )NrG   rH   r       : 

      zComment(
  start=,
  items={}rI   )
rJ   rB   r/   maxrA   len
ValueErrorjoinitemsr@   r$   rK   klnvits         r%   _old__repr__zComment._old__repr__o   s    

DJJ/CC	4;;7ac#a&k781<B [[4;;CTCTCVW41aSVc\2$`/q26WXB%B#DLL>rd"SEKK 8 	B	Ws)   C! C 
C! "C2
C! !C/.C/c           
     (   | j                   | j                         S t        | j                        rdt	        | j                        z   }nd}	 t        | j                  D cg c]  }t        t        |             c}      dz   }dj                  | j                  j                         D cg c]  \  }}t        |      dz   | dd| d c}}      }|rd|z   d	z   }d
| j                   d| d| dS c c}w # t        $ r d}Y w xY wc c}}w )NrG   rH   r   rM   rN   rO   rP   rQ   rR   zComment(
  pre=rS   rT   rI   )rC   r_   rJ   rB   reprrU   rA   rV   r/   rW   rX   rY   prerZ   s         r%   __repr__zComment.__repr__}   s    99$$&&

TZZ 00CC	4;;7ac#a&k781<B [[4;;CTCTCVW41aSVc\2$`/q26WXB%B!$((=Bse1EE 8 	B	Ws*   C= !C8<
C= ."D
8C= =D
Dc                    | j                   S r.   )rA   r#   s    r%   rY   zComment.items   s    {{r'   c                    | j                   S r.   rB   r#   s    r%   rK   zComment.end   s    zzr'   c                    || _         y r.   rf   r$   values     r%   rK   zComment.end   s	    
r'   c                    | j                   S r.   rC   r#   s    r%   rb   zComment.pre   s    yyr'   c                    || _         y r.   rk   rh   s     r%   rb   zComment.pre   s	    	r'   c                d    | j                   j                  |      }|t        |      |k  ry ||   S r.   )rA   getrV   )r$   itemposr+   s       r%   rn   zComment.get   s/    KKOOD!9Avr'   c                    | j                   j                  |      }|d g|dz   z  x| j                   |<   }n.t        |      |k  r |j                  d        t        |      |k  r ||   J |||<   y r)   )rA   rn   rV   append)r$   ro   rp   ri   r+   s        r%   setzComment.set   sq    KKOOD!9%)FcAg$66DKKa&C- a&C-v~~#r'   c                   | j                   r^| j                   d   r|| j                   d   j                  v ry| j                   d   r$| j                   d   D ]  }||j                  v s y | j                  j                         D ]   }|s|D ]  }|s||j                  v s  y " | j                  r!| j                  D ]  }||j                  v s y y)Nr   Tr   F)r@   ri   rY   valuesrK   )r$   r+   cri   s       r%   __contains__zComment.__contains__   s    <<||A1Q(=(=#=||Aa $AAGG|#$ ZZ&&( 	 E  agg 	  88XX  <  r'   N)T)rE   rJ   r2   r3   r2   r/   r4   ri   r5   r2   r3   )ro   r5   rp   r5   r2   r5   )ro   r5   rp   r5   ri   r5   r2   r5   r+   r5   r2   r5   )r6   r7   r8   	__slots__r   attribr&   r0   r_   rc   propertyrY   rK   setterrb   rn   rs   rw   r9   r'   r%   r?   r?   X   s     5IF#OLF      	ZZ    	ZZ r'   r?   c                      e Zd Zy)NotNoneN)r6   r7   r8   r9   r'   r%   r   r      s    r'   r   c                  >    e Zd ZdZeZddZddZddZd	d
dZ	ddZ
y)Format_flow_stylec                    d | _         y r.   r   r#   s    r%   r&   zFormat.__init__   s
     $r'   c                    d| _         y NTr   r#   s    r%   set_flow_stylezFormat.set_flow_style   s
    r'   c                    d| _         y NFr   r#   s    r%   set_block_stylezFormat.set_block_style   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)r   )r$   defaults     r%   
flow_stylezFormat.flow_style   s!    
 #Nr'   c                "    d| j                    dS )NzFormat(rI   r   r#   s    r%   rc   zFormat.__repr__   s    ))*!,,r'   r1   r.   )r   Optional[Any]r2   r5   rx   )r6   r7   r8   r{   format_attribr|   r&   r   r   r   rc   r9   r'   r%   r   r      s%     IF% ! -r'   r   c                  T    e Zd ZdZeZddZddZddZddZ	ddZ
ddZddZdd	Zy
)LineColzL
    line and column information wrt document, values start at zero (0)
    c                .    d | _         d | _        d | _        y r.   )linecoldatar#   s    r%   r&   zLineCol.__init__   s    	.2	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$   r[   s     r%   r   zLineCol.key       xx1a  r'   c                (    | j                  |dd      S )Nr      r   r   s     r%   ri   zLineCol.value   r   r'   c                N    | j                   y | j                   |   }||   ||   fS r.   r   )r$   r[   x0x1r   s        r%   r   zLineCol._kv   s/    99yy|Bxb!!r'   c                d    | j                   y | j                   |   d   | j                   |   d   fS r   r   r$   idxs     r%   ro   z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  r   r'   c                <    d| j                    d| j                   dS )NzLineCol(, rI   )r   r   r#   s    r%   rc   zLineCol.__repr__  s    $))Btxxj22r'   Nr1   r   r5   r   r5   r2   r3   )r[   r5   r2   r5   )r[   r5   r   r5   r   r5   r2   r5   r   r5   r2   r5   rx   )r6   r7   r8   __doc__line_col_attribr|   r&   r   r   ri   r   ro   r   rc   r9   r'   r%   r   r      s6     F3

!!"4

3r'   r   c                  $   e Zd Zed        ZdddZdddZdddZdddZ	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	edd       Z
edf	 	 	 	 	 	 	 dd	Zedd
       Zd dZd!dZd!dZedd       ZddZdd"dZedd       Zd#dZd$d%dZd&dZddZd'dZy)(CommentedBasec                    t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r.   )hasattrr?   r|   setattrgetattrr#   s    r%   cazCommentedBase.ca  s5     tW^^,D'..')4tW^^,,r'   c                    |y |s| j                   j                  g | j                   _        | j                   j                  j                  |       y r.   )r   rK   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   rA   
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   r   r   r   r   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 ]H  }|j                         }t        |      dkD  r|d   dk7  rd	|z   }|j                   ||dz   |             J y)
zoverwrites any preceding comment lines on an object
        expects comment to be without `#` and possible have multiple lines
        r   CommentMarkCommentTokenrP   Nr   ## )	errorr   tokensr   _yaml_clear_pre_commentsplitstriprV   rr   )	r$   r@   indentr   r   pre_comments
start_markcomrv   s	            r%   yaml_set_start_commentz$CommentedBase.yaml_set_start_comment4  s     	'(3352;$crlG (
==& 	FC		A1vzadckSjS4Z DE		Fr'   Nc                <   ddl m} ddlm d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   g |	d<   |d	k(  r|	d   j                   |d
|             n1|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   |      S )Nr   rH   rP   r9   )smarkr   s     r%   comment_tokenzFCommentedBase.yaml_set_comment_before_after_key.<locals>.comment_tokenS  s    a 7$ >EEr'   Nr   r   r   rP   rH   r   )r   r5   r   r5   r2   r5   )
ruamel.yaml.errorr   ruamel.yaml.tokensr   rV   r   rY   r   rr   r   )r$   r   beforer   afterafter_indentr   r   r   rv   r   r   s              @r%   !yaml_set_comment_before_after_keyz/CommentedBase.yaml_set_comment_before_after_keyE  sE    	23	F !A:Ls6{QF2J$,>CR[FU2Y$&#2JE (
GGMM$$S4T4*@At|!~!M"j9:!<<- @CaDKKc: >?@$\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   r   r|   r   r   r#   s    r%   fazCommentedBase.fan  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g}| j                  ||	       y# t
        $ r d}Y Rw 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   rO   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_commentw  s     	)&>..s3 1:WnG>qzS - (
7J/6""23"/ " s   A& &A43A4c                    t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r.   )r   r   r|   r   r   r#   s    r%   lczCommentedBase.lc  s3    tW^^,D'..')4tW^^,,r'   c                H    || j                   _        || j                   _        y r.   )r   r   r   )r$   r   r   s      r%   _yaml_set_line_colz CommentedBase._yaml_set_line_col  s    r'   c                <    | j                   j                  ||       y r.   )r   r   r   s      r%   _yaml_set_kv_line_colz#CommentedBase._yaml_set_kv_line_col  s    T*r'   c                <    | j                   j                  ||       y r.   )r   r   r   s      r%   _yaml_set_idx_line_colz$CommentedBase._yaml_set_idx_line_col  s      d+r'   c                    t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r.   )r   r   r|   r   r   r#   s    r%   anchorzCommentedBase.anchor  s3    tV]]+D&--2tV]]++r'   c                P    t        | t        j                        sy | j                  S r.   )r   r   r|   r   r#   s    r%   yaml_anchorzCommentedBase.yaml_anchor  s    tV]]+{{r'   c                H    || j                   _        || j                   _        y r.   )r   ri   always_dump)r$   ri   r   s      r%   yaml_set_anchorzCommentedBase.yaml_set_anchor  s    !"-r'   c                    t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r.   )r   r	   r|   r   r   r#   s    r%   tagzCommentedBase.tag  s3    tSZZ(D#**ce,tSZZ((r'   c                :    t        | t        j                  |       y r.   )r   r	   r|   rh   s     r%   yaml_set_ctagzCommentedBase.yaml_set_ctag  s    cjj%(r'   c                X   t         j                  t        j                  t        j                  t        j                  t
        j                  t        fD ]T  }t        | |      s|,t        ||t        j                  t        | ||                   >t        ||t        | |             V |S )z]
        copies the YAML related attributes, not e.g. .values
        returns target
        )r?   r|   r   r   r   r	   r   r   r   copydeepcopyr   )r$   tmemoas       r%   copy_attributeszCommentedBase.copy_attributes  s     ..&--**l, 	4AtQ#Aq$--a0F"GHAq'$"23	4 r'   c                    t         r.   NotImplementedErrorr$   r@   r   s      r%   r   z#CommentedBase._yaml_add_eol_comment      !!r'   c                    t         r.   r  r#   s    r%   _yaml_get_pre_commentz#CommentedBase._yaml_get_pre_comment  r  r'   c                    t         r.   r  r$   r   s     r%   r   zCommentedBase._yaml_get_column  r  r'   )F)r@   r5   r   rJ   r2   r3   )r   r5   r@   r5   r   rJ   r2   r3   )r   )r@   r5   r   r5   r2   r3   )Nr   NN)r   r5   r   r5   r   r5   r   r5   r   r5   r2   r3   r4   )r@   r5   r   r   r   r   r2   r3   )r   r5   r   r5   r2   r3   r   )ri   r5   r   rJ   r2   r3   )ri   r	   r2   r3   r.   )r  r5   r	  r5   r2   r5   r@   r5   r   r5   r2   r3   r   r5   r2   r5   )r6   r7   r8   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r  r   r9   r'   r%   r   r     s&   - -$F(  '<'< '< 	'<
 '< '< 
'<R , , 29RV00!.0BO0	04 - -
+, , ,

. ) )
) """r'   r   c                      e Zd Zej                  dfZddZddZddZdddZ	ddZ
ddZdd	Zdd
ZefddZddZddZddZd dZd dZd!dZd"dZd#d$dZd 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__r   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.   )rV   r   r/   r   typer   __setitem__)r$   r   ri   s      r%   __setsingleitem__zCommentedSeq.__setsingleitem__  sU    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 r)   )r   __delitem__r   rY   popsorted)r$   r   
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   rY   r&  )r$   r   valr(  s       r%   r/  zCommentedSeq.insert  sf    D#s# = 	JJC,0GGMM,=,=j,IDGGMM*q.)	Jr'   c                0    t         j                  | |       y r.   )r   r   )r$   r0  s     r%   r   zCommentedSeq.extend  s    D#r'   c                .    t         j                  | |      S r.   )r   __eq__r$   others     r%   r3  zCommentedSeq.__eq__  s    {{4''r'   c                \    |t         ur| j                  ||       y || j                  _        y r.   r   r   r   r@   r  s      r%   _yaml_add_commentzCommentedSeq._yaml_add_comment   %    g((g6%DGGOr'   c                *    | j                  ||       y Nr   r8  r  s      r%   r   z"CommentedSeq._yaml_add_eol_comment      wC0r'   c                b    | j                   j                  |   d   j                  j                  S r    r   rY   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   rY   	enumerater@  r$   r   r   sel_idxrb   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   77??1-Lr'   c                    g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r)   rL  rM  s     r%   r   z$CommentedSeq._yaml_clear_pre_comment(  G    "$77??"#\2DGGO  ".DGGOOAr'   c                    | j                         }||t        |       <   | D ]:  }|j                  t        j                  ||             | j                  ||       < |S N)r	  )	__class__idrr   r  r  r  r$   r	  resr[   s       r%   __deepcopy__zCommentedSeq.__deepcopy__0  s[    nnRX 	1AJJt}}Q-.  4 0	1 
r'   c                .    t         j                  | |      S r.   )r   __add__r4  s     r%   rY  zCommentedSeq.__add__8  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rangerV   r   r&   map__iter__r  r   rY   rA   rD  )r$   r   r.  tmp_lstr+   itmr   	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   rc   r#   s    r%   rc   zCommentedSeq.__repr__K  s    }}T""r'   r  r5   r  r5   r2   r3   r   )r   r5   ri   r5   r2   r3   r.   r2   int)r   r5   r0  r5   r2   r3   )r0  r5   r2   r3   r5  r5   r2   rJ   r@   r5   r   r   r2   r3   r  r  r4   r	  r5   r2   r5   )r5  r5   r2   r5   r   )r   r5   r.  rJ   r2   r3   )r6   r7   r8   r?   r|   r{   r&   r  r#  r)  r+  r/  r   r3  r   r8  r   r@  r   r  r   rW  rY  rb  rc   r9   r'   r%   r   r     ss    (I)+	+J"J( DK &17()4 #r'   r   c                  D    e Zd ZdZefd	dZd
dZddZddZddZ	ddZ
y)r   zEThis primarily exists to be able to roundtrip keys that are sequencesc                \    |t         ur| j                  ||       y || j                  _        y r.   r7  r  s      r%   r8  z!CommentedKeySeq._yaml_add_commentR  r9  r'   c                *    | j                  ||       y r;  r<  r  s      r%   r   z%CommentedKeySeq._yaml_add_eol_commentX  r=  r'   c                b    | j                   j                  |   d   j                  j                  S r    r?  r  s     r%   r@  z!CommentedKeySeq._yaml_get_columnX[  rA  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)   rC  rE  s           r%   r   z CommentedKeySeq._yaml_get_column^  rJ  r'   c                    g }| j                   j                  d |g| j                   _        |S | j                   j                  d   }|S r)   rL  rM  s     r%   r  z%CommentedKeySeq._yaml_get_pre_commentr  rN  r'   c                    g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r)   rL  rM  s     r%   r   z'CommentedKeySeq._yaml_clear_pre_commentz  rP  r'   Nrh  r  r  r4   )r6   r7   r8   r   r   r8  r   r@  r   r  r   r9   r'   r%   r   r   O  s&    OCJ &17(r'   r   c                       e Zd ZdZddZddZy)CommentedMapView_mappingc                    || _         y r.   rs  )r$   mappings     r%   r&   zCommentedMapView.__init__  s	    r'   c                0    t        | j                        }|S r.   )rV   rt  )r$   counts     r%   r+  zCommentedMapView.__len__  s    DMM"r'   N)rv  r5   r2   r3   re  )r6   r7   r8   r{   r&   r+  r9   r'   r%   rr  rr    s    I r'   rr  c                  2    e Zd ZdZedd       ZddZddZy)	CommentedMapKeysViewr9   c                    t        |      S r.   rs   r$   r^   s     r%   _from_iterablez#CommentedMapKeysView._from_iterable      2wr'   c                    || j                   v S r.   rs  r  s     r%   rw   z!CommentedMapKeysView.__contains__  s    dmm##r'   c              #  6   K   | j                   D ]  }|  y wr.   rs  r*   s     r%   r^  zCommentedMapKeysView.__iter__  s        	AG	   Nr^   r5   r2   r5   r  r4   r6   r7   r8   r{   classmethodr~  rw   r^  r9   r'   r%   rz  rz    s#    I $r'   rz  c                  2    e Zd ZdZedd       ZddZddZy)	CommentedMapItemsViewr9   c                    t        |      S r.   r|  r}  s     r%   r~  z$CommentedMapItemsView._from_iterable  r  r'   c                T    |\  }}	 | j                   |   }||k(  S # t        $ r Y yw xY wr   )rt  KeyError)r$   ro   r   ri   r]   s        r%   rw   z"CommentedMapItemsView.__contains__  s>    
U	c"A :  		s    	''c              #  p   K   | j                   j                         D ]  }|| j                   |   f  y wr.   rt  _keysr  s     r%   r^  zCommentedMapItemsView.__iter__  s6     ==&&( 	,Cc*++	,s   46Nr  )ro   r5   r2   r5   r4   r  r9   r'   r%   r  r    s#    I ,r'   r  c                       e Zd ZdZddZddZy)CommentedMapValuesViewr9   c                N    | j                   D ]  }|| j                   |   k(  s y y)NTFrs  )r$   ri   r   s      r%   rw   z#CommentedMapValuesView.__contains__  s.    == 	Cc**	 r'   c              #  l   K   | j                   j                         D ]  }| j                   |     y wr.   r  r  s     r%   r^  zCommentedMapValuesView.__iter__  s1     ==&&( 	%C--$$	%s   24N)ri   r5   r2   r5   r4   )r6   r7   r8   r{   rw   r^  r9   r'   r%   r  r    s    I%r'   r  c                  Z   e Zd Zej                  ddfZd%dZeef	 	 	 	 	 	 	 d&dZd'dZ	d(dZ
d(dZd)dZd)d	Zd*d
Zd+d,dZd-d.dZd(dZd/dZd(dZd0dZd+d1dZd)dZd)dZd2dZd)dZefd1dZd)dZd3dZd4dZd)dZd)dZd)dZ d)dZ!e"d)d       Z#d)d Z$d5d!Z%d6d"Z&d2d#Z'd7d$Z(y)8r   _ok_refc                b    t               | _        g | _        t        j                  | g|i | y r.   )rs   r  r  r   r&   r  s      r%   r&   zCommentedMap.__init__  s*    $'E(*	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r   r   r   r   r@   r$   r@   r   ri   s       r%   r8  zCommentedMap._yaml_add_comment  B     g((g6**5':%DGGOr'   c                *    | j                  ||       yz6add on the value line, with value specified by the keyri   Nr<  r  s      r%   r   z"CommentedMap._yaml_add_eol_comment      wc2r'   c                b    | j                   j                  |   d   j                  j                  S )Nr   r?  r  s     r%   r@  zCommentedMap._yaml_get_columnX  rA  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   rY   r@  )	r$   r   r   rF  rb   rG  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)   rL  rM  s     r%   r  z"CommentedMap._yaml_get_pre_comment  rN  r'   c                    g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r)   rL  rM  s     r%   r   z$CommentedMap._yaml_clear_pre_comment   rP  r'   c                   	 t        j                  | g|i | |r-	 | j                  j                  |d   j	                                |r( | j                  j                  |j	                           y y # t        $ r |d   D ]  }|d   |   | |<    Y zw xY w# t
        $ r+ |d   D ]   }| j                  j                  |d          " Y w xY wr    )r   update	TypeErrorr  keysr   add)r$   valsr  r+   s       r%   r  zCommentedMap.update  s    	%t1d1b1
 'Q/
 DHHOORWWY'   	%!W %q'!*Q%	% " 'a 'AHHLL1&''s"   A5 ,B 5BB1CCNc                v   || j                   v r| |= | j                         D cg c]  }|| j                   v s| }}	 t        | t        dgg      d   }|d   }|dk\  rS||k\  r3|dz   d   ft        | t              d<   |}	t        | j                         }
n2|dz
  }	t        | j                         }
n|}	t        | j                         }
|| |<   t        |	|
      D ]  }| j                  ||           | j                   j                  |       || j                  ||       yyc c}w # t        $ r d}Y w xY w)zkinsert key value into given position, as defined by source YAML
        attach comment if provided
        r   r   r   Nr   )
r  r  r   r   
IndexErrorrV   r\  move_to_endr  r   )r$   rp   r   ri   r@   r[   r  ma0	merge_posidx_minidx_maxr   s               r%   r/  zCommentedMap.insert  sC    $((?S	99;8a!txx-88	$tf5a8CAI >C2;a-Q1Hl+A.dhh-'dhh-G$((mGS	'* 	(CT#Y'	(S %%g3%7 3 9  	I	s   D%D%D* *D87D8c                    t        |t              s| j                  ||      S d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   dictrV   r  )key_listleveldget_one_levellist_oks      r%   r  z)CommentedMap.mlget.<locals>.get_one_levelA  si    !!T***H%3x=($$%!),-- 519a8K6LMMr'   r   )r  r5   r  r5   r  r5   r2   r5   )r   r   rn   r  r  r  )r$   r   r   r  r  s      `@r%   mlgetzCommentedMap.mlget;  sd    #t$88C))	N	 a.. 	N:& 	N	s   	7 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  r  r   r   )r$   r   mergeds      r%   r  zCommentedMap.__getitem__S  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  r  )r$   r   ri   s      r%   r"  zCommentedMap.__setitem__\  sa    $;5#&"5,7tCy,7'T#Y.c51Sr'   c                "    || j                   v ryy r   )r  r  s     r%   _unmerged_containszCommentedMap._unmerged_containsh  s    $((?r'   c                @    t        t        j                  | |            S r.   )rJ   r   rw   r  s     r%   rw   zCommentedMap.__contains__m  s    K,,T3788r'   c                8    	 | j                  |      S #  |cY S xY wr.   )r  )r$   r   r   s      r%   rn   zCommentedMap.getp  s$    	##C((	Ns    c                j    d}d}| j                         D ]  \  }}|| |d|z  }|rd} |dz  }|S )N{rH   z: r   rT   )rY   )r$   rV  sepr[   r]   s        r%   rc   zCommentedMap.__repr__v  sV    JJL 	DAqcU1%r!''C	 	s

r'   c              #     K   t        j                  |       D ]+  }|| j                  v s|t        j                  | |      f - y wr.   )r   r^  r  r  r*   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%  r  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^  r*   s     r%   r^  zCommentedMap.__iter__  %     %%d+ 	AG	    "c                L    	 | |   }| |= |S # t         $ r |t        u r |cY S w xY wr.   )r  r   )r$   r   r   results       r%   r&  zCommentedMap.pop  s?    	#YF
 I  	'!N	s    ##c              #  H   K   t        j                  |       D ]  }|  y wr.   r  r*   s     r%   r  zCommentedMap._keys  r  r  c                >    t        t        j                  |             S r.   )rf  r   r+  r#   s    r%   r+  zCommentedMap.__len__  s    ;&&t,--r'   c                0    t        t        |       |k(        S r.   )rJ   r  r4  s     r%   r3  zCommentedMap.__eq__  s    DJ%'((r'   c                    t        |       S r.   )rz  r#   s    r%   r  zCommentedMap.keys  s    #D))r'   c                    t        |       S r.   )r  r#   s    r%   ru   zCommentedMap.values  s    %d++r'   c              #  t   K   t        j                  |       D ]  }|t        j                  | |      f  y wr.   )r   r^  r  r*   s     r%   rA   zCommentedMap._items  s8     %%d+ 	6A[,,T1555	6s   68c                    t        |       S r.   )r  r#   s    r%   rY   zCommentedMap.items  s    $T**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!  rA   r  )r$   r+   r[   r]   s       r%   r  zCommentedMap.copy  sD    DJLKKM 	DAqAaD	Qr'   c                X    || j                   vr| j                   j                  |       y y r.   )r  rr   )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  rY   r   rw   r"  r  r   )r$   ri   r]   r  v1s        r%   add_yaml_mergezCommentedMap.add_yaml_merge  sy     	6AaDd#A$**, 6B++D"5''b"56	6 	

% 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   r]   s      r%   r  zCommentedMap.update_key_value  s]    $((? 	Aad{''c1Q49=	 	c*r'   c                    | j                         }||t        |       <   | D ]  }t        j                  | |   |      ||<     | j	                  ||       |S rR  )rS  rT  r  r  r  rU  s       r%   rW  zCommentedMap.__deepcopy__  sZ    nnRX 	2A]]47D1CF	2St,
r'   rd  r@   r5   r   r   ri   r   r2   r3   r  r  r4   )r  r5   r  r5   r2   r3   r.   )
rp   r5   r   r5   ri   r5   r@   r   r2   r3   r   )r   r5   r   r5   r  r5   r2   r5   )r   r5   ri   r5   r2   r3   )r   r5   r2   rJ   )r   r5   r   r5   r2   r5   )r   r5   r2   r3   re  rg  )r  r5   r2   r3   ry   ri  ))r6   r7   r8   r?   r|   r{   r&   r   r8  r   r@  r   r  r   r  r/  r  r  r"  r  rw   rn   rc   r  r%  r^  r&  r  r+  r3  r  ru   rA   rY   r}   r  r  r  r  r  rW  r9   r'   r%   r   r     s    /I0 29QX
&
&!.
&AN
&	
&376(" 8D0

9:
*& ,3 .)*,6+ + +
!!+r'   r   c                2    t        | j                   d      )Nz objects are immutable)r  r6   )clsr  kwargss      r%   raise_immutabler    s    
s||n$:;
<<r'   c                      e Zd Zej                  dfZ	 ddZexZxZ	xZ
xZxZxZZddZddZddZddZddZeddd	       Zefdd
ZddZddZddZddZy)CommentedKeyMap_odc                p    t        | d      rt        |        	 t        |i || _        y # t        $ r  w xY w)Nr  )r   r  r   r  r  r  s      r%   r&   zCommentedKeyMap.__init__  s<    4D!	"D/B/DH 		s   * 5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^  r*   s     r%   r^  zCommentedKeyMap.__iter__  s'     ""$ 	AG	s   %'c                ,    t        | j                        S r.   )rV   r  r#   s    r%   r+  zCommentedKeyMap.__len__  s    488}r'   c                F    t        t        | j                                     S r.   )hashtuplerY   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(rI   )r   r   r  rc   ra   r   rY   r#   s    r%   rc   zCommentedKeyMap.__repr__  sD    t\*88$$&&T$((..*:%; <<sBBr'   Nc                @    t        t        j                  | |            S r.   )r  r  fromkeys)r  r]   s     r%   r  zCommentedKeyMap.fromkeys  s    t}}T1566r'   c                \    |t         ur| j                  ||       y || j                  _        y r.   r7  r  s      r%   r8  z!CommentedKeyMap._yaml_add_comment  r9  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  rA  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)   rC  rE  s           r%   r   z CommentedKeyMap._yaml_get_column   rJ  r'   c                    g }| j                   j                  d |g| j                   _        |S || j                   j                  d<   |S r)   rL  rM  s     r%   r  z%CommentedKeyMap._yaml_get_pre_comment4  rP  r'   rd  )r  r5   r2   r5   )r2   zIterator[Any]re  r4   r.   )r  r5   r]   r5   r2   r5   rh  r  r  )r6   r7   r8   r?   r|   r{   r&   r  r%  r"  r   r&  popitemr   r  r  r^  r+  r  rc   r  r  r   r8  r   r@  r   r  r9   r'   r%   r  r    s    %IN O^]K]+]]]g]
V)C
 7 7 DK &17(r'   r  c                  &    e Zd Zej                  fZy)r   N)r6   r7   r8   r?   r|   r{   r9   r'   r%   r   r   =  s    !Ir'   r   c                      e Zd Zej                  dfZdddZeef	 	 	 	 	 	 	 ddZddZ	ddZ
ddZddZdd	Zdd
ZddZy)r   odictNc                \    t               | _        t        j                  |        || |z  } y y r.   )r   r   r
   r&   )r$   ru   s     r%   r&   zCommentedSet.__init__D  s-     ]
D!FND r'   c                    |t         ur| j                  ||       y|t         ur| j                  ||       y|| j                  _        yr  r  r  s       r%   r8  zCommentedSet._yaml_add_commentJ  r  r'   c                *    | j                  ||       yr  r<  r  s      r%   r   z"CommentedSet._yaml_add_eol_commentV  r  r'   c                "    d| j                   |<   y)zAdd an element.Nr   rh   s     r%   r  zCommentedSet.addZ  s     

5r'   c                    | j                   |= y)z8Remove an element.  Do not raise an exception if absent.Nr  rh   s     r%   r  zCommentedSet.discard^  s    JJur'   c                    || j                   v S r.   r  r*   s     r%   rw   zCommentedSet.__contains__b  s    DJJr'   c              #  6   K   | j                   D ]  }|  y wr.   r  r*   s     r%   r^  zCommentedSet.__iter__e  s      	AG	r  c                ,    t        | j                        S r.   )rV   r   r#   s    r%   r+  zCommentedSet.__len__i  s    4::r'   c                >    d| j                   j                         dS )Nzset(rI   )r   r  r#   s    r%   rc   zCommentedSet.__repr__l  s    djjoo'*!,,r'   r.   )ru   r5   r2   r3   r  r  ry   rz   r4   re  rx   )r6   r7   r8   r?   r|   r{   r&   r   r8  r   r  r  rw   r^  r+  rc   r9   r'   r%   r   r   A  se    'I 29QX
&
&!.
&AN
&	
&3!-r'   r   c                  8    e Zd ZdddZd	dZd
ddZddZddZy)r   Nc                    || _         || _        |.t        |t              rt	        |      }| j                  |       y y )N)suffix)ri   styler   r/   r	   r  )r$   ri   r  r  s       r%   r&   zTaggedScalar.__init__r  s;    

?#s#os# r'   c                    | j                   S r.   r  r#   s    r%   r0   zTaggedScalar.__str__z  s    zzr'   c                <    | j                   j                  |||      S r.   )ri   rx  )r$   r   startrK   s       r%   rx  zTaggedScalar.count}  s    zz5#..r'   c                     | j                   |   S r.   r  )r$   rp   s     r%   r  zTaggedScalar.__getitem__  s    zz#r'   c                V    d| j                   d| j                  d| j                  dS )NzTaggedScalar(value=z, style=z, tag=rI   )ri   r  r  r#   s    r%   rc   zTaggedScalar.__repr__  s*    $TZZN(4::.txxlZ[\\r'   r  )ri   r5   r  r5   r  r5   r2   r3   r4   )NN)r   r/   r  Optional[int]rK   r  r2   r5   )rp   rf  r2   r5   rx   )r6   r7   r8   r&   r0   rx  r  rc   r9   r'   r%   r   r   p  s    $/]r'   r   rH   .c                N   t        | t              ryt        | d      rm|r |j                  | dt	        |        d       |j                  | j
                  d       | D ]'  }t        | |   |r||z   t        |      z   n|||       ) yt        | t              rt        | d      r|r |j                  | dt	        |        d       |j                  | j
                  d       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   rO   rP   )namer  outN)
r   r  r   writer!  r   dump_commentsr/   r   rD  )r  r  r  r  r[   r   s         r%   r  r    s   
 !Twq$/IIaQy+,		QTTHB-  	]A!A$ddSj3q6&9sX[\	]	At	D!1IIaQy+,		QTTHB- l 	FC4c#h.SX3TW		 "2	r'   )r  r5   r  r5   r  r5   r2   r3   )
r  r5   r  r/   r  r/   r  r5   r2   r3   )J
__future__r   sysr  ruamel.yaml.compatr   r   r   ruamel.yaml.scalarstringr   ruamel.yaml.anchorr   ruamel.yaml.tagr	   collections.abcr
   r   r   r   typingr5   DictOptionalListUnionIterator__all__r   r   r   r   r   cidxC_VALUE_EOL
C_ELEM_EOL	C_KEY_EOL	C_KEY_PRE
C_ELEM_PREC_VALUE_POSTC_ELEM_POSTC_VALUE_PRE
C_KEY_POST	C_TAG_EOL
C_TAG_POST	C_TAG_PREC_ANCHOR_EOLC_ANCHOR_POSTC_ANCHOR_PREr   r   r   r   r?   r   r   r   r   r   r   r  r   rr  rz  r  r  r   r  r  r  r   r   r   stdoutr  r9   r'   r%   <module>r:     s   "   + @ 1 %  ; ; 
  $   u  6 !jF	 	J!V #{fV
F	V
F	vv !"l l`	 	- -4(3 (3V" "Dy#+T= y#x1e] 1hu +S ",,c ,*%- %d; dP	 = =KmW K\", ",-:} ,-^]= ]. ')SSZZ r'   