o ¬£`ã@sFddgZddlmZddlTddlTGdd„deƒZGdd„dƒZdS)ÚComposerÚ ComposerErroré)ÚMarkedYAMLError)Ú*c@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú//usr/lib/python3/dist-packages/yaml/composer.pyrsc@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)rcCs i|_dS©N)Úanchors©Úselfr r r Ú__init__ s zComposer.__init__cCs| t¡r | ¡| t¡ Sr )Ú check_eventZStreamStartEventÚ get_eventÚStreamEndEventr r r r Ú check_nodes  zComposer.check_nodecCs| t¡s | ¡SdSr )rrÚcompose_documentr r r r Úget_nodes ÿzComposer.get_nodecCsN| ¡d}| t¡s| ¡}| t¡s!| ¡}td|jd|jƒ‚| ¡|S)Nz(expected a single document in the streamzbut found another document)rrrrrÚ start_mark)rZdocumentÚeventr r r Úget_single_nodes  þzComposer.get_single_nodecCs&| ¡| dd¡}| ¡i|_|Sr )rÚ compose_noder )rÚnoder r r r2s  zComposer.compose_documentcCsÔ| t¡r | ¡}|j}||jvrtddd||jƒ‚|j|S| ¡}|j}|dur>||jvr>td||j|jd|jƒ‚| ||¡| t ¡rO|  |¡}n| t ¡rZ|  |¡}n | t ¡rd| |¡}| ¡|S)Nzfound undefined alias %rz+found duplicate anchor %r; first occurrencezsecond occurrence)rZ AliasEventrÚanchorr rrZ peek_eventZdescend_resolverZ ScalarEventÚcompose_scalar_nodeZSequenceStartEventÚcompose_sequence_nodeZMappingStartEventÚcompose_mapping_nodeZascend_resolver)rÚparentÚindexrrrr r r r?s:  ÿÿ  ÿ þ       zComposer.compose_nodecCs`| ¡}|j}|dus|dkr| t|j|j¡}t||j|j|j|jd}|dur.||j |<|S)Nú!)Ústyle) rÚtagÚresolveZ ScalarNodeÚvalueÚimplicitrÚend_markr"r )rrrr#rr r r rXs ÿ zComposer.compose_scalar_nodecCsž| ¡}|j}|dus|dkr| td|j¡}t|g|jd|jd}|dur+||j|<d}| t ¡sE|j   |  ||¡¡|d7}| t ¡r2| ¡}|j |_ |S)Nr!©Ú flow_styleér)rr#r$Z SequenceNoder&rr)r rZSequenceEndEventr%Úappendrr')rrÚ start_eventr#rr Ú end_eventr r r rcs$þ   þzComposer.compose_sequence_nodecCs¦| ¡}|j}|dus|dkr| td|j¡}t|g|jd|jd}|dur+||j|<| t ¡sI|  |d¡}|  ||¡}|j   ||f¡| t ¡r0| ¡}|j |_ |S)Nr!r()rr#r$Z MappingNoder&rr)r rZMappingEndEventrr%r+r')rrr,r#rZitem_keyZ item_valuer-r r r rus$þ     ø zComposer.compose_mapping_nodeN) rrrrrrrrrrrrr r r r r s  N)Ú__all__ÚerrorrZeventsZnodesrrr r r r Ús