
    t                         d dl mZmZmZmZ d dlmZ 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)    )print_functionabsolute_importdivisionunicode_literals)	text_type)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)popr   __new__yaml_set_anchor)clsargskwr   ret_vals        +lib/third_party/ruamel/yaml/scalarstring.pyr   zScalarString.__new__   sJ    $'##C5$5"5##F#=    c                 P     t        |       t        j                  | |||            S N)typer   replace)selfoldnew
maxreplaces       r   r    zScalarString.replace#   s$    tDz9,,T3ZHJJr   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_anchor6   s    !"-r   N))F)__name__
__module____qualname__r   r'   	__slots__r   r    propertyr   r,   r    r   r   r	   r	      s4    IK , ,.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__A       ##Cv#>>r   r   r0   r1   r2   r3   styler   r5   r   r   r
   r
   <   s    IE?r   r
   c                       e Zd ZdZdZddZy)r   )fold_posr7   >Nc                 2    t         j                  | ||      S r:   r;   r<   s      r   r   zFoldedScalarString.__new__N   r=   r   r   r>   r5   r   r   r   r   I   s    'IE?r   r   c                       e Zd ZdZdZddZy)r   r5   'Nc                 2    t         j                  | ||      S r:   r;   r<   s      r   r   z SingleQuotedScalarString.__new__X   r=   r   r   r>   r5   r   r   r   r   S       IE?r   r   c                       e Zd ZdZdZddZy)r   r5   "Nc                 2    t         j                  | ||      S r:   r;   r<   s      r   r   z DoubleQuotedScalarString.__new__b   r=   r   r   r>   r5   r   r   r   r   ]   rG   r   r   c                       e Zd ZdZdZddZy)r   r5    Nc                 2    t         j                  | ||      S r:   r;   r<   s      r   r   zPlainScalarString.__new__l   r=   r   r   r>   r5   r   r   r   r   g   s    IE?r   r   c                 X    t        | j                  dd      j                  dd            S )Nz

)r
   r    )ss    r   preserve_literalrR   q   s%    qyy6>>tTJKKr   Nc                 j   ddl m}m}m} |dt        i}t        | |      r@| D ]:  }| |   }t        ||      r|D ]  }||v s ||   |      | |<    . 0t        |       < yt        | |      rGt        |       D ]8  \  }}	t        |	|      r|D ]  }||	v s ||   |	      | |<    , .t        |	       : 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   )string_typesMutableMappingMutableSequenceNrO   )ruamel.yaml.compatrT   rU   rV   rR   
isinstance	walk_tree	enumerate)
basemaprT   rU   rV   kvchidxelems
             r   rY   rY   v   s     QP
{%&$'AQA!\*BQw")#b'!*Q 
 !  
D/	*"4IC$-BTz$+CGDMS	 
 $ ) 
+r   r   )
__future__r   r   r   r   rW   r   ruamel.yaml.anchorr   typingTextAnyDictList__all__r	   r
   r   r   r   r   r   rR   rY   r5   r   r   <module>rj      sz    S R ( %
!.9 !.H?, ? , ? ??| ??| ?? ?L
% r   