3 gY7@sddddgZddlTddlTddlZddlZddlZddlZddlZddlZGddde Z Gd ddZ Gd dde Z e j ede je j ee je j ee je j ee je j ee je j ee je j ee je j ee je j ee je j ee j e j ej!e j"e j eje j#e j de j$Gd dde Z%e%j e&e%j'e%j ee%j(e%j ee%j)e%j ej*e%j+e%j ej,e%j)e%j ej-e%j)e%j ej.e%j/e%j0e1e%j2dS) BaseRepresenterSafeRepresenter RepresenterRepresenterError)*Nc@s eZdZdS)rN)__name__ __module__ __qualname__r r A/Users/olari/OneDrive/sandbox/awsBlog2/lambda/yaml/representer.pyr sc@sleZdZiZiZdddZddZddZedd Z ed d Z dd d Z dddZ dddZ ddZdS)rNcCs"||_||_i|_g|_d|_dS)N) default_styledefault_flow_stylerepresented_objects object_keeper alias_key)selfr rr r r __init__s zBaseRepresenter.__init__cCs*|j|}|j|i|_g|_d|_dS)N)represent_data serializerrr)rdatanoder r r represents   zBaseRepresenter.representcCs|j|rd|_n t||_|jdk rN|j|jkrB|j|j}|S|jj|t|j}|d|jkr||j|d||}npxn|D] }||j kr|j |||}PqWd|j kr|j d||}n*d|jkr|jd||}nt dt |}|S)Nr) ignore_aliasesridrrappendtype__mro__yaml_representersyaml_multi_representers ScalarNodestr)rrrZ data_types data_typer r r r s*           zBaseRepresenter.represent_datacCs$d|jkr|jj|_||j|<dS)Nr)__dict__rcopy)clsr" representerr r r add_representer@s  zBaseRepresenter.add_representercCs$d|jkr|jj|_||j|<dS)Nr)r#rr$)r%r"r&r r r add_multi_representerFs  z%BaseRepresenter.add_multi_representercCs6|dkr|j}t|||d}|jdk r2||j|j<|S)N)style)r r rr)rtagvaluer)rr r r represent_scalarLs   z BaseRepresenter.represent_scalarc Csg}t|||d}|jdk r(||j|j<d}x6|D].}|j|}t|toP|j sVd}|j|q2W|dkr|jdk r|j|_ n||_ |S)N) flow_styleTF) SequenceNoderrr isinstancer r)rrr-) rr*sequencer-r+r best_styleitemZ node_itemr r r represent_sequenceTs      z"BaseRepresenter.represent_sequencec Csg}t|||d}|jdk r(||j|j<d}t|drdt|j}y t|}Wntk rbYnXx^|D]V\}}|j|} |j|} t | t o| j sd}t | t o| j sd}|j | | fqjW|dkr|j dk r|j |_n||_|S)N)r-TitemsF) MappingNoderrhasattrlistr4sorted TypeErrorrr/r r)rrr-) rr*mappingr-r+rr1item_key item_valueZnode_keyZ node_valuer r r represent_mappingfs0         z!BaseRepresenter.represent_mappingcCsdS)NFr )rrr r r rszBaseRepresenter.ignore_aliases)NN)N)N)N)rr r rrrrr classmethodr'r(r,r3r=rr r r r r s      c@seZdZddZddZddZddZd d Zd d Zd Z x e e e e e kr\e e 9Z q>WddZ ddZ ddZ ddZddZddZdddZddZdS) rcCs>|dkr dSt|tr"|fkr"dSt|tttttfr:dSdS)NT)r/tupler!bytesboolintfloat)rrr r r rs zSafeRepresenter.ignore_aliasescCs |jddS)Nztag:yaml.org,2002:nullZnull)r,)rrr r r represent_noneszSafeRepresenter.represent_nonecCs |jd|S)Nztag:yaml.org,2002:str)r,)rrr r r represent_strszSafeRepresenter.represent_strcCs<ttdrtj|jd}ntj|jd}|jd|ddS)N encodebytesasciiztag:yaml.org,2002:binary|)r))r6base64rFdecode encodestringr,)rrr r r represent_binarys z SafeRepresenter.represent_binarycCs|r d}nd}|jd|S)Ntruefalseztag:yaml.org,2002:bool)r,)rrr+r r r represent_boolszSafeRepresenter.represent_boolcCs|jdt|S)Nztag:yaml.org,2002:int)r,r!)rrr r r represent_intszSafeRepresenter.represent_intgu<7~cCsv||ks|dkr|dkrd}nL||jkr.d}n<||j kr@d}n*t|j}d|krjd|krj|jddd }|jd |S) Ngg?z.nanz.infz-.inf.ez.0erztag:yaml.org,2002:float) inf_valuereprlowerreplacer,)rrr+r r r represent_floats   zSafeRepresenter.represent_floatcCs |jd|S)Nztag:yaml.org,2002:seq)r3)rrr r r represent_listszSafeRepresenter.represent_listcCs |jd|S)Nztag:yaml.org,2002:map)r=)rrr r r represent_dictszSafeRepresenter.represent_dictcCs&i}x|D] }d||<q W|jd|S)Nztag:yaml.org,2002:set)r=)rrr+keyr r r represent_sets  zSafeRepresenter.represent_setcCs|j}|jd|S)Nztag:yaml.org,2002:timestamp) isoformatr,)rrr+r r r represent_dateszSafeRepresenter.represent_datecCs|jd}|jd|S)N ztag:yaml.org,2002:timestamp)r\r,)rrr+r r r represent_datetimes z"SafeRepresenter.represent_datetimeNcCs.t|dr|j}n |jj}|j|||dS)N __getstate__)r-)r6r`r#r$r=)rr*rr%r-stater r r represent_yaml_objects   z%SafeRepresenter.represent_yaml_objectcCstd|dS)Nzcannot represent an object: %s)r)rrr r r represent_undefinedsz#SafeRepresenter.represent_undefined)N)rr r rrDrErLrOrPrSrTrWrXrYr[r]r_rbrcr r r r rs"  c@s<eZdZddZddZddZddZd d Zd d Zd S)rcCsd|jdkrd|j}nB|jdkr,d|j}n,|jdkrHd|j|jf}nd|j|jf}|jd|S)Ngz%rz%rjrz%r+%rjz%r%rjz tag:yaml.org,2002:python/complex)imagrealr,)rrr r r represent_complexs     zRepresenter.represent_complexcCs |jd|S)Nztag:yaml.org,2002:python/tuple)r3)rrr r r represent_tupleszRepresenter.represent_tuplecCs d|j|jf}|jd|dS)Nz%s.%sztag:yaml.org,2002:python/name:)r rr,)rrnamer r r represent_nameszRepresenter.represent_namecCs|jd|jdS)Nz tag:yaml.org,2002:python/module:rh)r,r)rrr r r represent_module"szRepresenter.represent_modulec Cst|}|tjkr"tj||}n6t|dr8|jd}n t|drL|j}n td|t|dgddd}|\}}}}}t|}|dkri}|dk rt|}|dk rt|}|j dkr|d}|dd}d } d } nd } d } d |j |j f} | r.| r.| r.t |tr.| r.|j d| |S| rb| rbt |trb| rb|j | | |Si} |rt|| d<|st |t r|| d<|r|| d<|r|| d<|j | | | S)N __reduce_ex__ __reduce__zcannot represent object: %r __newobj__rrz$tag:yaml.org,2002:python/object/new:Tz&tag:yaml.org,2002:python/object/apply:Fz%s.%sz tag:yaml.org,2002:python/object:argsra listitems dictitems)rcopyregdispatch_tabler6rlrnrr7dictrr r/r=r3) rrr%reduceZfunctionrqrarrrsr*newobjZ function_namer+r r r represent_object&sT         zRepresenter.represent_objectcCs8t|}d|j|jf}dd|jD}|j||gS)Nz+tag:yaml.org,2002:python/object/apply:%s.%scSsg|]\}}||gqSr r ).0rZr+r r r isz6Representer.represent_ordered_dict..)rr rr4r3)rrr"r*r4r r r represent_ordered_dictds z"Representer.represent_ordered_dictN) rr r rfrgrjrkryr|r r r r rs  >)3__all__errornodesdatetimesysrttypesrI collections YAMLErrorrrrr'rrDr!rEr@rLrArOrBrPrCrWr7rXr?rvrYsetr[dater]r_rcrcomplexrfrgrj OrderedDictr| FunctionTypeBuiltinFunctionType ModuleTyperkr(objectryr r r r sd0wc ^