a
    ܌xd,                     @   s  d dl mZ d dlmZmZmZmZ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 d.d/ d/eZG d0d1 d1eZ d2S )3    )nprintf)TextAnyDictOptionalList   )
StreamMarkTc                   @   s   e Zd ZdZeeddddZedddZee	dd	d
Z
e
jedddd
Z
eddddZeddddZeddddZeeddddZeddddZeedddZd$eeedddZedd d!Zd%eeedd"d#ZdS )&Token)
start_markend_mark_commentN)r   r   returnc                 C   s   || _ || _d S N)r   r   )selfr   r    r   J/var/www/html/Ranjet/env/lib/python3.9/site-packages/ruamel/yaml/tokens.py__init__   s    zToken.__init__r   c                    s   dd  j D }|   fdd|D }trVz|dt jj  W n   Y n0 z|dt j  W n   Y n0  jj	 dd
| dS )	Nc                 S   s   g | ]}| d s|qS )Z_mark)endswith.0keyr   r   r   
<listcomp>       z"Token.__repr__.<locals>.<listcomp>c                    s    g | ]}|d t  |qS )=getattrr   r   r   r   r      r   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__c                 C   s   | j jS r   r   columnr   r   r   r   r.   &   s    zToken.column)posr   c                 C   s   || j _d S r   r-   )r   r/   r   r   r   r.   *   s    )commentr   c                 C   s6   t | dsd d g| _nt| jdv s(J || jd< d S )Nr   )      r   hasattrr   lenr   r0   r   r   r   add_post_comment9   s    
zToken.add_post_comment)commentsr   c                 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   r1   r   r3   )r   r8   r   r   r   add_pre_commentsD   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 rBg | jd< | jd | d S )Nr      r   r4   r   r5   r$   r6   r   r   r   add_comment_preN   s    

zToken.add_comment_pre)r0   comment_typer   c                 C   s   t | dsg d| _n$t| jdks(J | jd d u s:J | jd d u rRg | jd< | jd d g|d t| jd    || jd |< d S )Nr   )NNNr:   r   )r4   r   r5   r0   extend)r   r0   r=   r   r   r   add_comment_eolW   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 rBg | jd< | jd | d S )Nr   r:   r1   r;   r6   r   r   r   add_comment_postc   s    

zToken.add_comment_postc                 C   s   t | dd S )Nr   r   r   r   r   r   r0   o   s    zToken.commentF)targetemptyr   c                 C   s   | j }|du rdS t|ttfr$dS t| d |j }|s`|rV|d |d dd|d g}||_| S |d rp|d s|d r|d rtd|d||d r|d |d< |d r|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  )r0   
isinstanceStreamEndTokenDocumentStartTokendelattrr   NotImplementedError)r   rA   rB   ctcr   r   r   move_old_comments   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   )r0   rI   )r   r0   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\|rR|d |d |d g}||_| S tdD ]0}|| durd|| durdtd|d|qdtdD ]}|| r|| ||< q| S )	rC   Nr   r   r   r1   r:   rD   rE   )r0   rF   rG   rH   rI   r   rangerJ   )r   rA   rB   rK   rL   idxr   r   r   move_new_comment   s&    
zToken.move_new_comment)F)F)r(   
__module____qualname__r!   r	   r   r   r,   propertyintr.   setterr7   r9   r<   r?   r@   r0   boolrM   rN   rQ   r   r   r   r   r
      s"   
	r
   c                   @   s*   e Zd ZdZdZeeeeddddZdS )DirectiveToken)namevaluez<directive>N)rY   rZ   r   r   r   c                 C   s   t | || || _|| _d S r   )r
   r   rY   rZ   )r   rY   rZ   r   r   r   r   r   r      s    zDirectiveToken.__init__r(   rR   rS   r!   idr   r   r   r   r   r   rX      s   rX   c                   @   s   e Zd ZdZdZdS )rH   r   z<document start>Nr(   rR   rS   r!   r\   r   r   r   r   rH      s   rH   c                   @   s   e Zd ZdZdZdS )DocumentEndTokenr   z<document end>Nr]   r   r   r   r   r^      s   r^   c                   @   s*   e Zd ZdZdZdeeeddddZdS )StreamStartToken)encodingz<stream start>N)r   r   r`   r   c                 C   s   t | || || _d S r   )r
   r   r`   )r   r   r   r`   r   r   r   r      s    zStreamStartToken.__init__)NNNr[   r   r   r   r   r_      s    r_   c                   @   s   e Zd ZdZdZdS )rG   r   z<stream end>Nr]   r   r   r   r   rG      s   rG   c                   @   s   e Zd ZdZdZdS )BlockSequenceStartTokenr   z<block sequence start>Nr]   r   r   r   r   ra      s   ra   c                   @   s   e Zd ZdZdZdS )BlockMappingStartTokenr   z<block mapping start>Nr]   r   r   r   r   rb      s   rb   c                   @   s   e Zd ZdZdZdS )BlockEndTokenr   z<block end>Nr]   r   r   r   r   rc      s   rc   c                   @   s   e Zd ZdZdZdS )FlowSequenceStartTokenr   [Nr]   r   r   r   r   rd      s   rd   c                   @   s   e Zd ZdZdZdS )FlowMappingStartTokenr   {Nr]   r   r   r   r   rf      s   rf   c                   @   s   e Zd ZdZdZdS )FlowSequenceEndTokenr   ]Nr]   r   r   r   r   rh      s   rh   c                   @   s   e Zd ZdZdZdS )FlowMappingEndTokenr   }Nr]   r   r   r   r   rj     s   rj   c                   @   s   e Zd ZdZdZdS )KeyTokenr   ?Nr]   r   r   r   r   rl   
  s   rl   c                   @   s   e Zd ZdZdZdS )
ValueTokenr   :Nr]   r   r   r   r   rn     s   rn   c                   @   s   e Zd ZdZdZdS )BlockEntryTokenr   -Nr]   r   r   r   r   rp     s   rp   c                   @   s   e Zd ZdZdZdS )FlowEntryTokenr   ,Nr]   r   r   r   r   rr     s   rr   c                   @   s(   e Zd ZdZdZeeeddddZdS )
AliasTokenrZ   z<alias>NrZ   r   r   r   c                 C   s   t | || || _d S r   r
   r   rZ   r   rZ   r   r   r   r   r   r   %  s    zAliasToken.__init__r[   r   r   r   r   rt   !  s   rt   c                   @   s(   e Zd ZdZdZeeeddddZdS )AnchorTokenru   z<anchor>Nrv   c                 C   s   t | || || _d S r   rw   rx   r   r   r   r   .  s    zAnchorToken.__init__r[   r   r   r   r   ry   *  s   ry   c                   @   s(   e Zd ZdZdZeeeddddZdS )TagTokenru   z<tag>Nrv   c                 C   s   t | || || _d S r   rw   rx   r   r   r   r   7  s    zTagToken.__init__r[   r   r   r   r   rz   3  s   rz   c                   @   s.   e Zd ZdZdZdeeeeeddddZdS )ScalarToken)rZ   plainstylez<scalar>N)rZ   r|   r   r   r}   r   c                 C   s$   t | || || _|| _|| _d S r   )r
   r   rZ   r|   r}   )r   rZ   r|   r   r   r}   r   r   r   r   @  s    zScalarToken.__init__)Nr[   r   r   r   r   r{   <  s    
r{   c                   @   s   e Zd ZdZdZdeeeeddddZeeddd	Z	e	j
edd
dd	Z	ddddZedddZeedddZeedddZdS )CommentToken)_value_columnpre_donez	<comment>N)rZ   r   r   r.   r   c                 C   s2   |d u r|d usJ || _ t| |d  || _d S r   )r   r
   r   r   )r   rZ   r   r   r.   r   r   r   r   M  s
    zCommentToken.__init__r   c                 C   s   t | jtr| jS d| jS )N )rF   r   r%   r)   r   r   r   r   rZ   V  s    zCommentToken.value)valr   c                 C   s
   || _ d S r   )r   )r   r   r   r   r   rZ   \  s    c                 C   s   t | drt| d d S )Nr   )r4   rI   r   r   r   r   reset`  s    
zCommentToken.resetc                 C   sd   | j }trXz|dt| jj 7 }W n   Y n0 z|dt| jj 7 }W n   Y n0 d| dS )Nz, line: z, col: zCommentToken(r    )rZ   r#   r%   r   r&   r.   )r   vr   r   r   r,   d  s    zCommentToken.__repr__)otherr   c                 C   s4   | j |j krdS | j|jkr dS | j|jkr0dS dS )NFT)r   r   rZ   r   r   r   r   r   __eq__q  s    zCommentToken.__eq__c                 C   s   |  | S r   )r   r   r   r   r   __ne__z  s    zCommentToken.__ne__)NNN)r(   rR   rS   r!   r\   r   r   rT   r%   rZ   rV   r   r,   rW   r   r   r   r   r   r   r~   I  s    		r~   N)!Zruamel.yaml.compatr   typingr   r   r   r   r   errorr	   r#   r
   rX   rH   r^   r_   rG   ra   rb   rc   rd   rf   rh   rj   rl   rn   rp   rr   rt   ry   rz   r{   r~   r   r   r   r   <module>   s4    9
			