o
    ei-                     @  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   P/home/ubuntu/transcripts/venv/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 )_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   r0   (   s   zToken.columnposc                 C  s   || j _d S r   r/   )r   r1   r   r   r   r0   ,      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   r3   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   r4   r	   r6   )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   r7   r   r8   r%   r9   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	   )r7   r   r8   r3   extend)r   r3   rA   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=   r4   r>   r9   r   r   r   add_comment_poste   r@   zToken.add_comment_postc                 C  s   t | dd S )Nr   r   r   r   r   r   r3   q   r2   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  )	r3   
isinstanceStreamEndTokenDocumentStartTokendelattrr   listrC   NotImplementedError)r   rF   rG   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   )r3   rO   )r   r3   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 )	rI   Nr   r   r	   r4   r=   rJ   rK   )r3   rL   rM   rN   rO   r   rangerQ   )r   rF   rG   rR   rS   idxr   r   r   move_new_comment   s*   
zToken.move_new_commentN)r   r
   r   r
   r   r   r   r   )r   r.   )r1   r   r   r   )r3   r   r   r   )r;   r   r   r   )r3   r   rA   r   r   r   )F)rF   r   rG   rH   r   r   )r)   
__module____qualname__r"   r   r-   propertyr0   setterr:   r<   r?   rD   rE   r3   rT   rV   rY   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   ra   r   r   r   r   c                 C  s   t | || || _|| _d S r   )r   r   r`   ra   )r   r`   ra   r   r   r   r   r   r      s   
zDirectiveToken.__init__N)
r`   r   ra   r   r   r   r   r   r   r   r)   r[   r\   r"   idr   r   r   r   r   r_          r_   c                   @     e Zd ZdZdZdS )rN   r   z<document start>Nr)   r[   r\   r"   rc   r   r   r   r   rN          rN   c                   @  re   )DocumentEndTokenr   z<document end>Nrf   r   r   r   r   rh      rg   rh   c                   @  s"   e Zd ZdZdZ	ddd
dZdS )StreamStartToken)encodingz<stream start>Nr   r   r   rj   r   r   c                 C  s   t | || || _d S r   )r   r   rj   )r   r   r   rj   r   r   r   r      s   
zStreamStartToken.__init__rB   )r   r   r   r   rj   r   r   r   rb   r   r   r   r   ri      
    ri   c                   @  re   )rM   r   z<stream end>Nrf   r   r   r   r   rM      rg   rM   c                   @  re   )BlockSequenceStartTokenr   z<block sequence start>Nrf   r   r   r   r   rl      rg   rl   c                   @  re   )BlockMappingStartTokenr   z<block mapping start>Nrf   r   r   r   r   rm      rg   rm   c                   @  re   )BlockEndTokenr   z<block end>Nrf   r   r   r   r   rn      rg   rn   c                   @  re   )FlowSequenceStartTokenr   [Nrf   r   r   r   r   ro      rg   ro   c                   @  re   )FlowMappingStartTokenr   {Nrf   r   r   r   r   rq      rg   rq   c                   @  re   )FlowSequenceEndTokenr   ]Nrf   r   r   r   r   rs     rg   rs   c                   @  re   )FlowMappingEndTokenr   }Nrf   r   r   r   r   ru   
  rg   ru   c                   @  re   )KeyTokenr   ?Nrf   r   r   r   r   rw     rg   rw   c                   @  re   )
ValueTokenr   :Nrf   r   r   r   r   ry     rg   ry   c                   @  re   )BlockEntryTokenr   -Nrf   r   r   r   r   r{     rg   r{   c                   @  re   )FlowEntryTokenr   ,Nrf   r   r   r   r   r}   !  rg   r}   c                   @     e Zd ZdZdZdd	d
ZdS )
AliasTokenra   z<alias>ra   r   r   r   r   r   c                 C     t | || || _d S r   r   r   ra   r   ra   r   r   r   r   r   r   *     
zAliasToken.__init__Nra   r   r   r   r   r   r   r   rb   r   r   r   r   r   &  rd   r   c                   @  r   )AnchorTokenr   z<anchor>ra   r   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   3  r   zAnchorToken.__init__Nr   rb   r   r   r   r   r   /  rd   r   c                   @  r   )TagTokenr   z<tag>ra   r   r   r   r   r   c                 C  r   r   r   r   r   r   r   r   <  r   zTagToken.__init__Nr   rb   r   r   r   r   r   8  rd   r   c                   @  s"   e Zd ZdZdZ	ddddZdS )ScalarToken)ra   plainstylez<scalar>Nra   r   r   r   r   r   r   r   c                 C  s$   t | || || _|| _|| _d S r   )r   r   ra   r   r   )r   ra   r   r   r   r   r   r   r   r   E  s   
zScalarToken.__init__r   )ra   r   r   r   r   r   r   r   r   r   r   r   rb   r   r   r   r   r   A  rk   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>Nra   r   r   r   r0   r   r   c                 C  s2   |d u r|d us
J || _ t| || || _d S r   )r   r   r   r   )r   ra   r   r   r0   r   r   r   r   R  s
   
zCommentToken.__init__r&   c                 C  s   t | jtr	| jS d| jS )N )rL   r   r&   r*   r   r   r   r   ra   [  s   zCommentToken.valuevalc                 C  s
   || _ d S r   )r   )r   r   r   r   r   ra   a  s   
c                 C  s   t | drt| d d S d S )Nr   )r7   rO   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!   )ra   r$   r&   r   r'   r0   )r   vr   r   r   r-   i  s   zCommentToken.__repr__otherrH   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   ra   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__rB   )
ra   r   r   r   r   r   r0   r   r   r   )r   r&   )r   r   r   r   )r   r   rZ   )r   r   r   rH   )r)   r[   r\   r"   rc   r   r]   ra   r^   r   r-   r   r   r   r   r   r   r   N  s    	


	r   N)#
__future__r   ruamel.yaml.compatr   typingr   r   r   r   r   errorr
   r$   r   r_   rN   rh   ri   rM   rl   rm   rn   ro   rq   rs   ru   rw   ry   r{   r}   r   r   r   r   r   r   r   r   r   <module>   s8    <
			