3 gY@sFddgZddlmZddlTddlTGdddeZGdddZdS)Composer ComposerError)MarkedYAMLError)*c@s eZdZdS)rN)__name__ __module__ __qualname__r r >/Users/olari/OneDrive/sandbox/awsBlog2/lambda/yaml/composer.pyrsc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)rcCs i|_dS)N)anchors)selfr r r __init__ szComposer.__init__cCs|jtr|j|jt S)N) check_eventStreamStartEvent get_eventStreamEndEvent)r r r r check_nodes zComposer.check_nodecCs|jts|jSdS)N)rrcompose_document)r r r r get_nodes zComposer.get_nodecCsN|jd}|jts|j}|jtsB|j}td|jd|j|j|S)Nz(expected a single document in the streamzbut found another document)rrrrr start_mark)r Zdocumenteventr r r get_single_nodes  zComposer.get_single_nodecCs&|j|jdd}|ji|_|S)N)r compose_noder )r noder r r r2s  zComposer.compose_documentcCs|jtr@|j}|j}||jkr6tddd||j|j|S|j}|j}|dk r|||jkr|td||j|jd|j|j|||jt r|j |}n*|jt r|j |}n|jt r|j|}|j|S)Nzfound undefined alias %rz*found duplicate anchor %r; first occurencezsecond occurence)r AliasEventranchorr rr peek_eventZdescend_resolver ScalarEventcompose_scalar_nodeSequenceStartEventcompose_sequence_nodeMappingStartEventcompose_mapping_nodeZascend_resolver)r parentindexrrrr r r r?s.             zComposer.compose_nodecCs`|j}|j}|dks|dkr0|jt|j|j}t||j|j|j|jd}|dk r\||j |<|S)N!)style) rtagresolve ScalarNodevalueimplicitrend_markr&r )r rrr'rr r r rXs zComposer.compose_scalar_nodecCs|j}|j}|dks|dkr.|jtd|j}t|g|jd|jd}|dk rV||j|<d}x*|jt s|j j |j |||d7}q\W|j}|j |_ |S)Nr%) flow_styler)rr'r( SequenceNoder+rr-r rSequenceEndEventr*appendrr,)r r start_eventr'rr$ end_eventr r r r cs     zComposer.compose_sequence_nodecCs|j}|j}|dks|dkr.|jtd|j}t|g|jd|jd}|dk rV||j|<x6|jt s|j |d}|j ||}|j j ||fqXW|j}|j |_ |S)Nr%)r-)rr'r( MappingNoder+rr-r rMappingEndEventrr*r1r,)r rr2r'rZitem_keyZ item_valuer3r r r r"us      zComposer.compose_mapping_nodeN) rrrr rrrrrrr r"r r r r r s  N)__all__errorreventsnodesrrr r r r s