o
    ÛË³iD  ã                   @   sv  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/d0„ d0eƒZ G d1d2„ d2eƒZ!d3S )4é    )Úunicode_literalsF)ÚTextÚAnyÚDictÚOptionalÚListé   )Ú
StreamMarkTc                   @   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   úL/home/ubuntu/.local/lib/python3.10/site-packages/strictyaml/ruamel/tokens.pyÚ__init__   s   
zToken.__init__c                    s†   dd„ ˆ j D ƒ}| ¡  d ‡ fdd„|D ƒ¡}tr+z|dtˆ jjƒ 7 }W n   Y z|dtˆ jƒ 7 }W n   Y d ˆ j	j
|¡S )Nc                 S   s   g | ]	}|  d ¡s|‘qS )Ú_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   Ú
attributesÚ	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 u sJ ‚|| jd< d S )Nr   r   r)   )r   Úcommentsr   r   r   Úadd_pre_comments/   s   

zToken.add_pre_commentsc                 C   ó   t | dd ƒS ©Nr   r   r   r   r   r   Úget_comment6   ó   zToken.get_commentc                 C   r/   r0   r   r   r   r   r   r+   :   s   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 rH|d rHtd||f ƒ‚|d rR|d |d< |d r\|d |d< | S )zò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   zoverlap in comment %r %r)r+   Ú
isinstanceÚStreamEndTokenÚDocumentStartTokenÚdelattrr   ÚNotImplementedError)r   ÚtargetÚemptyÚcÚtcr   r   r   Úmove_comment?   s&   
 zToken.move_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   )r+   r6   )r   r+   Úret_valr   r   r   Úsplit_comment]   s   
zToken.split_commentN)F)r%   Ú
__module__Ú__qualname__r   r   r(   r,   r.   r1   Úpropertyr+   r<   r>   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   rD   rE   )r   rD   rE   r   r   r   r   r   r   v   s   
zDirectiveToken.__init__N©r%   r?   r@   r   Úidr   r   r   r   r   rC   r   ó    rC   c                   @   ó   e Zd ZdZdZdS )r5   r   z<document start>N©r%   r?   r@   r   rG   r   r   r   r   r5   }   ó    r5   c                   @   rI   )ÚDocumentEndTokenr   z<document end>NrJ   r   r   r   r   rL   ‚   rK   rL   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   rO   )r   r   r   rO   r   r   r   r   ‹   ó   
zStreamStartToken.__init__)NNNrF   r   r   r   r   rN   ‡   ó    rN   c                   @   rI   )r4   r   z<stream end>NrJ   r   r   r   r   r4   ‘   rK   r4   c                   @   rI   )ÚBlockSequenceStartTokenr   z<block sequence start>NrJ   r   r   r   r   rR   –   rK   rR   c                   @   rI   )ÚBlockMappingStartTokenr   z<block mapping start>NrJ   r   r   r   r   rS   ›   rK   rS   c                   @   rI   )ÚBlockEndTokenr   z<block end>NrJ   r   r   r   r   rT       rK   rT   c                   @   rI   )ÚFlowSequenceStartTokenr   ú[NrJ   r   r   r   r   rU   ¥   rK   rU   c                   @   rI   )ÚFlowMappingStartTokenr   Ú{NrJ   r   r   r   r   rW   ª   rK   rW   c                   @   rI   )ÚFlowSequenceEndTokenr   ú]NrJ   r   r   r   r   rY   ¯   rK   rY   c                   @   rI   )ÚFlowMappingEndTokenr   Ú}NrJ   r   r   r   r   r[   ´   rK   r[   c                   @   rI   )ÚKeyTokenr   ú?NrJ   r   r   r   r   r]   ¹   rK   r]   c                   @   rI   )Ú
ValueTokenr   ú:NrJ   r   r   r   r   r_   Â   rK   r_   c                   @   rI   )ÚBlockEntryTokenr   ú-NrJ   r   r   r   r   ra   Ç   rK   ra   c                   @   rI   )ÚFlowEntryTokenr   ú,NrJ   r   r   r   r   rc   Ì   rK   rc   c                   @   rB   )Ú
AliasToken©rE   z<alias>c                 C   ó   t  | ||¡ || _d S r   ©r
   r   rE   ©r   rE   r   r   r   r   r   r   Õ   rP   zAliasToken.__init__NrF   r   r   r   r   re   Ñ   rH   re   c                   @   rB   )ÚAnchorTokenrf   z<anchor>c                 C   rg   r   rh   ri   r   r   r   r   ß   rP   zAnchorToken.__init__NrF   r   r   r   r   rj   Û   rH   rj   c                   @   rB   )ÚTagTokenrf   z<tag>c                 C   rg   r   rh   ri   r   r   r   r   é   rP   zTagToken.__init__NrF   r   r   r   r   rk   å   rH   rk   c                   @   rM   )ÚScalarToken)rE   ÚplainÚstylez<scalar>Nc                 C   s$   t  | ||¡ || _|| _|| _d S r   )r
   r   rE   rm   rn   )r   rE   rm   r   r   rn   r   r   r   r   ó   s   
zScalarToken.__init__r   rF   r   r   r   r   rl   ï   rQ   rl   c                   @   s<   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚCommentToken)rE   Úpre_donez	<comment>c                 C   rg   r   rh   ri   r   r   r   r   ÿ   rP   zCommentToken.__init__c                 C   s   t | dƒrt| dƒ d S d S )Nrp   )r*   r6   r   r   r   r   Úreset  s   
ÿzCommentToken.resetc                 C   sP   d  | j¡}tr#z|dt| jjƒ 7 }|dt| jjƒ 7 }W n   Y d  |¡S )Nz{!r}r   z, col: zCommentToken({}))r#   rE   r    r!   r   r"   Úcolumn)r   Úvr   r   r   r(   	  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   rE   ©r   Úotherr   r   r   Ú__eq__  s   zCommentToken.__eq__c                 C   s   |   |¡ S r   )rv   rt   r   r   r   Ú__ne__  r2   zCommentToken.__ne__N)
r%   r?   r@   r   rG   r   rq   r(   rv   rw   r   r   r   r   ro   û   s    
ro   N)"Ú
__future__r   Útypingr   r   r   r   r   Úerrorr	   r    Úobjectr
   rC   r5   rL   rN   r4   rR   rS   rT   rU   rW   rY   r[   r]   r_   ra   rc   re   rj   rk   rl   ro   r   r   r   r   Ú<module>   s2   e
	


