U
    es                     @   st  d dl mZ 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 d+d, d,e
ZG d-d. d.e
Zd/S )0    )unicode_literalsTc                   @   sV   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Ze	dd Z
dddZdd ZdS )Token)
start_markend_mark_commentc                 C   s   || _ || _d S N)r   r   )selfr   r    r	   1lib/python3.8/site-packages/ruamel_yaml/tokens.py__init__   s    zToken.__init__c                    s   dd  j D }|  d fdd|D }trZz|dt jj 7 }W n   Y nX z|dt j 7 }W n   Y nX d j	j
|S )Nc                 S   s   g | ]}| d s|qS )Z_mark)endswith.0keyr	   r	   r
   
<listcomp>   s     
 z"Token.__repr__.<locals>.<listcomp>z, c                    s   g | ]}d |t  |f qS )z%s=%rgetattrr   r   r	   r
   r      s     , line: z, comment: z{}({}))	__slots__sortjoin	SHOWLINESstrr   liner   format	__class____name__)r   Z
attributesZ	argumentsr	   r   r
   __repr__   s    zToken.__repr__c                 C   s"   t | dsd d g| _|| jd< d S )Nr   r   )hasattrr   )r   commentr	   r	   r
   add_post_comment'   s    

zToken.add_post_commentc                 C   s4   t | dsd d g| _| jd d ks&t|| jd< d S )Nr      )r   r   AssertionError)r   Zcommentsr	   r	   r
   add_pre_comments-   s    

zToken.add_pre_commentsc                 C   s   t | dd S Nr   r   r   r	   r	   r
   get_comment4   s    zToken.get_commentc                 C   s   t | dd S r%   r   r   r	   r	   r
   r    8   s    zToken.commentFc                 C   s   | j }|dk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||f |d r|d |d< |d r|d |d< | S )zmove 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"   zoverlap in comment %r %r)r    
isinstanceStreamEndTokenDocumentStartTokendelattrr   NotImplementedError)r   targetemptycZtcr	   r	   r
   move_comment=   s&    
 zToken.move_commentc                 C   sD   | j }|dks|d dkrdS |d dg}|d dk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   )r    r*   )r   r    Zret_valr	   r	   r
   split_comment[   s    
zToken.split_commentN)F)r   
__module____qualname__r   r   r   r!   r$   r&   propertyr    r/   r0   r	   r	   r	   r
   r      s   

r   c                   @   s   e Zd ZdZdZdd ZdS )DirectiveToken)namevaluez<directive>c                 C   s   t | || || _|| _d S r   )r   r   r5   r6   )r   r5   r6   r   r   r	   r	   r
   r   t   s    zDirectiveToken.__init__Nr   r1   r2   r   idr   r	   r	   r	   r
   r4   p   s   r4   c                   @   s   e Zd ZdZdZdS )r)   r	   z<document start>Nr   r1   r2   r   r8   r	   r	   r	   r
   r)   {   s   r)   c                   @   s   e Zd ZdZdZdS )DocumentEndTokenr	   z<document end>Nr9   r	   r	   r	   r
   r:      s   r:   c                   @   s   e Zd ZdZdZdddZdS )StreamStartToken)encodingz<stream start>Nc                 C   s   t | || || _d S r   )r   r   r<   )r   r   r   r<   r	   r	   r
   r      s    zStreamStartToken.__init__)NNNr7   r	   r	   r	   r
   r;      s   r;   c                   @   s   e Zd ZdZdZdS )r(   r	   z<stream end>Nr9   r	   r	   r	   r
   r(      s   r(   c                   @   s   e Zd ZdZdZdS )BlockSequenceStartTokenr	   z<block sequence start>Nr9   r	   r	   r	   r
   r=      s   r=   c                   @   s   e Zd ZdZdZdS )BlockMappingStartTokenr	   z<block mapping start>Nr9   r	   r	   r	   r
   r>      s   r>   c                   @   s   e Zd ZdZdZdS )BlockEndTokenr	   z<block end>Nr9   r	   r	   r	   r
   r?      s   r?   c                   @   s   e Zd ZdZdZdS )FlowSequenceStartTokenr	   [Nr9   r	   r	   r	   r
   r@      s   r@   c                   @   s   e Zd ZdZdZdS )FlowMappingStartTokenr	   {Nr9   r	   r	   r	   r
   rB      s   rB   c                   @   s   e Zd ZdZdZdS )FlowSequenceEndTokenr	   ]Nr9   r	   r	   r	   r
   rD      s   rD   c                   @   s   e Zd ZdZdZdS )FlowMappingEndTokenr	   }Nr9   r	   r	   r	   r
   rF      s   rF   c                   @   s   e Zd ZdZdZdS )KeyTokenr	   ?Nr9   r	   r	   r	   r
   rH      s   rH   c                   @   s   e Zd ZdZdZdS )
ValueTokenr	   :Nr9   r	   r	   r	   r
   rJ      s   rJ   c                   @   s   e Zd ZdZdZdS )BlockEntryTokenr	   -Nr9   r	   r	   r	   r
   rL      s   rL   c                   @   s   e Zd ZdZdZdS )FlowEntryTokenr	   ,Nr9   r	   r	   r	   r
   rN      s   rN   c                   @   s   e Zd ZdZdZdd ZdS )
AliasTokenr6   z<alias>c                 C   s   t | || || _d S r   r   r   r6   r   r6   r   r   r	   r	   r
   r      s    zAliasToken.__init__Nr7   r	   r	   r	   r
   rP      s   rP   c                   @   s   e Zd ZdZdZdd ZdS )AnchorTokenrQ   z<anchor>c                 C   s   t | || || _d S r   rR   rS   r	   r	   r
   r      s    zAnchorToken.__init__Nr7   r	   r	   r	   r
   rT      s   rT   c                   @   s   e Zd ZdZdZdd ZdS )TagTokenrQ   z<tag>c                 C   s   t | || || _d S r   rR   rS   r	   r	   r
   r      s    zTagToken.__init__Nr7   r	   r	   r	   r
   rU      s   rU   c                   @   s   e Zd ZdZdZdddZdS )ScalarToken)r6   plainstylez<scalar>Nc                 C   s$   t | || || _|| _|| _d S r   )r   r   r6   rW   rX   )r   r6   rW   r   r   rX   r	   r	   r
   r      s    zScalarToken.__init__)Nr7   r	   r	   r	   r
   rV      s   rV   c                   @   s,   e Zd ZdZdZdd Zdd Zdd Zd	S )
CommentToken)r6   pre_donez	<comment>c                 C   s   t | || || _d S r   rR   rS   r	   r	   r
   r      s    zCommentToken.__init__c                 C   s   t | drt| d d S )NrZ   )r   r*   r   r	   r	   r
   reset  s    
zCommentToken.resetc                 C   s@   d | j}tr6z|dt| jj 7 }W n   Y nX d |S )Nz{!r}r   zCommentToken({}))r   r6   r   r   r   r   )r   vr	   r	   r
   r     s    zCommentToken.__repr__N)r   r1   r2   r   r8   r   r[   r   r	   r	   r	   r
   rY      s
   rY   N) Z
__future__r   ZTextZAnyZDictZOptionalZListZ
StreamMarkr   objectr   r4   r)   r:   r;   r(   r=   r>   r?   r@   rB   rD   rF   rH   rJ   rL   rN   rP   rT   rU   rV   rY   r	   r	   r	   r
   <module>   s.   c
	


