o
    hJ/                     @   sx  d dl mZ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/d0 d0eZ G d1d2 d2eZ!d3S )4    )_FnprintfF)TextAnyDictOptionalList   )
StreamMarkTc                   @   s   e Zd ZdZdd Zdd Zedd Zejd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ddZdS )Token)
start_markend_mark_commentc                 C   s   || _ || _d S N)r   r   )selfr   r    r   Z/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/ruamel/yaml/tokens.py__init__   s   
zToken.__init__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 d j	j
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 | ]}t d |t |dqS )z{key!s}={gattr!r})r   Zgattr)r   getattrr   r   r   r   r      s    zline: z	comment: z{}({})z, )	__slots__sort
SHOW_LINESappendstrr   liner   format	__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.columnc                 C   s   || j _d S r   r(   )r   posr   r   r   r)   0      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   commentr   r   r   add_post_comment@   s   
zToken.add_post_commentc                 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   r,   r	   r.   )r   commentsr   r   r   add_pre_commentsL   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   r/   r   r0   r   r1   r   r   r   add_comment_preW      

zToken.add_comment_prec                 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   NNNr6   r	   )r/   r   r0   r2   extend)r   r2   Zcomment_typer   r   r   add_comment_eola   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   r6   r,   r7   r1   r   r   r   add_comment_postn   r9   zToken.add_comment_postc                 C   s   t | dd S )Nr   )r   r   r   r   r   r2   |   r+   zToken.commentFc                 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 rI|d rIttd||d|d rS|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 {c!r} {tc!r}ctc)r2   
isinstanceStreamEndTokenDocumentStartTokendelattrr   NotImplementedErrorr   )r   targetemptyrA   rB   r   r   r   move_old_comment   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   rF   )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rI|| durIttd||dq2tdD ]}|| rZ|| ||< qN| S )	r>   Nr   r   r	   r,   r6   r?   r@   )	r2   rC   rD   rE   rF   r   rangerG   r   )r   rH   rI   rA   rB   idxr   r   r   move_new_comment   s*   
zToken.move_new_commentN)F)r#   
__module____qualname__r   r   r'   propertyr)   setterr3   r5   r8   r<   r=   r2   rJ   rK   rN   r   r   r   r   r      s$    




r   c                   @      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   rU   rV   )r   rU   rV   r   r   r   r   r   r      s   
zDirectiveToken.__init__Nr#   rO   rP   r   idr   r   r   r   r   rT          rT   c                   @      e Zd ZdZdZdS )rE   r   z<document start>Nr#   rO   rP   r   rX   r   r   r   r   rE          rE   c                   @   rZ   )DocumentEndTokenr   z<document end>Nr[   r   r   r   r   r]      r\   r]   c                   @      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         
zStreamStartToken.__init__r:   rW   r   r   r   r   r_          r_   c                   @   rZ   )rD   r   z<stream end>Nr[   r   r   r   r   rD      r\   rD   c                   @   rZ   )BlockSequenceStartTokenr   z<block sequence start>Nr[   r   r   r   r   rc      r\   rc   c                   @   rZ   )BlockMappingStartTokenr   z<block mapping start>Nr[   r   r   r   r   rd      r\   rd   c                   @   rZ   )BlockEndTokenr   z<block end>Nr[   r   r   r   r   re     r\   re   c                   @   rZ   )FlowSequenceStartTokenr   [Nr[   r   r   r   r   rf     r\   rf   c                   @   rZ   )FlowMappingStartTokenr   {Nr[   r   r   r   r   rh     r\   rh   c                   @   rZ   )FlowSequenceEndTokenr   ]Nr[   r   r   r   r   rj     r\   rj   c                   @   rZ   )FlowMappingEndTokenr   }Nr[   r   r   r   r   rl     r\   rl   c                   @   rZ   )KeyTokenr   ?Nr[   r   r   r   r   rn     r\   rn   c                   @   rZ   )
ValueTokenr   :Nr[   r   r   r   r   rp   $  r\   rp   c                   @   rZ   )BlockEntryTokenr   -Nr[   r   r   r   r   rr   )  r\   rr   c                   @   rZ   )FlowEntryTokenr   ,Nr[   r   r   r   r   rt   .  r\   rt   c                   @   rS   )
AliasTokenrV   z<alias>c                 C      t | || || _d S r   r   r   rV   r   rV   r   r   r   r   r   r   7  ra   zAliasToken.__init__NrW   r   r   r   r   rv   3  rY   rv   c                   @   rS   )AnchorTokenrw   z<anchor>c                 C   rx   r   ry   rz   r   r   r   r   A  ra   zAnchorToken.__init__NrW   r   r   r   r   r{   =  rY   r{   c                   @   rS   )TagTokenrw   z<tag>c                 C   rx   r   ry   rz   r   r   r   r   K  ra   zTagToken.__init__NrW   r   r   r   r   r|   G  rY   r|   c                   @   r^   )ScalarToken)rV   plainstylez<scalar>Nc                 C   s$   t | || || _|| _|| _d S r   )r   r   rV   r~   r   )r   rV   r~   r   r   r   r   r   r   r   U  s   
zScalarToken.__init__r   rW   r   r   r   r   r}   Q  rb   r}   c                   @   sX   e Zd ZdZdZdddZedd Zejdd Zd	d
 Z	dd Z
dd Zdd ZdS )CommentToken)_valuepre_donez	<comment>Nc                 C   s2   |d u r|d us
J || _ t| |d  || _d S r   )_columnr   r   r   )r   rV   r   r   r)   r   r   r   r   a  s
   
zCommentToken.__init__c                 C   s   t | jtr	| jS d| jS )N )rC   r   r   r$   r   r   r   r   rV   i  s   zCommentToken.valuec                 C   s
   || _ d S r   )r   )r   valr   r   r   rV   p  s   
c                 C   s   t | drt| d d S d S )Nr   )r/   rF   r   r   r   r   resetu  s   
zCommentToken.resetc                 C   s^   d | j}tr*z|dt| jj 7 }W n   Y z|dt| jj 7 }W n   Y d |S )Nz{!r}z, line: z, col: zCommentToken({}))r!   rV   r   r   r   r    r)   )r   vr   r   r   r'   z  s   
zCommentToken.__repr__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   rV   r   otherr   r   r   __eq__  s   zCommentToken.__eq__c                 C   s   |  | S r   )r   r   r   r   r   __ne__  s   zCommentToken.__ne__r:   )r#   rO   rP   r   rX   r   rQ   rV   rR   r   r'   r   r   r   r   r   r   r   ]  s    



r   N)"Zruamel.yaml.compatr   r   typingr   r   r   r   r   errorr
   r   r   rT   rE   r]   r_   rD   rc   rd   re   rf   rh   rj   rl   rn   rp   rr   rt   rv   r{   r|   r}   r   r   r   r   r   <module>   s4    I
	


