3 g÷ÔY #ã@s&ddgZddlTddlTddlZGdd„deƒZGdd„dƒZGd d„deƒZejd ej d ej ƒe d ƒƒejd ej dej ƒe dƒƒejdej dej ƒe dƒƒejdej dƒdgƒejdej dej ƒddddgƒejdej dej ƒe dƒƒejdej d ƒd!gƒejd"ej d#ƒe d$ƒƒdS)%Ú BaseResolverÚResolveré)Ú*éNc@s eZdZdS)Ú ResolverErrorN)Ú__name__Ú __module__Ú __qualname__©r r ú>/Users/olari/OneDrive/sandbox/awsBlog2/lambda/yaml/resolver.pyr src@sbeZdZdZdZdZiZiZdd„Ze dd„ƒZ e dd d „ƒZ d d „Z d d„Z dd„Zdd„ZdS)rztag:yaml.org,2002:strztag:yaml.org,2002:seqztag:yaml.org,2002:mapcCsg|_g|_dS)N)Úresolver_exact_pathsÚresolver_prefix_paths)Úselfr r r Ú__init__szBaseResolver.__init__cCsrd|jkr:i}x$|jD]}|j|dd…||<qW||_|dkrHdg}x$|D]}|jj|gƒj||fƒqNWdS)NÚyaml_implicit_resolvers)Ú__dict__rÚ setdefaultÚappend)ÚclsÚtagÚregexpÚfirstZimplicit_resolversÚkeyÚchr r r Úadd_implicit_resolvers   z"BaseResolver.add_implicit_resolverNcCsrd|jkr|jjƒ|_g}xê|D]â}t|ttfƒrpt|ƒdkrH|\}}qxt|ƒdkrb|d}d}qxtd|ƒ‚nd}|}|tkr†t }nJ|tkr”t }n<|t kr¢t }n.|t t t gkrÐt|tƒ rÐ|dk rÐtd|ƒ‚t|tt fƒ rô|dk rôtd|ƒ‚|j||fƒq W|tkrt }nF|tkr&t }n6|t kr6t }n&|t t t gkr\|dk r\td |ƒ‚||jt|ƒ|f<dS) NÚyaml_path_resolversérrTzInvalid path element: %szInvalid node checker: %szInvalid index checker: %szInvalid node kind: %s)rrÚcopyÚ isinstanceÚlistÚtupleÚlenrÚstrÚ ScalarNodeÚ SequenceNodeÚdictÚ MappingNodeÚintr)rrÚpathÚkindÚnew_pathÚelementÚ node_checkÚ index_checkr r r Úadd_path_resolver%sJ              zBaseResolver.add_path_resolvercCsÐ|js dSi}g}|rzt|jƒ}x’|jdD]H\}}|j|||||ƒr,t|ƒ|krb|j||fƒq,|j||f||<q,Wn:x8|jD].\}}|s¢|j||f||<q‚|j||fƒq‚W|jj|ƒ|jj|ƒdS)Nréÿÿÿÿ)rr!r Úcheck_resolver_prefixrr )rÚ current_nodeÚ current_indexÚ exact_pathsZ prefix_pathsÚdepthr(r)r r r Údescend_resolver[s$    zBaseResolver.descend_resolvercCs"|js dS|jjƒ|jjƒdS)N)rr Úpopr )rr r r Úascend_resolverrs zBaseResolver.ascend_resolvercCsº||d\}}t|tƒr*|j|kr@dSn|dk r@t||ƒs@dS|dkrT|dk rTdS|dksd|dkrp|dkrpdSt|tƒr”t|tƒoŒ||jks¶dSn"t|tƒr¶t|tƒ r¶||kr¶dSdS)NrTF)rr"rr#Úvaluer'Úbool)rr4r(r)r1r2r,r-r r r r0xs(      z"BaseResolver.check_resolver_prefixcCsÒ|tkrt|drt|dkr(|jjdgƒ}n|jj|dgƒ}||jjdgƒ7}x|D]\}}|j|ƒrR|SqRW|d}|jr¤|jd}||kr”||Sd|kr¤|dS|tkr²|jS|tkrÀ|jS|t krÎ|j SdS)NrÚrr/) r#rÚgetÚmatchrr ÚDEFAULT_SCALAR_TAGr$ÚDEFAULT_SEQUENCE_TAGr&ÚDEFAULT_MAPPING_TAG)rr)r8ÚimplicitZ resolversrrr3r r r Úresolves*  zBaseResolver.resolve)N)rrr r=r>r?rrrÚ classmethodrr.r5r7r0rAr r r r r s  5c@s eZdZdS)rN)rrr r r r r r§sztag:yaml.org,2002:boolzz^(?:yes|Yes|YES|no|No|NO |true|True|TRUE|false|False|FALSE |on|On|ON|off|Off|OFF)$Z yYnNtTfFoOztag:yaml.org,2002:floatzý^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)? |\.[0-9_]+(?:[eE][-+][0-9]+)? |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]* |[-+]?\.(?:inf|Inf|INF) |\.(?:nan|NaN|NAN))$z -+0123456789.ztag:yaml.org,2002:intzÆ^(?:[-+]?0b[0-1_]+ |[-+]?0[0-7_]+ |[-+]?(?:0|[1-9][0-9_]*) |[-+]?0x[0-9a-fA-F_]+ |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$z -+0123456789ztag:yaml.org,2002:mergez^(?:<<)$úsX