
    s                        d dl mZ 	 dZ
 G d de      Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z G d+ d,e      Z  G d- d.e      Z!y/)0    )unicode_literalsTc                   L    e Zd ZdZd Zd Zd Zd Zd Ze	d        Z
ddZd	 Zy
)Token)
start_markend_mark_commentc                      || _         || _        y N)r   r   )selfr   r   s      %lib/third_party/ruamel/yaml/tokens.py__init__zToken.__init__   s    $     c                    | j                   D cg c]  }|j                  d      r| }}|j                          dj                  |D cg c]  }|dt	        | |       c}      }t
        r&	 |dt        | j                  j                        z   z  }	 |dt        | j                        z   z  }dj                  | j                  j                  |      S c c}w c c}w #  Y PxY w#  Y ;xY w)N_markz, =, line: z, comment: z{}({}))	__slots__endswithsortjoingetattr	SHOWLINESstrr   liner   format	__class____name__)r   key
attributes	argumentss       r   __repr__zToken.__repr__   s     &*^^Q^c3<<;Pc^
QIIjYjs#wtS/ABjYZ	Z#doo.B.B*CCC		T]]);;;I t~~66	BB RY	s(   CCC1%C" C) "C&)C-c                 L    t        | d      s	d d g| _        || j                  d<   y )Nr   r   hasattrr   )r   comments     r   add_post_commentzToken.add_post_comment'   s%    tZ(!4LDM"ar   c                 n    t        | d      s	d d g| _        | j                  d   J || j                  d<   y )Nr      r#   )r   commentss     r   add_pre_commentszToken.add_pre_comments-   s:    tZ(!4LDM}}Q'''#ar   c                     t        | dd       S Nr   r   r   s    r   get_commentzToken.get_comment4   s    tZ..r   c                     t        | dd       S r,   r-   r.   s    r   r%   zToken.comment8   s     tZ..r   c                 :   | j                   }|yt        |t        t        f      ryt	        | d       |j                   }|s|r|d   |d   dd|d   g}||_        | S |d   r|d   s
|d   r|d   rt        d|d|      |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%   
isinstanceStreamEndTokenDocumentStartTokendelattrr   NotImplementedError)r   targetemptyctcs        r   move_commentzToken.move_comment=   s     LL9f~/ABCj!^^qT1Q4tQqT2FOKQ4BqEQqTbe%Ar&JKKQ4aDBqEQ4aDBqEr   c                 ^    | j                   }||d   y|d   dg}|d   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_vals      r   split_commentzToken.split_comment[   sE     ,,?gaj01:t$1:D*%r   N)F)r   
__module____qualname__r   r   r!   r&   r*   r/   propertyr%   r<   r?    r   r   r   r      s?    4I!
C$#$/ / /<r   r   c                       e Zd ZdZdZd Zy)DirectiveToken)namevaluez<directive>c                 N    t         j                  | ||       || _        || _        y r
   )r   r   rF   rG   )r   rF   rG   r   r   s        r   r   zDirectiveToken.__init__t   s     tZ2	
r   Nr   r@   rA   r   idr   rC   r   r   rE   rE   p   s    I	Br   rE   c                       e Zd ZdZdZy)r5   rC   z<document start>Nr   r@   rA   r   rJ   rC   r   r   r5   r5   {   s    I	Br   r5   c                       e Zd ZdZdZy)DocumentEndTokenrC   z<document end>NrL   rC   r   r   rN   rN      s    I	Br   rN   c                       e Zd ZdZdZddZy)StreamStartToken)encodingz<stream start>Nc                 @    t         j                  | ||       || _        y r
   )r   r   rQ   )r   r   r   rQ   s       r   r   zStreamStartToken.__init__   s    tZ2 r   )NNNrI   rC   r   r   rP   rP      s    I	B!r   rP   c                       e Zd ZdZdZy)r4   rC   z<stream end>NrL   rC   r   r   r4   r4      s    I	Br   r4   c                       e Zd ZdZdZy)BlockSequenceStartTokenrC   z<block sequence start>NrL   rC   r   r   rU   rU      s    I	!Br   rU   c                       e Zd ZdZdZy)BlockMappingStartTokenrC   z<block mapping start>NrL   rC   r   r   rW   rW      s    I	 Br   rW   c                       e Zd ZdZdZy)BlockEndTokenrC   z<block end>NrL   rC   r   r   rY   rY      s    I	Br   rY   c                       e Zd ZdZdZy)FlowSequenceStartTokenrC   [NrL   rC   r   r   r[   r[          I	Br   r[   c                       e Zd ZdZdZy)FlowMappingStartTokenrC   {NrL   rC   r   r   r_   r_      r]   r   r_   c                       e Zd ZdZdZy)FlowSequenceEndTokenrC   ]NrL   rC   r   r   rb   rb      r]   r   rb   c                       e Zd ZdZdZy)FlowMappingEndTokenrC   }NrL   rC   r   r   re   re      r]   r   re   c                       e Zd ZdZdZy)KeyTokenrC   ?NrL   rC   r   r   rh   rh      r]   r   rh   c                       e Zd ZdZdZy)
ValueTokenrC   :NrL   rC   r   r   rk   rk      r]   r   rk   c                       e Zd ZdZdZy)BlockEntryTokenrC   -NrL   rC   r   r   rn   rn      r]   r   rn   c                       e Zd ZdZdZy)FlowEntryTokenrC   ,NrL   rC   r   r   rq   rq      r]   r   rq   c                       e Zd ZdZdZd Zy)
AliasTokenrG   z<alias>c                 @    t         j                  | ||       || _        y r
   r   r   rG   r   rG   r   r   s       r   r   zAliasToken.__init__       tZ2
r   NrI   rC   r   r   rt   rt      s    I	Br   rt   c                       e Zd ZdZdZd Zy)AnchorTokenru   z<anchor>c                 @    t         j                  | ||       || _        y r
   rw   rx   s       r   r   zAnchorToken.__init__   ry   r   NrI   rC   r   r   r{   r{      s    I	Br   r{   c                       e Zd ZdZdZd Zy)TagTokenru   z<tag>c                 @    t         j                  | ||       || _        y r
   rw   rx   s       r   r   zTagToken.__init__   ry   r   NrI   rC   r   r   r~   r~      s    I	Br   r~   c                       e Zd ZdZdZddZy)ScalarToken)rG   plainstylez<scalar>Nc                 \    t         j                  | ||       || _        || _        || _        y r
   )r   r   rG   r   r   )r   rG   r   r   r   r   s         r   r   zScalarToken.__init__   s'    tZ2


r   r
   rI   rC   r   r   r   r      s    )I	Br   r   c                   &    e Zd ZdZdZd Zd Zd Zy)CommentToken)rG   pre_donez	<comment>c                 @    t         j                  | ||       || _        y r
   rw   rx   s       r   r   zCommentToken.__init__   ry   r   c                 6    t        | d      rt        | d       y y )Nr   )r$   r6   r.   s    r   resetzCommentToken.reset  s    4$D*% %r   c                     dj                  | j                        }t        r&	 |dt        | j                  j
                        z   z  }dj                  |      S #  Y xY w)Nz{!r}r   zCommentToken({}))r   rG   r   r   r   r   )r   vs     r   r!   zCommentToken.__repr__  sW    MM$**%Z#doo&:&:";;; "((++s   %A AN)r   r@   rA   r   rJ   r   r   r!   rC   r   r   r   r      s    #I	B
&
,r   r   N)"
__future__r   typingTextAnyDictOptionalListerror
StreamMarkr   objectr   rE   r5   rN   rP   r4   rU   rW   rY   r[   r_   rb   re   rh   rk   rn   rq   rt   r{   r~   r   r   rC   r   r   <module>r      s   ( 	\F \FU  
u 
!u !U 
"e "
!U !
E 
U 
E 
5 
% 
u  
e 
U 
 % u 	% 	,5 ,r   