
    d                          d dl mZmZ d dlZd dlmZmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZmZmZmZmZ d dlmZmZmZ 	 ddgZ G d	 de      Z G d
 de      Z y)    )absolute_importprint_functionN)MarkedYAMLErrorReusedAnchorWarning)utf8nprintnprintf)StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEvent)MappingNode
ScalarNodeSequenceNodeComposerComposerErrorc                       e Zd Zy)r   N)__name__
__module____qualname__     'lib/third_party/ruamel/yaml/composer.pyr   r      s    r   c                   j    e Zd ZddZed        Zed        Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zy)r   Nc                     || _         | j                   (t        | j                   dd       | | j                   _        i | _        y )N	_composer)loadergetattrr    anchors)selfr!   s     r   __init__zComposer.__init__!   s8    ;;"wt{{K'N'V$(DKK!r   c                     t        | j                  d      r| j                  j                   | j                  j                  S Ntyp)hasattrr!   parser_parserr$   s    r   r*   zComposer.parser(   s/     4;;&KK{{"""r   c                     t        | j                  d      r| j                  j                   | j                  j                  S r'   )r)   r!   resolver	_resolverr,   s    r   r.   zComposer.resolver/   s/     4;;&KK  {{$$$r   c                     | j                   j                  t              r| j                   j                          | j                   j                  t               S N)r*   check_eventr
   	get_eventr   r,   s    r   
check_nodezComposer.check_node7   sA     ;;""#34KK!!# ;;**>:::r   c                 b    | j                   j                  t              s| j                         S y r1   )r*   r2   r   compose_documentr,   s    r   get_nodezComposer.get_node@   s*     {{&&~6((** 7r   c                    | j                   j                          d }| j                   j                  t              s| j	                         }| j                   j                  t              s<| j                   j                         }t        d|j                  d|j                        | j                   j                          |S )Nz(expected a single document in the streamzbut found another document)r*   r3   r2   r   r6   r   
start_mark)r$   documentevents      r   get_single_nodezComposer.get_single_nodeF   s     	 {{&&~6,,.H {{&&~6KK))+E:##,  	  	r   c                     | j                   j                          | j                  d d       }| j                   j                          i | _        |S r1   )r*   r3   compose_noder#   )r$   nodes     r   r6   zComposer.compose_document_   sF     	   t, 	r   c                    | j                   j                  t              rg| j                   j                         }|j                  }|| j
                  vr$t        d d dt        |      z  |j                        | j
                  |   S | j                   j                         }|j                  }|\|| j
                  v rNdj                  || j
                  |   j                  |j                        }t        j                  |t               | j                  j                  ||       | j                   j                  t               r| j#                  |      }na| j                   j                  t$              r| j'                  |      }n0| j                   j                  t(              r| j+                  |      }| j                  j-                          S )Nzfound undefined alias %rzE
found duplicate anchor {!r}
first occurrence {}
second occurrence {})r*   r2   r   r3   anchorr#   r   r   r9   
peek_eventformatwarningswarnr   r.   descend_resolverr   compose_scalar_noder   compose_sequence_noder   compose_mapping_nodeascend_resolver)r$   parentindexr;   aliasrA   wsr?   s           r   r>   zComposer.compose_nodem   sn   ;;"":.KK))+ELLEDLL(#$ :T%[ H%JZJZ  <<&&&&(%$,,v*>*I*I5K[K[\  b"56&&vu5;;"";/++F3D[[$$%78--f5D[[$$%67,,V4D%%'r   c           	      t   | j                   j                         }|j                  }||dk(  r5| j                  j	                  t
        |j                  |j                        }t        ||j                  |j                  |j                  |j                  |j                  |      }||| j                  |<   |S )N!)stylecommentrA   )r*   r3   tagr.   resolver   valueimplicitr9   end_markrQ   rR   r#   )r$   rA   r;   rS   r?   s        r   rG   zComposer.compose_scalar_node   s    %%'ii;#+--''
EKKPCKKNN++MM
 #'DLL r   c           	      J   | j                   j                         }|j                  }||dk(  r+| j                  j	                  t
        d |j                        }t        |g |j                  d |j                  |j                  |      }||| j                  |<   d}| j                   j                  t              sP|j                  j                  | j                  ||             |dz  }| j                   j                  t              sP| j                   j                         }|j                  du rM|j                  A|j                  $t!        dj#                  |j                               |j                  |_	        |j$                  |_        | j'                  ||       |S )NrP   
flow_stylerR   rA   r      Tz:Warning: unexpected end_event commment in sequence node {})r*   r3   rS   r.   rT   r   rV   r9   rZ   rR   r#   r2   r   rU   appendr>   r   rC   rW   check_end_doc_comment)r$   rA   start_eventrS   r?   rL   	end_events          r   rH   zComposer.compose_sequence_node   sc   kk++-oo;#+--''dK<P<PQC"""--''
 #'DLL ++))*:;JJd//e<=QJE ++))*:; KK))+	??d"y'8'8'D||'$fT__5 %,,DL!**""9d3r   c           	         | j                   j                         }|j                  }||dk(  r+| j                  j	                  t
        d |j                        }t        |g |j                  d |j                  |j                  |      }||| j                  |<   | j                   j                  t              sa| j                  |d       }| j                  ||      }|j                  j                  ||f       | j                   j                  t              sa| j                   j                         }|j                  du r|j                  |j                  |_	        |j                   |_        | j#                  ||       |S )NrP   rY   T)r*   r3   rS   r.   rT   r   rV   r9   rZ   rR   r#   r2   r   r>   rU   r\   rW   r]   )r$   rA   r^   rS   r?   item_key
item_valuer_   s           r   rI   zComposer.compose_mapping_node   sJ   kk++-oo;#+--''T;;O;OPC"""--''
 #'DLL ++))/:((t4H
 **4:JJJx45 ++))/: KK))+	??d"y'8'8'D$,,DL!**""9d3r   c                     |j                   ro|j                   d   r_|j                   	d d g|_         t        |t              rJ |j                   j                  |j                   d          d |j                   d<   y y y )Nr[   )rR   
isinstancer   r\   )r$   r_   r?   s      r   r]   zComposer.check_end_doc_comment   st    !2!21!5||# $d|!$444 LL	 1 1! 45#'Ia  "6r   r1   )r   r   r   r%   propertyr*   r.   r4   r7   r<   r6   r>   rG   rH   rI   r]   r   r   r   r   r       s_     # # % %;+2B&B D
(r   )!
__future__r   r   rD   ruamel.yaml.errorr   r   ruamel.yaml.compatr   r   r	   ruamel.yaml.eventsr
   r   r   r   r   r   r   r   ruamel.yaml.nodesr   r   r   typingAnyDictOptionalList__all__r   objectr   r   r   r   <module>rr      sW    7  B 4 4	 	 	 D C 
'	O 	N(v N(r   