o
    P+ i7                     @  s   d dl mZ 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dZd d!ddZdS )"    )annotations)AnchorF)TextAnyDictList)SupportsIndex)ScalarStringLiteralScalarStringFoldedScalarStringSingleQuotedScalarStringDoubleQuotedScalarStringPlainScalarStringPreservedScalarStringc                   @  sN   e Zd ZejZdddZddddZedddZ	dd ddZ
dd!ddZdS )"r	   argsr   kwreturnc                 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)clsr   r   r   Zret_val r   d/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ruamel/yaml/scalarstring.pyr      s
   zScalarString.__new__oldnew
maxreplacer   c                 C  s   t | t| |||S N)typer   replace)selfr   r   r   r   r   r   r"   !      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.anchorFanyboolc                 C  s&   t | tjsd S |s| jjr| jS d S r    )r%   r   r&   r   r   )r#   r)   r   r   r   yaml_anchor*   s
   zScalarString.yaml_anchorvaluer   Nonec                 C  s   || j _|| j _d S r    )r   r,   r   )r#   r,   r   r   r   r   r   1   s   zScalarString.yaml_set_anchorN)r   r   r   r   r   r   )r   )r   r   r   r   r   r   r   r   )r   r   )F)r)   r*   r   r   )r,   r   r   r*   r   r-   )__name__
__module____qualname__r   r&   	__slots__r   r"   propertyr   r+   r   r   r   r   r   r	      s    
r	   c                   @      e Zd ZdZdZddd	d
ZdS )r
   comment|Nr,   r   r   r   r   c                 C     t j| ||dS N)r   r	   r   r   r,   r   r   r   r   r   ;      zLiteralScalarString.__new__r    r,   r   r   r   r   r   r.   r/   r0   r1   styler   r   r   r   r   r
   6       r
   c                   @  r3   )r   )Zfold_posr4   >Nr,   r   r   r   r   c                 C  r6   r7   r8   r9   r   r   r   r   G   r:   zFoldedScalarString.__new__r    r;   r<   r   r   r   r   r   B   r>   r   c                   @  r3   )r   r   'Nr,   r   r   r   r   c                 C  r6   r7   r8   r9   r   r   r   r   P   r:   z SingleQuotedScalarString.__new__r    r;   r<   r   r   r   r   r   K   r>   r   c                   @  r3   )r   r   "Nr,   r   r   r   r   c                 C  r6   r7   r8   r9   r   r   r   r   Y   r:   z DoubleQuotedScalarString.__new__r    r;   r<   r   r   r   r   r   T   r>   r   c                   @  r3   )r   r    Nr,   r   r   r   r   c                 C  r6   r7   r8   r9   r   r   r   r   b   r:   zPlainScalarString.__new__r    r;   r<   r   r   r   r   r   ]   r>   r   sr   r   c                 C  s   t | ddddS )Nz

)r
   r"   )rC   r   r   r   preserve_literalf   r$   rF   Nbaser   mapr-   c           	      C  s   ddl m}m} |du rdti}t| |r?| D ]%}| | }t|tr6|D ]}||v r4|| || |<  nq$qt||d qdS t| |rlt| D ]%\}}t|tre|D ]}||v rc|| || |<  nqSqHt||d qHdS d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MutableSequenceNrD   )rH   )collections.abcrI   rJ   rF   
isinstancer   	walk_tree	enumerate)	rG   rH   rI   rJ   kvchidxelemr   r   r   rM   j   s6   


	
rM   )rC   r   r   r   r    )rG   r   rH   r   r   r-   )
__future__r   Zruamel.yaml.anchorr   typingr   r   r   r   Zruamel.yaml.compatr   __all__r   r	   r
   r   r   r   r   r   rF   rM   r   r   r   r   <module>   s   				
	