
    Be                         d dl mZ 	 g dZ G d de      Z	 G d de	      Z
e
Z G d de	      Z G d	 d
e	      Z G d de	      Z G d de	      Zd ZddZy)    )Anchor)ScalarStringLiteralScalarStringFoldedScalarStringSingleQuotedScalarStringDoubleQuotedScalarStringPlainScalarStringPreservedScalarStringc                   R    e Zd Zej                  Zd ZddZed        Z	ddZ
ddZy)	r   c                     |j                  dd       }t        j                  | g|i |}||j                  |d       |S )NanchorT)always_dump)popstr__new__yaml_set_anchor)clsargskwr   ret_vals        8lib/python3.12/site-packages/ruamel/yaml/scalarstring.pyr   zScalarString.__new__   sH    $'++c/D/B/##F#=    c                 P     t        |       t        j                  | |||            S N)typer   replace)selfoldnew
maxreplaces       r   r   zScalarString.replace    s"    tDz3;;tS#zBDDr   c                     t        | t        j                        s#t        | t        j                  t                      t	        | t        j                        S r   )hasattrr   attribsetattrgetattr)r   s    r   r   zScalarString.anchor$   s5     tV]]+D&--2tV]]++r   c                     t        | t        j                        sy |s| j                  j                  r| j                  S y r   )r"   r   r#   r   r   )r   anys     r   yaml_anchorzScalarString.yaml_anchor+   s/    tV]]+$++));;r   c                 H    || j                   _        || j                   _        y r   )r   valuer   )r   r*   r   s      r   r   zScalarString.yaml_set_anchor3   s    !"-r   N))F)__name__
__module____qualname__r   r#   	__slots__r   r   propertyr   r(   r    r   r   r   r      s4    IE , ,.r   r   c                       e Zd ZdZdZddZy)r   comment|Nc                 2    t         j                  | ||      S N)r   r   r   r   r*   r   s      r   r   zLiteralScalarString.__new__>       ##Cv#>>r   r   r,   r-   r.   r/   styler   r1   r   r   r   r   9   s    IE?r   r   c                       e Zd ZdZdZddZy)r   )fold_posr3   >Nc                 2    t         j                  | ||      S r6   r7   r8   s      r   r   zFoldedScalarString.__new__K   r9   r   r   r:   r1   r   r   r   r   F   s    'IE?r   r   c                       e Zd ZdZdZddZy)r   r1   'Nc                 2    t         j                  | ||      S r6   r7   r8   s      r   r   z SingleQuotedScalarString.__new__U   r9   r   r   r:   r1   r   r   r   r   P       IE?r   r   c                       e Zd ZdZdZddZy)r   r1   "Nc                 2    t         j                  | ||      S r6   r7   r8   s      r   r   z DoubleQuotedScalarString.__new___   r9   r   r   r:   r1   r   r   r   r   Z   rC   r   r   c                       e Zd ZdZdZddZy)r	   r1    Nc                 2    t         j                  | ||      S r6   r7   r8   s      r   r   zPlainScalarString.__new__i   r9   r   r   r:   r1   r   r   r	   r	   d   s    IE?r   r	   c                 X    t        | j                  dd      j                  dd            S )Nz

)r   r   )ss    r   preserve_literalrN   n   s%    qyy6>>tTJKKr   Nc                 ~   ddl m}m} |dt        i}t	        | |      rF| D ]@  }| |   }t	        |t
              r|D ]  }||v s ||   |      | |<    2 4t        ||       B yt	        | |      rMt        |       D ]>  \  }}t	        |t
              r|D ]  }||v s ||   |      | |<    0 2t        ||       @ yy)a  
    the routine here walks over a simple yaml tree (recursing in
    dict values and list items) and converts strings that
    have multiple lines to literal scalars

    You can also provide an explicit (ordered) mapping for multiple transforms
    (first of which is executed):
        map = ruamel.yaml.compat.ordereddict
        map['
'] = preserve_literal
        map[':'] = SingleQuotedScalarString
        walk_tree(data, map=map)
    r   )MutableMappingMutableSequenceNrK   )map)collections.abcrP   rQ   rN   
isinstancer   	walk_tree	enumerate)	baserR   rP   rQ   kvchidxelems	            r   rU   rU   s   s     @
{%&$' 	&AQA!S! BQw")#b'!*Q
 !%	& 
D/	*"4 	)IC$$ BTz$+CGDMS	
 $C(	) 
+r   r   )ruamel.yaml.anchorr   typingTextAnyDictList__all__r   r   r   r
   r   r   r   r	   rN   rU   r1   r   r   <module>rd      sp    &
!.3 !.H?, ? , ? ??| ??| ?? ?L
%)r   