o `'#@s"ddgZddlTddlTddlZGdddeZGdddZGd ddeZed e d ej e d ed e dej e dede dej e dede ddgede dej gdede dej e dede ddgede d e d!dS)" BaseResolverResolver)*Nc@ eZdZdS) ResolverErrorN__name__ __module__ __qualname__r r //usr/lib/python3/dist-packages/yaml/resolver.pyr rc@sbeZdZdZdZdZiZiZddZe ddZ e dd d Z d d Z d dZ ddZddZdS)rztag:yaml.org,2002:strztag:yaml.org,2002:seqztag:yaml.org,2002:mapcCsg|_g|_dSN)resolver_exact_pathsresolver_prefix_pathsselfr r r __init__s zBaseResolver.__init__cCsjd|jvri}|jD] }|j|dd||<q ||_|dur"dg}|D]}|j|g||fq$dS)Nyaml_implicit_resolvers)__dict__r setdefaultappend)clstagregexpfirstimplicit_resolverskeychr r r add_implicit_resolvers  z"BaseResolver.add_implicit_resolverNcCs^d|jvr |j|_g}|D]n}t|ttfr6t|dkr#|\}}nt|dkr0|d}d}n td|d}|}|turAt }n$|turHt }n|t urOt }n|t t t fvret|tse|duretd|t|tt fsv|durvtd||||fq|turt }n|turt }n|t urt }n|t t t fvr|durtd |||jt||f<dS) Nyaml_path_resolversrrTzInvalid path element: %szInvalid node checker: %szInvalid index checker: %szInvalid node kind: %s)rr!copy isinstancelisttuplelenrstr ScalarNode SequenceNodedict MappingNodeintr)rrpathkindnew_pathelement node_check index_checkr r r add_path_resolver%sL         zBaseResolver.add_path_resolvercCs|jsdSi}g}|r;t|j}|jdD]$\}}||||||r9t||kr0|||fq|j||f||<qn|jD]\}}|sN|j||f||<q>|||fq>|j||j|dS)N)r!r'rcheck_resolver_prefixrr)r current_node current_index exact_paths prefix_pathsdepthr.r/r r r descend_resolver[s*    zBaseResolver.descend_resolvercCs"|jsdS|j|jdSr)r!rpoprrr r r ascend_resolverrs zBaseResolver.ascend_resolvercCs||d\}}t|tr|j|krdSn |dur t||s dS|dur*|dur*dS|dus2|dur8|dur8dSt|trKt|trG||jksIdSdSt|tr[t|ts[||kr[dSdS)NrTF)r$r(rr)valuer-bool)rr;r.r/r7r8r2r3r r r r6xs,      z"BaseResolver.check_resolver_prefixc Cs|tur:|dr:|dkr|jdg}n |j|dg}|jdg}||D] \}}||r5|Sq(|d}|jrR|jd}||vrJ||Sd|vrR|dS|turY|jS|tur`|jS|t urg|j SdS)Nrrr5) r)rgetmatchr!rDEFAULT_SCALAR_TAGr*DEFAULT_SEQUENCE_TAGr,DEFAULT_MAPPING_TAG) rr/r?implicit resolverswildcard_resolversrrr9r r r resolves.  zBaseResolver.resolver)r r r rDrErFrr!r classmethodr r4r<r>r6rJr r r r r s  5 c@r)rNrr r r r rrztag:yaml.org,2002:boolzz^(?:yes|Yes|YES|no|No|NO |true|True|TRUE|false|False|FALSE |on|On|ON|off|Off|OFF)$ 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^(?:<<)$st