o
    jqi-                     @  s  d dl mZ d dlmZ 	 ddl
mZ dZG dd	 d	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G dd d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G dd d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G d&d' d'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 G d0d1 d1eZ!G d2d3 d3eZ"d4S )5    )annotations)nprintfF)TextAnyDictOptionalList   )
StreamMarkTc                   @  s   e Zd ZdZd+ddZd,d
dZed-ddZejd.ddZd/ddZ	d0ddZ
d/ddZd1ddZd/ddZed,ddZd2d3d$d%Zd,d&d'Zd2d3d(d)Zd*S )4Token)
start_markend_mark_commentr   r
   r   returnNonec                 C  s   || _ || _d S N)r   r   )selfr   r    r   Y/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/ruamel/yaml/tokens.py__init__   s   
zToken.__init__r   c                   s   dd  j D }|   fdd|D }tr)z|dt jj  W n   Y z|dt j  W n   Y  jj	 dd
| dS )	Nc                 S  s   g | ]	}| d s|qS )Z_mark)endswith.0keyr   r   r   
<listcomp>   s    z"Token.__repr__.<locals>.<listcomp>c                   s    g | ]}|d t  |qS )=getattrr   r   r   r   r      s     zline: z	comment: (z, ))	__slots__sort
SHOW_LINESappendstrr   liner   	__class____name__join)r   
attributes	argumentsr   r   r   __repr__   s   zToken.__repr__intc                 C  s   | j jS r   r   columnr   r   r   r   r/   (   s   zToken.columnposc                 C  s   || j _d S r   r.   )r   r0   r   r   r   r/   ,      commentc                 C  s6   t | dsd d g| _n	t| jdv sJ || jd< d S )Nr   )      r   hasattrr   lenr   r2   r   r   r   add_post_comment;   s   
zToken.add_post_commentcommentsc                 C  sH   t | dsd d g| _n	t| jdksJ | jd d u sJ || jd< d S )Nr   r3   r	   r5   )r   r:   r   r   r   add_pre_commentsF   s   

zToken.add_pre_commentsc                 C  sV   t | dsg d d g| _nt| jdksJ | jd d u r!g | jd< | jd | d S )Nr      r   r6   r   r7   r$   r8   r   r   r   add_comment_preP      

zToken.add_comment_precomment_typec                 C  s   t | dsg d| _nt| jdksJ | jd d u sJ | jd d u r)g | jd< | jd d g|d t| jd    || jd |< d S )Nr   NNNr<   r	   )r6   r   r7   r2   extend)r   r2   r@   r   r   r   add_comment_eolY   s   

(zToken.add_comment_eolc                 C  sV   t | dsd d g g| _nt| jdksJ | jd d u r!g | jd< | jd | d S )Nr   r<   r3   r=   r8   r   r   r   add_comment_poste   r?   zToken.add_comment_postc                 C  s   t | dd S )Nr   r   r   r   r   r   r2   q   r1   zToken.commentFtargetemptyboolc                 C  s   | j }|du r	dS t|ttfrdS t| d |j }|s0|r+|d |d dd|d g}||_| S |d r8|d s@|d rb|d rbt|d trXt|d trX|d |d  n
td|d||d rl|d |d< |d rv|d |d< | S )move a comment from this token to target (normally next token)
        used to combine e.g. comments before a BlockEntryToken to the
        ScalarToken that follows it
        empty is a special for empty values -> comment after key
        Nr   r   r	   overlap in comment  )	r2   
isinstanceStreamEndTokenDocumentStartTokendelattrr   listrB   NotImplementedError)r   rE   rF   ctcr   r   r   move_old_commentu   s*   
 zToken.move_old_commentc                 C  sD   | j }|du s|d du rdS |d dg}|d du r t| d |S )z split the post part of a comment, and return it
        as comment to be added. Delete second part if [None, None]
         abc:  # this goes to sequence
           # this goes to first element
           - first element
        Nr   r	   r   )r2   rN   )r   r2   Zret_valr   r   r   split_old_comment   s   
zToken.split_old_commentc                 C  s   | j }|du r	dS t|ttfrdS t| d |j }|s.|r)|d |d |d g}||_| S tdD ]}|| durJ|| durJtd|d|q2tdD ]}|| r[|| ||< qO| S )	rH   Nr   r   r	   r3   r<   rI   rJ   )r2   rK   rL   rM   rN   r   rangerP   )r   rE   rF   rQ   rR   idxr   r   r   move_new_comment   s*   
zToken.move_new_commentN)r   r
   r   r
   r   r   r   r   )r   r-   )r0   r   r   r   )r2   r   r   r   )r:   r   r   r   )r2   r   r@   r   r   r   )F)rE   r   rF   rG   r   r   )r(   
__module____qualname__r!   r   r,   propertyr/   setterr9   r;   r>   rC   rD   r2   rS   rT   rW   r   r   r   r   r      s$    






	

 r   c                   @  s   e Zd ZdZdZdd
dZdS )DirectiveToken)namevaluez<directive>r^   r   r_   r   r   r   r   c                 C  s   t | || || _|| _d S r   )r   r   r^   r_   )r   r^   r_   r   r   r   r   r   r      s   
zDirectiveToken.__init__N)
r^   r   r_   r   r   r   r   r   r   r   r(   rY   rZ   r!   idr   r   r   r   r   r]          r]   c                   @     e Zd ZdZdZdS )rM   r   z<document start>Nr(   rY   rZ   r!   ra   r   r   r   r   rM          rM   c                   @  rc   )DocumentEndTokenr   z<document end>Nrd   r   r   r   r   rf      re   rf   c                   @  s"   e Zd ZdZdZ	ddd
dZdS )StreamStartToken)encodingz<stream start>Nr   r   r   rh   r   r   c                 C  s   t | || || _d S r   )r   r   rh   )r   r   r   rh   r   r   r   r      s   
zStreamStartToken.__init__rA   )r   r   r   r   rh   r   r   r   r`   r   r   r   r   rg      
    rg   c                   @  rc   )rL   r   z<stream end>Nrd   r   r   r   r   rL      re   rL   c                   @  rc   )BlockSequenceStartTokenr   z<block sequence start>Nrd   r   r   r   r   rj      re   rj   c                   @  rc   )BlockMappingStartTokenr   z<block mapping start>Nrd   r   r   r   r   rk      re   rk   c                   @  rc   )BlockEndTokenr   z<block end>Nrd   r   r   r   r   rl      re   rl   c                   @  rc   )FlowSequenceStartTokenr   [Nrd   r   r   r   r   rm      re   rm   c                   @  rc   )FlowMappingStartTokenr   {Nrd   r   r   r   r   ro      re   ro   c                   @  rc   )FlowSequenceEndTokenr   ]Nrd   r   r   r   r   rq     re   rq   c                   @  rc   )FlowMappingEndTokenr   }Nrd   r   r   r   r   rs   
  re   rs   c                   @  rc   )KeyTokenr   ?Nrd   r   r   r   r   ru     re   ru   c                   @  rc   )
ValueTokenr   :Nrd   r   r   r   r   rw     re   rw   c                   @  rc   )BlockEntryTokenr   -Nrd   r   r   r   r   ry     re   ry   c                   @  rc   )FlowEntryTokenr   ,Nrd   r   r   r   r   r{   !  re   r{   c                   @     e Zd ZdZdZdd	d
ZdS )
AliasTokenr_   z<alias>r_   r   r   r   r   r   c                 C     t | || || _d S r   r   r   r_   r   r_   r   r   r   r   r   r   *     
zAliasToken.__init__Nr_   r   r   r   r   r   r   r   r`   r   r   r   r   r~   &  rb   r~   c                   @  r}   )AnchorTokenr   z<anchor>r_   r   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   3  r   zAnchorToken.__init__Nr   r`   r   r   r   r   r   /  rb   r   c                   @  r}   )TagTokenr   z<tag>r_   r   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   <  r   zTagToken.__init__Nr   r`   r   r   r   r   r   8  rb   r   c                   @  s"   e Zd ZdZdZ	ddddZdS )ScalarToken)r_   plainstylez<scalar>Nr_   r   r   r   r   r   r   r   c                 C  s$   t | || || _|| _|| _d S r   )r   r   r_   r   r   )r   r_   r   r   r   r   r   r   r   r   E  s   
zScalarToken.__init__r   )r_   r   r   r   r   r   r   r   r   r   r   r   r`   r   r   r   r   r   A  ri   r   c                   @  sh   e Zd ZdZdZ	ddddZedddZejdddZd ddZ	d!ddZ
d"ddZd"ddZdS )#CommentToken)_value_columnpre_donez	<comment>Nr_   r   r   r   r/   r   r   c                 C  s2   |d u r|d us
J || _ t| || || _d S r   )r   r   r   r   )r   r_   r   r   r/   r   r   r   r   R  s
   
zCommentToken.__init__r%   c                 C  s   t | jtr	| jS d| jS )N )rK   r   r%   r)   r   r   r   r   r_   [  s   zCommentToken.valuevalc                 C  s
   || _ d S r   )r   )r   r   r   r   r   r_   a  s   
c                 C  s   t | drt| d d S d S )Nr   )r6   rN   r   r   r   r   resete  s   
zCommentToken.resetc                 C  s\   | j }tr(z|dt| jj 7 }W n   Y z|dt| jj 7 }W n   Y d| dS )Nz, line: z, col: zCommentToken(r    )r_   r#   r%   r   r&   r/   )r   vr   r   r   r,   i  s   zCommentToken.__repr__otherrG   c                 C  s4   | j |j krdS | j|jkrdS | j|jkrdS dS )NFT)r   r   r_   r   r   r   r   r   __eq__v  s   zCommentToken.__eq__c                 C  s   |  | S r   )r   r   r   r   r   __ne__  s   zCommentToken.__ne__rA   )
r_   r   r   r   r   r   r/   r   r   r   )r   r%   )r   r   r   r   )r   r   rX   )r   r   r   rG   )r(   rY   rZ   r!   ra   r   r[   r_   r\   r   r,   r   r   r   r   r   r   r   N  s    	


	r   N)#
__future__r   Zruamel.yaml.compatr   typingr   r   r   r   r   errorr
   r#   r   r]   rM   rf   rg   rL   rj   rk   rl   rm   ro   rq   rs   ru   rw   ry   r{   r~   r   r   r   r   r   r   r   r   <module>   s8    <
			