3
QŽfXt"  ã               @   s&  d dgZ ddlT ddlT ddlZG dd„ deƒZG dd „ d ƒZG d	d„ deƒZejd
ej	dej
ƒedƒƒ ejdej	dej
ƒedƒƒ ejdej	dej
ƒedƒƒ ejdej	dƒdgƒ ejdej	dej
ƒddddgƒ ejdej	dej
ƒedƒƒ ejdej	d ƒd!gƒ ejd"ej	d#ƒed$ƒƒ dS )%ÚBaseResolverÚResolveré   )Ú*é    Nc               @   s   e Zd ZdS )ÚResolverErrorN)Ú__name__Ú
__module__Ú__qualname__© r
   r
   úV/home/psgendb/BIRCHDEV/pkg/SPAdes-3.15.4/linux-x86_64/share/spades/pyyaml3/resolver.pyr   	   s   r   c               @   sb   e Zd ZdZdZdZi Zi Zdd„ Ze	dd„ ƒZ
e	dd	d
„ƒZdd„ Zdd„ Zdd„ Zdd„ ZdS )r   ztag:yaml.org,2002:strztag:yaml.org,2002:seqztag:yaml.org,2002:mapc             C   s   g | _ g | _d S )N)Úresolver_exact_pathsÚresolver_prefix_paths)Úselfr
   r
   r   Ú__init__   s    zBaseResolver.__init__c             C   sN   d| j kr| jjƒ | _|d kr$d g}x$|D ]}| jj|g ƒj||fƒ q*W d S )NÚyaml_implicit_resolvers)Ú__dict__r   ÚcopyÚ
setdefaultÚappend)ÚclsÚtagÚregexpÚfirstÚchr
   r
   r   Úadd_implicit_resolver   s    

z"BaseResolver.add_implicit_resolverNc             C   sr  d| j kr| jjƒ | _g }xê|D ]â}t|ttfƒrpt|ƒdkrH|\}}qxt|ƒdkrb|d }d}qxtd| ƒ‚nd }|}|tkr†t	}nJ|tkr”t
}n<|tkr¢t}n.|t	t
tgkrÐt|tƒ rÐ|d k	rÐtd| ƒ‚t|ttfƒ rô|d k	rôtd| ƒ‚|j||fƒ q W |tkrt	}nF|tkr&t
}n6|tkr6t}n&|t	t
tgkr\|d k	r\td	| ƒ‚|| jt|ƒ|f< d S )
NÚyaml_path_resolversé   r   r   TzInvalid path element: %szInvalid node checker: %szInvalid index checker: %szInvalid node kind: %s)r   r   r   Ú
isinstanceÚlistÚtupleÚlenr   ÚstrÚ
ScalarNodeÚSequenceNodeÚdictÚMappingNodeÚintr   )r   r   ÚpathÚkindÚnew_pathÚelementÚ
node_checkÚindex_checkr
   r
   r   Úadd_path_resolver"   sJ    






zBaseResolver.add_path_resolverc             C   sÐ   | j s
d S i }g }|rzt| jƒ}x’| jd D ]H\}}| j|||||ƒr,t|ƒ|krb|j||fƒ q,| j ||f ||< q,W n:x8| j D ].\}}|s¢| j ||f ||< q‚|j||fƒ q‚W | jj|ƒ | jj|ƒ d S )Nr   éÿÿÿÿ)r   r    r   Úcheck_resolver_prefixr   r   )r   Úcurrent_nodeÚcurrent_indexÚexact_pathsZprefix_pathsÚdepthr'   r(   r
   r
   r   Údescend_resolverX   s$    

zBaseResolver.descend_resolverc             C   s"   | j s
d S | jjƒ  | jjƒ  d S )N)r   r   Úpopr   )r   r
   r
   r   Úascend_resolvero   s    
zBaseResolver.ascend_resolverc             C   sº   ||d  \}}t |tƒr*|j|kr@d S n|d k	r@t ||ƒs@d S |dkrT|d k	rTd S |dksd|d krp|d krpd S t |tƒr”t |tƒoŒ||jks¶d S n"t |tƒr¶t |tƒ r¶||kr¶d S dS )Nr   TF)r   r!   r   r"   Úvaluer&   Úbool)r   r3   r'   r(   r0   r1   r+   r,   r
   r
   r   r/   u   s(    





z"BaseResolver.check_resolver_prefixc             C   sÒ   |t krt|d rt|dkr(| jjdg ƒ}n| jj|d g ƒ}|| jjd g ƒ7 }x|D ]\}}|j|ƒrR|S qRW |d }| jr¤| jd }||kr”|| S d |kr¤|d  S |t kr²| jS |tkrÀ| jS |t	krÎ| j
S d S )Nr   Ú r   r.   )r"   r   ÚgetÚmatchr   r   ÚDEFAULT_SCALAR_TAGr#   ÚDEFAULT_SEQUENCE_TAGr%   ÚDEFAULT_MAPPING_TAG)r   r(   r7   ÚimplicitZ	resolversr   r   r2   r
   r
   r   ÚresolveŒ   s*    

zBaseResolver.resolve)N)r   r   r	   r<   r=   r>   r   r   r   Úclassmethodr   r-   r4   r6   r/   r@   r
   r
   r
   r   r      s   	5c               @   s   e Zd ZdS )r   N)r   r   r	   r
   r
   r
   r   r   ¤   s   ztag:yaml.org,2002:boolzz^(?:yes|Yes|YES|no|No|NO
                    |true|True|TRUE|false|False|FALSE
                    |on|On|ON|off|Off|OFF)$Z
yYnNtTfFoOztag: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.ztag: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-+0123456789ztag:yaml.org,2002:mergez^(?:<<)$ú<ztag:yaml.org,2002:nullzC^(?: ~
                    |null|Null|NULL
                    | )$ú~ÚnÚNr9   ztag:yaml.org,2002:timestampa%  ^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
                    |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]?
                     (?:[Tt]|[ \t]+)[0-9][0-9]?
                     :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)?
                     (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$Ú
0123456789ztag:yaml.org,2002:valuez^(?:=)$ú=ztag:yaml.org,2002:yamlz^(?:!|&|\*)$z!&*)Ú__all__ÚerrorÚnodesÚreÚ	YAMLErrorr   r   r   r   ÚcompileÚXr   r
   r
   r
   r   Ú<module>   sX    



