B
    |?_[Š  ã               @   s„   d dl mZmZmZmZ d dlmZ ddddg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„ ZdS )é    )Úprint_functionÚabsolute_importÚdivisionÚunicode_literals)Ú	text_typeÚScalarStringÚPreservedScalarStringÚSingleQuotedScalarStringÚDoubleQuotedScalarStringc               @   s"   e Zd ZdZdd„ Zddd„ZdS )	r   © c             O   s   t j| f|ž|ŽS )N)r   Ú__new__)ÚclsÚargsÚkwr   r   ú7lib/python3.7/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.replaceN)r   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r   r   r      s   c               @   s   e Zd ZdZdZdd„ ZdS )r   r   ú|c             C   s   t  | |¡S )N)r   r   )r   Úvaluer   r   r   r      s    zPreservedScalarString.__new__N)r   r   r   r   Ústyler   r   r   r   r   r      s   c               @   s   e Zd ZdZdZdd„ ZdS )r	   r   ú'c             C   s   t  | |¡S )N)r   r   )r   r   r   r   r   r   )   s    z SingleQuotedScalarString.__new__N)r   r   r   r   r   r   r   r   r   r   r	   $   s   c               @   s   e Zd ZdZdZdd„ ZdS )r
   r   ú"c             C   s   t  | |¡S )N)r   r   )r   r   r   r   r   r   3   s    z DoubleQuotedScalarString.__new__N)r   r   r   r   r   r   r   r   r   r   r
   .   s   c             C   s   t |  dd¡ dd¡ƒS )Nz
Ú
ú)r   r   )Úsr   r   r   Úpreserve_literal8   s    r#   c             C   s¢   ddl m} t| tƒrVx†| D ]4}| | }t||ƒrHd|krHt|ƒ| |< qt|ƒ qW nHt| tƒržx<t| ƒD ]0\}}t||ƒr’d|kr’t|ƒ| |< qjt|ƒ qjW dS )z«
    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
    r   )Ústring_typesr    N)Úruamel_yaml.compatr$   Ú
isinstanceÚdictr#   Ú	walk_treeÚlistÚ	enumerate)Úbaser$   ÚkÚvÚidxÚelemr   r   r   r(   =   s    


r(   N)Z
__future__r   r   r   r   r%   r   Ú__all__r   r   r	   r
   r#   r(   r   r   r   r   Ú<module>   s   


