3 gYE@sFddgZddlmZddlTddlTGdddeZGdddZdS) SerializerSerializerError) YAMLError)*c@s eZdZdS)rN)__name__ __module__ __qualname__r r @/Users/olari/OneDrive/sandbox/awsBlog2/lambda/yaml/serializer.pyrsc@sJeZdZdZdddZddZddZd d Zd d Zd dZ ddZ dS)rzid%03dNcCs:||_||_||_||_||_i|_i|_d|_d|_dS)N) use_encodinguse_explicit_startuse_explicit_end use_versionuse_tagsserialized_nodesanchorslast_anchor_idclosed)selfencodingexplicit_start explicit_endversiontagsr r r __init__szSerializer.__init__cCs@|jdkr$|jt|jdd|_n|jr4tdntddS)N)rFzserializer is closedzserializer is already opened)remitStreamStartEventr r)rr r r opens   zSerializer.opencCs0|jdkrtdn|js,|jtd|_dS)Nzserializer is not openedT)rrrStreamEndEvent)rr r r close$s    zSerializer.closecCs||jdkrtdn|jr"td|jt|j|j|jd|j||j|dd|jt |j di|_ i|_ d|_ dS)Nzserializer is not openedzserializer is closed)explicitrr)r!r )rrrDocumentStartEventr rr anchor_nodeserialize_nodeDocumentEndEventrrrr)rnoder r r serialize.s    zSerializer.serializecCs||jkr*|j|dkr|j||j|<nbd|j|<t|trZxL|jD]}|j|qFWn2t|trx&|jD]\}}|j||j|qlWdS)N)rgenerate_anchor isinstance SequenceNodevaluer# MappingNode)rr&itemkeyr+r r r r#<s      zSerializer.anchor_nodecCs|jd7_|j|jS)Nr)rANCHOR_TEMPLATE)rr&r r r r(JszSerializer.generate_anchorc Cs|j|}||jkr&|jt|njd|j|<|j||t|tr|jt|jd}|jt|jd}|j |k|j |kf}|jt ||j ||j|j dnt|t r|j |jt |jdk}|jt ||j ||jdd}x$|jD]}|j||||d7}qW|jtnzt|tr|j |jt|jdk}|jt||j ||jdx0|jD]&\} } |j| |d|j| || qRW|jt|jdS) NTF)style) flow_styler r)TF)FT)rrr AliasEventdescend_resolverr) ScalarNoderesolver+tag ScalarEventr0r*SequenceStartEventr1r$SequenceEndEventr,MappingStartEventMappingEndEventascend_resolver) rr&parentindexaliasZ detected_tagZ default_tagimplicitr-r.r+r r r r$Ns>            zSerializer.serialize_node)NNNNN) rrrr/rrr r'r#r(r$r r r r r s   N)__all__errorreventsnodesrrr r r r s