
    0;ji                        d dl mZmZ 	 d dlZd dlZddlmZ ddlmZmZm	Z	 ddl
mZ ddlmZ erd dlmZmZmZmZ nd dlmZmZmZmZ 	 g dZdZdZdZdZdZ  G d de!          Z"d Z# G d de!          Z$ G d de!          Z% G d de!          Z& G d de!          Z' G d de	e(e'          Z) G d de*e'          Z+ G d  d!e          Z, G d" d#e,e          Z- G d$ d%e,e          Z. G d& d'e,          Z/ G d( d)ee'          Z0e1d*             Z2 G d+ d,e'e          Z3 G d- d.e0          Z4 G d/ d0ee'          Z5 G d1 d2e'          Z6d3d4ej7        fd5Z8dS )6    )absolute_importprint_functionN   )ordereddict)PY2string_typesMutableSliceableSequence)ScalarString)Anchor)
MutableSetSizedSetMappingF)AnyDictOptionalListUnionr   Iterator)CommentedSeqCommentedKeySeqCommentedMapCommentedOrderedMapCommentedSetcomment_attribmerge_attrib_yaml_comment_yaml_format_yaml_line_col_yaml_merge	_yaml_tagc                       e Zd ZdZeZd Zd Zed             Z	ed             Z
e
j        d             Z
ed             Zej        d             Zd	S )
Comment)comment_items_end_startc                 0    d | _         i | _        g | _        d S N)r$   r%   r&   selfs    T/root/voice-cloning/.venv/lib/python3.11/site-packages/srsly/ruamel_yaml/comments.py__init__zComment.__init__/   s     			    c                     t          | j                  rdt          | j                  z   }nd}d                    | j        | j        |          S )Nz,
  end= z$Comment(comment={0},
  items={1}{2}))boolr&   strformatr$   r%   )r+   ends     r,   __str__zComment.__str__9   sN    	?? 	DI.CCC6==L$+s
 
 	
r.   c                     | j         S r)   r%   r*   s    r,   itemszComment.itemsC        {r.   c                     | j         S r)   r&   r*   s    r,   r4   zComment.endH   s     yr.   c                     || _         d S r)   r;   r+   values     r,   r4   zComment.endM   s     			r.   c                     | j         S r)   r'   r*   s    r,   startzComment.startR   r9   r.   c                     || _         d S r)   r@   r=   s     r,   rA   zComment.startW   s     r.   N)__name__
__module____qualname__	__slots__r   attribr-   r5   propertyr8   r4   setterrA    r.   r,   r#   r#   )   s         6IF  
 
 
   X   X 	Z  Z   X \  \  r.   r#   c                      d S r)   rJ   rJ   r.   r,   	NoCommentrL   ^   s    Dr.   c                   0    e Zd ZdZeZd Zd Zd ZddZ	dS )Format_flow_stylec                     d | _         d S r)   rO   r*   s    r,   r-   zFormat.__init__g       r.   c                     d| _         d S NTrO   r*   s    r,   set_flow_stylezFormat.set_flow_stylek   rR   r.   c                     d| _         d S NFrO   r*   s    r,   set_block_stylezFormat.set_block_styleo   s     r.   Nc                 "    | 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)rO   )r+   defaults     r,   
flow_stylezFormat.flow_styles   s     #Nr.   r)   )
rC   rD   rE   rF   format_attribrG   r-   rU   rX   r[   rJ   r.   r,   rN   rN   c   s_         IF          ! ! !           r.   rN   c                   <    e Zd ZeZd Zd Zd Zd Zd Z	d Z
d ZdS )	LineColc                 0    d | _         d | _        d | _        d S r)   )linecoldatar*   s    r,   r-   zLineCol.__init__   s    				r.   c                 6    | j         i | _         || j         |<   d S r)   rb   r+   keyrb   s      r,   add_kv_line_colzLineCol.add_kv_line_col        9DI	#r.   c                 0    |                      |dd          S Nr   r   _kvr+   ks     r,   rf   zLineCol.key       xx1a   r.   c                 0    |                      |dd          S )N      rk   rm   s     r,   r>   zLineCol.value   ro   r.   c                 N    | j         d S | j         |         }||         ||         fS r)   rd   )r+   rn   x0x1rb   s        r,   rl   zLineCol._kv   s-    94y|Bxb!!r.   c                 `    | j         d S | j         |         d         | j         |         d         fS rj   rd   r+   idxs     r,   itemzLineCol.item   s0    94y~a $)C."333r.   c                 6    | j         i | _         || j         |<   d S r)   rd   re   s      r,   add_idx_line_colzLineCol.add_idx_line_col   rh   r.   N)rC   rD   rE   line_col_attribrG   r-   rg   rf   r>   rl   ry   r{   rJ   r.   r,   r^   r^   ~   s        F    ! ! !! ! !" " "4 4 4    r.   r^   c                   &    e Zd ZdZdZeZd Zd ZdS )Tagz'store tag information for roundtrippingr>   c                     d | _         d S r)   r   r*   s    r,   r-   zTag.__init__   s    


r.   c                 ,    d                     |           S )Nz#{0.__class__.__name__}({0.value!r}))r3   r*   s    r,   __repr__zTag.__repr__   s    4;;DAAAr.   N)	rC   rD   rE   __doc__rF   
tag_attribrG   r-   r   rJ   r.   r,   r~   r~      sG        11IF  B B B B Br.   r~   c                       e Zd Zed             ZddZddZddZddZ	 dd	Z	ed
             Z
edfdZed             Zd Zd Zd Zed             Zd ZddZed             Zd ZddZd Zd Zd ZdS )CommentedBasec                     t          | t          j                  s't          | t          j        t                                 t	          | t          j                  S r)   )hasattrr#   rG   setattrgetattrr*   s    r,   cazCommentedBase.ca   B     tW^,, 	5D'.'))444tW^,,,r.   Fc                     |d S |s| j         j        g | j         _        | j         j                            |           d S r)   )r   r4   extend)r+   r$   clears      r,   yaml_end_comment_extendz%CommentedBase.yaml_end_comment_extend   sD    ?F 	DGK'DGK7#####r.   c                    | j         j                            |g d          }|s|d         1|d         t          |d         t                    sJ |d         |d<   n!|d                             |d                    |d         |d<   d S )NNNNNr   r   r   r%   
setdefault
isinstancelistr   r+   rf   r$   r   rs        r,   yaml_key_comment_extendz%CommentedBase.yaml_key_comment_extend       GN%%c+C+C+CDD 	$AaDLqz%!'!*d333331:AaDDaDKK
###qz!r.   c                    | j         j                            |g d          }|s|d         1|d         t          |d         t                    sJ |d         |d<   n!|d                             |d                    |d         |d<   d S )Nr   rr   r   r   rq   r   r   s        r,   yaml_value_comment_extendz'CommentedBase.yaml_value_comment_extend   r   r.   r   c                    ddl m} ddlm} |                                 }|d         dk    r
|dd         } ||          }|                    d          D ](}|                     |d|z   dz   |d                     )dS )zoverwrites any preceding comment lines on an object
        expects comment to be without `#` and possible have multiple lines
        r   CommentMarkCommentToken
N# )errorr   tokensr   _yaml_get_pre_commentsplitappend)r+   r$   indentr   r   pre_comments
start_markcoms           r,   yaml_set_start_commentz$CommentedBase.yaml_set_start_comment   s    
 	'&&&&&((((((11332;$crclG [((
==&& 	S 	SCTCZ$->
D Q QRRRR	S 	Sr.   Nc                    ddl m} ddlm fd}||dz   }|r)t	          |          dk    r|d         d	k    r
|dd         }|r|d         d	k    r
|dd         } ||          }| j        j                            |dg ddg          }	|d	k    r&|	d                              |d
|                     n?|r=|	                    d	          D ]'}
|	d                              ||
|                     (|rU ||          }|	d         g |	d<   |	                    d	          D ])}
|	d                              ||
|                     (dS dS )zc
        expects comment (before/after) to be without `#` and possible have multiple lines
        r   r   r   c                 2     | rdnd| z   dz   |d           S )Nr   r0   r   rJ   )smarkr   s     r,   comment_tokenzFCommentedBase.yaml_set_comment_before_after_key.<locals>.comment_token   s,      <!2a 7$ >dKKKr.   Nrq   r   r   r   r0   rr   )
srsly.ruamel_yaml.errorr   srsly.ruamel_yaml.tokensr   lenr   r8   r   r   r   )r+   rf   beforer   afterafter_indentr   r   r   cr   r   s              @r,   !yaml_set_comment_before_after_keyz/CommentedBase.yaml_set_comment_before_after_key   s    	877777999999	L 	L 	L 	L 	L
 !A:L 	!s6{{QF2J$,>,>CRC[F 	U2Y$&&#2#JE [((
GM$$S4T4*@AAT>>aDKKb*556666 	<||D)) < <!MM#z::;;;; 	<$\22Jt|!{{4(( < <!MM#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   rN   rG   r   r   r*   s    r,   fazCommentedBase.fa  sB     tV]++ 	3D&-222tV]+++r.   c                 "   ddl m} ddlm} |)	 |                     |          }n# t
          $ r d}Y nw xY w|d         dk    rd|z   }||d         dk    rd|z   }d} ||          } |||d          dg}|                     ||	           dS )
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    rf   )r   r   r   r   _yaml_get_columnAttributeError_yaml_add_eol_comment)r+   r$   rf   columnr   r   r   cts           r,   yaml_add_eol_commentz"CommentedBase.yaml_add_eol_comment  s     	)(((((&&&&&&>..s33!   1:WnG>qzS  - [((
l7J55t<""23"/////s   & 55c                     t          | t          j                  s't          | t          j        t                                 t	          | t          j                  S r)   )r   r^   rG   r   r   r*   s    r,   lczCommentedBase.lc3  r   r.   c                 6    || j         _        || j         _        d S r)   )r   r`   ra   )r+   r`   ra   s      r,   _yaml_set_line_colz CommentedBase._yaml_set_line_col:  s    r.   c                 <    | j                             ||           d S r)   )r   rg   re   s      r,   _yaml_set_kv_line_colz#CommentedBase._yaml_set_kv_line_col?  s     T*****r.   c                 <    | j                             ||           d S r)   )r   r{   re   s      r,   _yaml_set_idx_line_colz$CommentedBase._yaml_set_idx_line_colC  s       d+++++r.   c                     t          | t          j                  s't          | t          j        t                                 t	          | t          j                  S r)   )r   r   rG   r   r   r*   s    r,   anchorzCommentedBase.anchorG  sB     tV]++ 	3D&-222tV]+++r.   c                 H    t          | t          j                  sd S | j        S r)   )r   r   rG   r   r*   s    r,   yaml_anchorzCommentedBase.yaml_anchorN  s#    tV]++ 	4{r.   c                 6    || j         _        || j         _        d S r)   )r   r>   always_dump)r+   r>   r   s      r,   yaml_set_anchorzCommentedBase.yaml_set_anchorT  s    !"-r.   c                     t          | t          j                  s't          | t          j        t                                 t	          | t          j                  S r)   )r   r~   rG   r   r   r*   s    r,   tagzCommentedBase.tagY  sB     tSZ(( 	-D#*cee,,,tSZ(((r.   c                     || j         _        d S r)   )r   r>   r=   s     r,   yaml_set_tagzCommentedBase.yaml_set_tag`  s    r.   c                 R   t           j        t          j        t          j        t          j        t
          j        t          fD ]f}t          | |          rT|3t          ||t          j
        t          | ||                               Gt          ||t          | |                     gd S r)   )r#   rG   rN   r^   r   r~   r   r   r   copydeepcopyr   )r+   tmemoas       r,   copy_attributeszCommentedBase.copy_attributesd  s     .&-*l, 	4 	4AtQ 4#Aq$-a0F0F"G"GHHHHAq'$"2"2333	4 	4r.   c                     t           r)   NotImplementedErrorr+   r$   rf   s      r,   r   z#CommentedBase._yaml_add_eol_commentp      !!r.   c                     t           r)   r   r*   s    r,   r   z#CommentedBase._yaml_get_pre_commentt  r   r.   c                     t           r)   r   r+   rf   s     r,   r   zCommentedBase._yaml_get_columnx  r   r.   )Fr   )Nr   NNr)   )rC   rD   rE   rH   r   r   r   r   r   r   r   rL   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r.   r,   r   r      s       - - X-$ $ $ $	 	 	 		 	 	 	S S S S  DH!< !< !< !<F , , X, 1:$ 0 0 0 02 - - X-  
+ + +, , , , , X,  . . . .
 ) ) X)  	4 	4 	4 	4" " "" " "" " " " "r.   r   c                       e Zd Zej        dfZd Zd Zd ZddZ	d Z
d Zd	 Zd
 ZefdZd Zd Zd Zd Zd Zd ZddZd ZdS )r   _lstc                 0    t          j        | g|R i | d S r)   )r   r-   r+   argskws      r,   r-   zCommentedSeq.__init__  s(    d(T(((R(((((r.   c                 8    t                               | |          S r)   r   __getitem__rw   s     r,   __getsingleitem__zCommentedSeq.__getsingleitem__  s    c***r.   c                 *   |t          |           k     rct          |t                    rNt          |t                    s9t          | |         t                    r t	          | |                   |          }t
                              | ||           d S r)   )r   r   r   r
   typer   __setitem__)r+   rx   r>   s      r,   __setsingleitem__zCommentedSeq.__setsingleitem__  s     T??5,///"5,77/ tCy,77/
 (T#Y..sE*****r.   Nc                     t                               | |           | j        j                            |d            t          | j        j                  D ]8}||k     r	| j        j                            |          | j        j        |dz
  <   9d S Nr   )r   __delitem__r   r8   popsorted)r+   rx   
list_indexs      r,   __delsingleitem__zCommentedSeq.__delsingleitem__  s    s####t$$$ // 	J 	JJC,0GM,=,=j,I,IDGM*q.))	J 	Jr.   c                 6    t                               |           S r)   )r   __len__r*   s    r,   r  zCommentedSeq.__len__  s    ||D!!!r.   c                     t                               | ||           t          | j        j        d          D ]:}||k     r dS | j        j                            |          | j        j        |dz   <   ;dS )z5the comments after the insertion have to move forwardTreverser   N)r   insertr   r   r8   r   )r+   rx   valr   s       r,   r  zCommentedSeq.insert  s     	D#s### === 	J 	JJC,0GM,=,=j,I,IDGM*q.))	J 	Jr.   c                 <    t                               | |           d S r)   )r   r   )r+   r  s     r,   r   zCommentedSeq.extend  s    D#r.   c                 8    t                               | |          S r)   )r   __eq__r+   others     r,   r	  zCommentedSeq.__eq__  s    {{4'''r.   c                 `    |t           ur|                     ||           d S || j        _        d S r)   rL   r   r   r$   r   s      r,   _yaml_add_commentzCommentedSeq._yaml_add_comment  6    i((g66666%DGOOOr.   c                 4    |                      ||           d S Nr   r  r   s      r,   r   z"CommentedSeq._yaml_add_eol_comment  !    wC00000r.   c                 F    | j         j        |         d         j        j        S Nr   r   r8   r   r   r   s     r,   _yaml_get_columnXzCommentedSeq._yaml_get_columnX      w}S!!$/66r.   c                     d }d }|dz
  |dz   }}|| j         j        v r|}n?|| j         j        v r|}n.t          |           D ]\  }}||k    r n|| j         j        vr|}||                     |          }|S r   r   r8   	enumerater  r+   rf   r   sel_idxprepostrow_idx_k1s           r,   r   zCommentedSeq._yaml_get_column      !GS1WT$'-GGTW]""GG !*$ " "c>>E$'-//!++G44Fr.   c                 ^    g }| j         j        d |g| j         _        n|| j         j        d<   |S r   r   r$   r+   r   s     r,   r   z"CommentedSeq._yaml_get_pre_comment  5    7?"#\2DGOO!-DGOAr.   c                     |                                  }||t          |           <   | D ]A}|                    t          j        ||                     |                     ||           B|S N)r   )	__class__idr   r   r   r   r+   r   resrn   s       r,   __deepcopy__zCommentedSeq.__deepcopy__  sn    nnRXX 	1 	1AJJt}Q--...  4 0000
r.   c                 8    t                               | |          S r)   )r   __add__r
  s     r,   r/  zCommentedSeq.__add__  s    ||D%(((r.   Fc           
      r    |_t          t           t          t                                         |          }t                               d |D                        nt          t          t          |t                                                   t          t                                         |          }t                                fd|D                         j        j	        }i  j        _
        t          |          D ]&\  }}|d         }||v r||          j        j	        |<   'd S )Nr  c                     g | ]
}|d          S r   rJ   ).0xs     r,   
<listcomp>z%CommentedSeq.sort.<locals>.<listcomp>  s     7 7 7!1 7 7 7r.   c                 R    g | ]#}t                               |d                    $S )r   r   )r2  r3  r+   s     r,   r4  z%CommentedSeq.sort.<locals>.<listcomp>  s-     O O O!!1!1$!!=!= O O Or.   r   )r   zipranger   r   r-   map__iter__r   r8   r%   r  )r+   rf   r  tmp_lstitmrx   r3  	old_indexs   `       r,   sortzCommentedSeq.sort  s(   ;SuSYY'7'788'JJJGMM$ 7 7w 7 7 78888CT]]400115T3C3CDDg  G MM$ O O O Ow O O OPPPgm(( 	4 	4FC!IC%(^c"	4 	4r.   c                 6    t                               |           S r)   )r   r   r*   s    r,   r   zCommentedSeq.__repr__  s    }}T"""r.   r)   rW   )rC   rD   rE   r#   rG   rF   r-   r   r   r   r  r  r   r	  rL   r  r   r  r   r   r-  r/  r=  r   rJ   r.   r,   r   r   }  s:       (I) ) )+ + +
+ 
+ 
+J J J J" " "J J J  ( ( ( .7 & & & &1 1 17 7 7  *    ) ) )4 4 4 4"# # # # #r.   r   c                   4    e Zd ZdZefdZd Zd Zd Zd Z	dS )r   zEThis primarily exists to be able to roundtrip keys that are sequencesc                 `    |t           ur|                     ||           d S || j        _        d S r)   r  r   s      r,   r  z!CommentedKeySeq._yaml_add_comment  r  r.   c                 4    |                      ||           d S r  r  r   s      r,   r   z%CommentedKeySeq._yaml_add_eol_comment  r  r.   c                 F    | j         j        |         d         j        j        S r  r  r   s     r,   r  z!CommentedKeySeq._yaml_get_columnX  r  r.   c                     d }d }|dz
  |dz   }}|| j         j        v r|}n?|| j         j        v r|}n.t          |           D ]\  }}||k    r n|| j         j        vr|}||                     |          }|S r   r  r  s           r,   r   z CommentedKeySeq._yaml_get_column  r"  r.   c                 ^    g }| j         j        d |g| j         _        n|| j         j        d<   |S r   r$  r%  s     r,   r   z%CommentedKeySeq._yaml_get_pre_comment)  r&  r.   N)
rC   rD   rE   r   rL   r  r   r  r   r   rJ   r.   r,   r   r     sm        OO-6 & & & &1 1 17 7 7  *    r.   r   c                       e Zd ZdZd Zd ZdS )CommentedMapView_mappingc                     || _         d S r)   rG  )r+   mappings     r,   r-   zCommentedMapView.__init__6  s    r.   c                 .    t          | j                  }|S r)   )r   rH  )r+   counts     r,   r  zCommentedMapView.__len__:  s    DM""r.   N)rC   rD   rE   rF   r-   r  rJ   r.   r,   rF  rF  3  s7        I         r.   rF  c                   4    e Zd ZdZed             Zd Zd ZdS )CommentedMapKeysViewrJ   c                      t          |          S r)   setr+   its     r,   _from_iterablez#CommentedMapKeysView._from_iterableC       2wwr.   c                     || j         v S r)   rG  r   s     r,   __contains__z!CommentedMapKeysView.__contains__H  s    dm##r.   c              #   &   K   | j         D ]}|V  d S r)   rG  r+   r3  s     r,   r9  zCommentedMapKeysView.__iter__L  s.        	 	AGGGG	 	r.   NrC   rD   rE   rF   classmethodrT  rW  r9  rJ   r.   r,   rN  rN  @  sP        I  [$ $ $    r.   rN  c                   4    e Zd ZdZed             Zd Zd ZdS )CommentedMapItemsViewrJ   c                      t          |          S r)   rP  rR  s     r,   rT  z$CommentedMapItemsView._from_iterableV  rU  r.   c                 V    |\  }}	 | j         |         }||k    S # t          $ r Y dS w xY wrW   )rH  KeyError)r+   ry   rf   r>   vs        r,   rW  z"CommentedMapItemsView.__contains__[  sL    
U	c"A :  	 	 	55	s    
((c              #   d   K   | j                                         D ]}|| j         |         fV  d S r)   rH  _keysr   s     r,   r9  zCommentedMapItemsView.__iter__e  sH      =&&(( 	, 	,Cc*+++++	, 	,r.   NrZ  rJ   r.   r,   r]  r]  S  sP        I  [  , , , , ,r.   r]  c                       e Zd ZdZd Zd ZdS )CommentedMapValuesViewrJ   c                 B    | j         D ]}|| j         |         k    r dS dS )NTFrG  )r+   r>   rf   s      r,   rW  z#CommentedMapValuesView.__contains__n  s6    = 	 	Cc***tt +ur.   c              #   `   K   | j                                         D ]}| j         |         V  d S r)   rc  r   s     r,   r9  zCommentedMapValuesView.__iter__u  sC      =&&(( 	% 	%C-$$$$$	% 	%r.   N)rC   rD   rE   rF   rW  r9  rJ   r.   r,   rf  rf  k  s7        I  % % % % %r.   rf  c                   F   e Zd Zej        ddfZd ZeefdZd Z	d Z
d Zd Zd	 Zd.dZd/dZd Zd Zd Zd Zd.dZd Zd Zd Zd Zd Zd Zd Zer
d Zd Zd Znd Zerd Z d Z!d  Z"d! Z#nd" Z!d# Z$er
d$ Z%d% Z&d& Z'nd' Z%e(d(             Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d
S )0r   _ok_refc                 d    t                      | _        g | _        t          j        | g|R i | d S r)   )rQ  rj  rk  r   r-   r   s      r,   r-   zCommentedMap.__init__~  s;    55	T/D///B/////r.   c                     |t           ur|                     ||           dS |t           ur|                     ||           dS || j        _        dS z>values is set to key to indicate a value attachment of commentNrL   r   r   r   r$   r+   r$   rf   r>   s       r,   r  zCommentedMap._yaml_add_comment  ^     i((g666F	!!**5':::::%DGOOOr.   c                 4    |                      ||           dS z6add on the value line, with value specified by the keyr   Nr  r   s      r,   r   z"CommentedMap._yaml_add_eol_comment  #     	wc22222r.   c                 F    | j         j        |         d         j        j        S )Nrq   r  r   s     r,   r  zCommentedMap._yaml_get_columnX  r  r.   c                     d }d }d\  }}}| D ]}|
||k    r|} n||k    r|}|}|| j         j        v r|}n/|| j         j        v r|}n| D ]}||k    r n|| j         j        vr|}||                     |          }|S )NNNN)r   r8   r  )	r+   rf   r   r  r  r  lastr3  k1s	            r,   r   zCommentedMap._yaml_get_column  s    *T4 	 	A188CxxDD$'-GGTW]""GG   99ETW]**++G44Fr.   c                 ^    g }| j         j        d |g| j         _        n|| j         j        d<   |S r   r$  r%  s     r,   r   z"CommentedMap._yaml_get_pre_comment  r&  r.   c                 :   	 t          j        | |           n # t          $ r |D ]}||         | |<   Y nw xY w	 | j                            |                                           d S # t
          $ r) |D ]"}| j                            |d                    #Y d S w xY wr  )r   update	TypeErrorrj  keysr   add)r+   valsr3  s      r,   r|  zCommentedMap.update  s    	"tT**** 	" 	" 	" " "q'Q" "	"	#HOODIIKK((((( 	# 	# 	# # #QqT""""# # #	#s    55,A' '/BBNc                     t          j        | |||           | j                            |           ||                     ||           dS dS )zPinsert key value into given position
        attach comment if provided
        Nr   )r   r  rj  r  r   )r+   posrf   r>   r$   s        r,   r  zCommentedMap.insert  s\    
 	4c5111S%%g3%77777 r.   Fc                     t          |t                    s|                     ||          S fd	  |d|           S # t          $ r |cY S t          t
          f$ r s |cY S w xY w)z/multi-level get that expects dicts within dictsc                     st          |t                    sJ |t          |           k    r+|t          |           k    rt          || |dz
                    S  | |dz   || |dz
                              S r   )r   dictr   
IndexError)key_listleveldget_one_levellist_oks      r,   r  z)CommentedMap.mlget.<locals>.get_one_level  s     +!!T*****H%%3x==(($$%!),-- =519a8K6LMMMr.   r   )r   r   getr`  r}  r  )r+   rf   rZ   r  r  s      `@r,   mlgetzCommentedMap.mlget  s     #t$$ 	*88C)))	N 	N 	N 	N 	N 	N	 =a... 	 	 	NNN:& 	 	 	 NNN	s   A A(A('A(c                     	 t          j        | |          S # t          $ r7 t          | t          g           D ]}||d         v r|d         |         c cY S  w xY wr   )r   r   r`  r   r   )r+   rf   mergeds      r,   r   zCommentedMap.__getitem__  s    	*4555 	 	 	!$b99 * *&)##!!9S>))))) $		s    <AAc                 4   || v rct          |t                    rNt          |t                    s9t          | |         t                    r t          | |                   |          }t	          j        | ||           | j                            |           d S r)   )r   r   r
   r   r   r   rj  r  )r+   rf   r>   s      r,   r   zCommentedMap.__setitem__  s     $;;5,///"5,77/ tCy,77/
 (T#Y..c5111Sr.   c                     || j         v rdS d S rT   )rj  r   s     r,   _unmerged_containszCommentedMap._unmerged_contains  s    $(??4tr.   c                 F    t          t          j        | |                    S r)   )r1   r   rW  r   s     r,   rW  zCommentedMap.__contains__  s    K,T377888r.   c                 @    	 |                      |          S #  |cY S xY wr)   )r   )r+   rf   rZ   s      r,   r  zCommentedMap.get  s-    	##C(((	NNNs    c                 R    t          j        |                               dd          S )Nr   r   )r   r   replacer*   s    r,   r   zCommentedMap.__repr__  s#    #D))11.-PPPr.   c              #   |   K   t          j        |           D ]$}|| j        v r|t          j        | |          fV  %d S r)   )r   r9  rj  r   rY  s     r,   non_merged_itemszCommentedMap.non_merged_items  sT      %d++ 	: 	:ADH}}0q999999	: 	:r.   c                     | j                             |           t          j        | |           | j        D ]}|                    |           d S r)   )rj  discardr   r   rk  update_key_value)r+   rf   referers      r,   r   zCommentedMap.__delitem__"  s_     	c***y 	* 	*G$$S))))	* 	*r.   c              #   @   K   t          j        |           D ]}|V  d S r)   r   r9  rY  s     r,   r9  zCommentedMap.__iter__6  5      %d++ 	 	AGGGG	 	r.   c              #   @   K   t          j        |           D ]}|V  d S r)   r  rY  s     r,   rd  zCommentedMap._keys;  r  r.   c                 D    t          t          j        |                     S r)   )intr   r  r*   s    r,   r  zCommentedMap.__len__@  s    ;&t,,---r.   c                 B    t          t          |           |k              S r)   )r1   r  r
  s     r,   r	  zCommentedMap.__eq__D  s    DJJ%'(((r.   c                 D    t          |                                           S r)   )r   rd  r*   s    r,   r~  zCommentedMap.keysJ  s    

%%%r.   c                 *    |                                  S r)   )rd  r*   s    r,   iterkeyszCommentedMap.iterkeysN  s    ::<<r.   c                      t          |           S r)   rN  r*   s    r,   viewkeyszCommentedMap.viewkeysR      '---r.   c                      t          |           S r)   r  r*   s    r,   r~  zCommentedMap.keysX  r  r.   c              #   f   K   t          j        |           D ]}t          j        | |          V  d S r)   r   r9  r   rY  s     r,   _valueszCommentedMap._values^  sF       )$// 7 7!-dA6666667 7r.   c                 D    t          |                                           S r)   )r   r  r*   s    r,   valueszCommentedMap.valuesc  s    '''r.   c                 *    |                                  S r)   )r  r*   s    r,   
itervalueszCommentedMap.itervaluesg  s    <<>>!r.   c                      t          |           S r)   rf  r*   s    r,   
viewvalueszCommentedMap.viewvaluesk      )$///r.   c                      t          |           S r)   r  r*   s    r,   r  zCommentedMap.valuesq  r  r.   c              #   j   K   t          j        |           D ]}|t          j        | |          fV  d S r)   r  rY  s     r,   r%   zCommentedMap._itemsu  sK      %d++ 	6 	6A[,T15555555	6 	6r.   c                 D    t          |                                           S r)   )r   r%   r*   s    r,   r8   zCommentedMap.items|  s    &&&r.   c                 *    |                                  S r)   r7   r*   s    r,   	iteritemszCommentedMap.iteritems  s    ;;== r.   c                      t          |           S r)   r]  r*   s    r,   	viewitemszCommentedMap.viewitems      (...r.   c                      t          |           S r)   r  r*   s    r,   r8   zCommentedMap.items  r  r.   c                     t          | t                    st          | t          g            t          | t                    S r)   )r   r   r   r   r*   s    r,   mergezCommentedMap.merge  s8     t\** 	,D,+++t\***r.   c                      t          |                       }|                                 D ]
\  }}|||<   |                     |           |S r)   )r   r%   r   )r+   r3  rn   ra  s       r,   r   zCommentedMap.copy  sR    DJJLLKKMM 	 	DAqAaDDQr.   c                 P    || j         vr| j                             |           d S d S r)   )rk  r   )r+   cms     r,   add_referentzCommentedMap.add_referent  s3    TYIR      r.   c                    |D ]i}|d                              |            |d                                         D ]1\  }}t          j        | |          rt          j        | ||           2j| j                            |           d S r   )r  r8   r   rW  r   r  r   )r+   r>   ra  rn   s       r,   add_yaml_mergezCommentedMap.add_yaml_merge  s     	4 	4AaDd###!

 4 41+D!44 'a33334 	
%     r.   c                     || j         v rd S | j        D ]1}||d         v r%t          j        | ||d         |                     d S 2t          j        | |           d S r   )rj  r  r   r   r   )r+   rf   ra  s      r,   r  zCommentedMap.update_key_value  st    $(??F 	 	Aad{{'c1Q49===  	c*****r.   c                     |                                  }||t          |           <   | D ] }t          j        | |         |          ||<   !|                     ||           |S r(  )r)  r*  r   r   r   r+  s       r,   r-  zCommentedMap.__deepcopy__  sh    nnRXX 	2 	2A]47D11CFFSt,,,
r.   r)   rW   )/rC   rD   rE   r#   rG   rF   r-   rL   r  r   r  r   r   r|  r  r  r   r   r  rW  r  r   r  r   r9  rd  r  r	  r   r~  r  r  r  r  r  r  r%   r8   r  r  rH   r  r   r  r  r  r-  rJ   r.   r,   r   r   {  s       /I0 0 0 .7i 	& 	& 	& 	&3 3 3
7 7 7  8  # # #8 8 8 8   4      9 9 9   Q Q Q: : :* * *(  
  
. . .) ) )  .	& 	& 	&	  	  	 	. 	. 	. 	.	. 	. 	.  0	7 	7 	7
	( 	( 	(	" 	" 	"	0 	0 	0 	0	0 	0 	06 6 6
  /	' 	' 	'	! 	! 	!	/ 	/ 	/ 	/	/ 	/ 	/ + + X+  ! ! !
! ! !+ + +    r.   r   c                 P    t          d                    | j                            )Nz{} objects are immutable)r}  r3   rC   )clsr   kwargss      r,   raise_immutabler    s#     .55clCC
D
DDr.   c                       e Zd Zej        dfZ	 d ZexZxZ	xZ
xZxZxZZd Zd Zd Zd Zd Zedd	            Zefd
Zd Zd Zd Zd ZdS )CommentedKeyMap_odc                     t          | d          rt          |            	 t          |i || _        d S # t          $ r8 t
          r/t          |d                                                   | _        Y d S  w xY w)Nr  r   )r   r  r   r  r}  r   r8   r   s      r,   r-   zCommentedKeyMap.__init__  s    4 	"D!!!	"D/B//DHHH 	 	 	 &tAw}}77		s   4 =A64A6c                     | j         |         S r)   )r  )r+   indexs     r,   r   zCommentedKeyMap.__getitem__  s    xr.   c              #   J   K   | j                                         D ]}|V  d S r)   )r  r9  rY  s     r,   r9  zCommentedKeyMap.__iter__  s8      ""$$ 	 	AGGGG	 	r.   c                 *    t          | j                  S r)   )r   r  r*   s    r,   r  zCommentedKeyMap.__len__  s    48}}r.   c                 ^    t          t          |                                                     S r)   )hashtupler8   r*   s    r,   __hash__zCommentedKeyMap.__hash__  s     E$**,,''(((r.   c                     t          | t                    s| j                                        S dt	          t          | j                                                            z   dz   S )Nzordereddict())r   r   r  r   reprr   r8   r*   s    r,   r   zCommentedKeyMap.__repr__  sT    t\** 	'8$$&&&T$(..*:*:%;%; < <<sBBr.   Nc                 R    t          t                              | |                    S r)   )r  r  fromkeys)r~  ra  s     r,   r  zCommentedKeyMap.fromkeys  s      t}}T155666r.   c                 `    |t           ur|                     ||           d S || j        _        d S r)   r  r   s      r,   r  z!CommentedKeyMap._yaml_add_comment  r  r.   c                 4    |                      ||           d S r  r  r   s      r,   r   z%CommentedKeyMap._yaml_add_eol_comment  r  r.   c                 F    | j         j        |         d         j        j        S r  r  r   s     r,   r  z!CommentedKeyMap._yaml_get_columnX  r  r.   c                     d }d }|dz
  |dz   }}|| j         j        v r|}n?|| j         j        v r|}n.t          |           D ]\  }}||k    r n|| j         j        vr|}||                     |          }|S r   r  r  s           r,   r   z CommentedKeyMap._yaml_get_column  r"  r.   c                 ^    g }| j         j        d |g| j         _        n|| j         j        d<   |S r   r$  r%  s     r,   r   z%CommentedKeyMap._yaml_get_pre_comment  r&  r.   r)   )rC   rD   rE   r#   rG   rF   r-   r  r   r   r   r   popitemr   r|  r   r9  r  r  r   r[  r  rL   r  r   r  r   r   rJ   r.   r,   r  r    s2       %IN
 
 
 7FFK FFFFF *V    
  ) ) )C C C 7 7 7 [7 .7 & & & &1 1 17 7 7  *    r.   r  c                       e Zd Zej        fZdS )r   N)rC   rD   rE   r#   rG   rF   rJ   r.   r,   r   r   &  s        !IIIr.   r   c                   ^    e Zd Zej        dfZddZeefdZd Z	d Z
d Zd Zd	 Zd
 Zd ZdS )r   odictNc                 f    t                      | _        t          j        |            || |z  } d S d S r)   )r   r  r   r-   )r+   r  s     r,   r-   zCommentedSet.__init__-  s9     ]]
D!!!FNDDD r.   c                     |t           ur|                     ||           dS |t           ur|                     ||           dS || j        _        dS rn  ro  rp  s       r,   r  zCommentedSet._yaml_add_comment4  rq  r.   c                 4    |                      ||           dS rs  r  r   s      r,   r   z"CommentedSet._yaml_add_eol_comment?  rt  r.   c                     d| j         |<   dS )zAdd an element.Nr  r=   s     r,   r  zCommentedSet.addD  s     !
5r.   c                     | j         |= dS )z8Remove an element.  Do not raise an exception if absent.Nr  r=   s     r,   r  zCommentedSet.discardI  s     Jur.   c                     || j         v S r)   r  rY  s     r,   rW  zCommentedSet.__contains__N  s    DJr.   c              #   &   K   | j         D ]}|V  d S r)   r  rY  s     r,   r9  zCommentedSet.__iter__R  s,       	 	AGGGG	 	r.   c                 *    t          | j                  S r)   )r   r  r*   s    r,   r  zCommentedSet.__len__W  s    4:r.   c                 Z    d                     | j                                                  S )Nz
set({0!r}))r3   r  r~  r*   s    r,   r   zCommentedSet.__repr__[  s"    ""4:??#4#4555r.   r)   )rC   rD   rE   r#   rG   rF   r-   rL   r  r   r  r  rW  r9  r  r   rJ   r.   r,   r   r   *  s        'I    .7i 	& 	& 	& 	&3 3 3
! ! !
  
    
  6 6 6 6 6r.   r   c                       e Zd ZddZd ZdS )TaggedScalarNc                 T    || _         || _        ||                     |           d S d S r)   )r>   styler   )r+   r>   r  r   s       r,   r-   zTaggedScalar.__init__b  s6    

?c""""" ?r.   c                     | j         S r)   r   r*   s    r,   r5   zTaggedScalar.__str__i  s
    zr.   rw  )rC   rD   rE   r-   r5   rJ   r.   r,   r  r  `  s7        # # # #    r.   r  r0   .c                    t          | t                    rt          | d          r|r2t          j                            d                    |                     |                    d                    | j                             | D ]%}t          | |         |r||z   |z   n|||           &dS t          | t                    rt          | d          r|r2t          j                            d                    |                     |                    d                    | j                             t          |           D ]@\  }}t          ||r||z   t          |          z   nt          |          ||           =dS dS dS )zg
    recursively dump comments, all but the toplevel preceded by the path
    in dotted form x.0.a
    r   z{}
)namesepoutN)r   r  r   sysstdoutwriter3   r   dump_commentsr   r  r2   )r  r  r  r  rn   rx   s         r,   r   r   n  s    !T wq$//  	2JV]]400111		&--%%&&& 	X 	XA!A$%DdSj1nn1#SVWWWWW	X 	X	At		 D!1!1  	2JV]]400111		&--%%&&&ll 	 	FC4Ec#hh..SXX3TW       	 	r.   )9
__future__r   r   r  r   compatr   r   r   r	   scalarstringr
   r   r   collectionsr   r   r   r   collections.abctypingr   r   r   r   r   r   __all__r   r\   r|   r   r   objectr#   rL   rN   r^   r~   r   r   r   r  r   rF  rN  r]  rf  r   r[  r  r  r   r   r  r  r   rJ   r.   r,   <module>r	     sN   7 6 6 6 6 6 6 6 


         ? ? ? ? ? ? ? ? ? ? & & & & & &       @;;;;;;;;;;;;;????????????L= = =
 !"
1 1 1 1 1f 1 1 1j	 	 	
         V      6( ( ( ( (f ( ( (VB B B B B& B B BB" B" B" B" B"F B" B" B"JB# B# B# B# B#+T= B# B# B#J. . . . .e] . . .b
 
 
 
 
u 
 
 
    +S   &, , , , ,,c , , ,0% % % % %- % % % B B B B B; B B BL
 E E E
\ \ \ \ \mW \ \ \~" " " " ", " " "36 36 36 36 36:} 36 36 36l    =    #3:      r.   