B Ïñ¢dã@sFddgZddlmZddlTddlTGdd„deƒZGdd„dƒZdS)ÚComposerÚ ComposerErroré)ÚMarkedYAMLError)Ú*c@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú4/tmp/pip-target-jj3kjtpb/lib/python/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__ szComposer.__init__cCs| t¡r| ¡| t¡ S)N)Ú check_eventZStreamStartEventÚ get_eventÚStreamEndEvent)r r r r Ú check_nodes zComposer.check_nodecCs| t¡s| ¡SdS)N)rrÚcompose_document)r r r r Úget_nodes zComposer.get_nodecCsN| ¡d}| t¡s| ¡}| t¡sB| ¡}td|jd|jƒ‚| ¡|S)Nz(expected a single document in the streamzbut found another document)rrrrrÚ start_mark)r ÚdocumentÚeventr r r Úget_single_nodes  zComposer.get_single_nodecCs&| ¡| dd¡}| ¡i|_|S)N)rÚ compose_noder )r Únoder r r r2s  zComposer.compose_documentcCsÔ| t¡r@| ¡}|j}||jkr6tddd||jƒ‚|j|S| ¡}|j}|dk r|||jkr|td||j|jd|jƒ‚| ||¡| t ¡rž|  |¡}n*| t ¡r´|  |¡}n| t ¡rÈ| |¡}| ¡|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}|dks|dkr0| t|j|j¡}t||j|j|j|jd}|dk r\||j |<|S)Nú!)Ústyle) rÚtagÚresolveZ ScalarNodeÚvalueÚimplicitrÚend_markr!r )r rrr"rr r r rXs zComposer.compose_scalar_nodecCsš| ¡}|j}|dks|dkr.| td|j¡}t|g|jd|jd}|dk rV||j|<d}x*| t ¡s„|j   |  ||¡¡|d7}q\W| ¡}|j |_ |S)Nr )Ú flow_styleér)rr"r#Z SequenceNoder%rr'r rZSequenceEndEventr$Úappendrr&)r rÚ start_eventr"rrÚ end_eventr r r rcs     zComposer.compose_sequence_nodecCs¢| ¡}|j}|dks|dkr.| td|j¡}t|g|jd|jd}|dk rV||j|<x6| t ¡sŒ|  |d¡}|  ||¡}|j   ||f¡qXW| ¡}|j |_ |S)Nr )r')rr"r#Z MappingNoder%rr'r rZMappingEndEventrr$r)r&)r rr*r"rZitem_keyZ item_valuer+r r r rus      zComposer.compose_mapping_nodeN) rrrr rrrrrrrrr r r r r s  N)Ú__all__ÚerrorrÚeventsZnodesrrr r r r Ús