a
    ͝Gd                     @   s   d dl mZ g dZG dd deZG dd deZ	e	Z
G dd deZG d	d
 d
eZG dd deZG dd deZdd ZdddZdS )    )Anchor)ScalarStringLiteralScalarStringFoldedScalarStringSingleQuotedScalarStringDoubleQuotedScalarStringPlainScalarStringPreservedScalarStringc                   @   sD   e Zd ZejZdd ZdddZedd Z	dd	d
Z
dddZdS )r   c                 O   s>   | dd }tj| g|R i |}|d ur:|j|dd |S )NanchorT)always_dump)popstr__new__yaml_set_anchor)clsargskwr
   Zret_val r   T/var/www/html/django/DPS/env/lib/python3.9/site-packages/ruamel/yaml/scalarstring.pyr      s
    zScalarString.__new__c                 C   s   t | t| |||S N)typer   replace)selfoldnewZ
maxreplacer   r   r   r       s    zScalarString.replacec                 C   s(   t | tjst| tjt  t| tjS r   )hasattrr   attribsetattrgetattr)r   r   r   r   r
   $   s    zScalarString.anchorFc                 C   s&   t | tjsd S |s| jjr"| jS d S r   )r   r   r   r
   r   )r   anyr   r   r   yaml_anchor+   s
    zScalarString.yaml_anchorc                 C   s   || j _|| j _d S r   )r
   valuer   )r   r"   r   r   r   r   r   3   s    zScalarString.yaml_set_anchorN)r   )F)F)__name__
__module____qualname__r   r   	__slots__r   r   propertyr
   r!   r   r   r   r   r   r      s   


r   c                   @   s   e Zd ZdZdZdddZdS )r   comment|Nc                 C   s   t j| ||dS N)r
   r   r   r   r"   r
   r   r   r   r   >   s    zLiteralScalarString.__new__)Nr#   r$   r%   r&   styler   r   r   r   r   r   9   s   r   c                   @   s   e Zd ZdZdZdddZdS )r   )Zfold_posr(   >Nc                 C   s   t j| ||dS r*   r+   r,   r   r   r   r   K   s    zFoldedScalarString.__new__)Nr-   r   r   r   r   r   F   s   r   c                   @   s   e Zd ZdZdZdddZdS )r   r   'Nc                 C   s   t j| ||dS r*   r+   r,   r   r   r   r   U   s    z SingleQuotedScalarString.__new__)Nr-   r   r   r   r   r   P   s   r   c                   @   s   e Zd ZdZdZdddZdS )r   r   "Nc                 C   s   t j| ||dS r*   r+   r,   r   r   r   r   _   s    z DoubleQuotedScalarString.__new__)Nr-   r   r   r   r   r   Z   s   r   c                   @   s   e Zd ZdZdZdddZdS )r   r    Nc                 C   s   t j| ||dS r*   r+   r,   r   r   r   r   i   s    zPlainScalarString.__new__)Nr-   r   r   r   r   r   d   s   r   c                 C   s   t | ddddS )Nz

)r   r   )sr   r   r   preserve_literaln   s    r6   Nc           	      C   s   ddl m}m} |du r dti}t| |r|| D ]J}| | }t|trl|D ] }||v rH|| || |<  qxqHq.t||d q.nZt| |rt| D ]F\}}t|tr|D ] }||v r|| || |<  qqqt||d qdS )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MutableSequenceNr3   )map)collections.abcr7   r8   r6   
isinstancer   	walk_tree	enumerate)	baser9   r7   r8   kvchidxelemr   r   r   r<   s   s(    



r<   )N)Zruamel.yaml.anchorr   TextAnyDictList__all__r   r   r   r	   r   r   r   r   r6   r<   r   r   r   r   <module>   s   $




