o
    P+ iV;                     @  s  d dl mZ d dlZ	 d dlmZ d dl
mZ d dlT d d	lmZmZmZ d d
lmZ g dZdgdedejedfdgdedejedfdgdedejedfdgdedejedfdgdedejedfdgdedejedfddgdeddgfddgdedejg d fddgd!ed"ejed#fddgd$ed%d&gfddgd'ed(ed)fgZG d*d+ d+eZG d,d- d-ZG d.d/ d/eZeD ]Zded  v rejed0d   qG d1d2 d2eZ dS )3    )annotationsNF)AnyDictListUnionTextOptional)VersionType)Tag)_DEFAULT_YAML_VERSION)*)MappingNode
ScalarNodeSequenceNode)RegExp)BaseResolverResolverVersionedResolver      ztag:yaml.org,2002:boolz&^(?:true|True|TRUE|false|False|FALSE)$ZtTfFr   r   zj^(?:y|Y|yes|Yes|YES|n|N|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][0-9_]*)(?:[eE][-+]?[0-9]+)
        |[-+]?\.[0-9_]+(?:[eE][-+][0-9]+)?
        |[-+]?\.(?:inf|Inf|INF)
        |\.(?:nan|NaN|NAN))$z-+0123456789.a  ^(?:
         [-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+]?[0-9]+)?
        |[-+]?(?:[0-9][0-9_]*)(?:[eE][-+]?[0-9]+)
        |\.[0-9_]+(?:[eE][-+][0-9]+)?
        |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*  # sexagesimal float
        |[-+]?\.(?:inf|Inf|INF)
        |\.(?:nan|NaN|NAN))$ztag:yaml.org,2002:intza^(?:[-+]?0b[0-1_]+
        |[-+]?0o?[0-7_]+
        |[-+]?[0-9_]+
        |[-+]?0x[0-9a-fA-F_]+)$z-+0123456789z^(?:[-+]?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tag:yaml.org,2002:mergez^(?:<<)$<ztag:yaml.org,2002:nullz+^(?: ~
        |null|Null|NULL
        | )$)~nN ztag:yaml.org,2002:timestampz^(?:[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!&*c                   @     e Zd ZdS )ResolverErrorN__name__
__module____qualname__ r%   r%   `/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ruamel/yaml/resolver.pyr    f       r    c                   @  s   e Zd ZU eddZeddZeddZi Zded< i Z	ded< d.d/ddZ
ed0ddZed1ddZed1ddZed.d2ddZd3dd Zd4d!d"Zd5d&d'Zd6d*d+Zed0d,d-ZdS )7r   ztag:yaml.org,2002:strsuffixztag:yaml.org,2002:seqztag:yaml.org,2002:mapzDict[Any, Any]yaml_implicit_resolversyaml_path_resolversNselfr   	loadumperreturnNonec                 C  sB   || _ | j d urt| j dd d u r| j | j _d | _g | _g | _d S )N	_resolver)r-   getattrr0   _loader_versionresolver_exact_pathsresolver_prefix_paths)r,   r-   r%   r%   r&   __init__s   s   

zBaseResolver.__init__c                 C  s*   | j d urt| j dr| j jS | j jS d S Ntyp)r-   hasattrparser_parserr,   r%   r%   r&   r9   {   s
   
zBaseResolver.parsertagregexpfirstc                   sT   d j vr fdd jD  _|d u rd g}|D ]} j|g ||f qd S )Nr*   c                       i | ]}| j | d d  qS Nr*   .0kclsr%   r&   
<dictcomp>       z;BaseResolver.add_implicit_resolver_base.<locals>.<dictcomp>)__dict__r*   
setdefaultappendrF   r<   r=   r>   chr%   rE   r&   add_implicit_resolver_base   s   

z'BaseResolver.add_implicit_resolver_basec                   sj   d j vr fdd jD  _|d u rd g}|D ]} j|g ||f qtddg|||f d S )Nr*   c                   r?   r@   rA   rB   rE   r%   r&   rG      rH   z6BaseResolver.add_implicit_resolver.<locals>.<dictcomp>r   r   )rI   r*   rJ   rK   implicit_resolversrL   r%   rE   r&   add_implicit_resolver   s   

z"BaseResolver.add_implicit_resolverpathkindc                 C  sf  d| j vr| j | _g }|D ]q}t|ttfr7t|dkr#|\}}nt|dkr0|d }d}ntd|d }|}|tu rBt	}n%|tu rIt
}n|tu rPt}n|t	t
tfvrgt|tsg|d urgtd|t|ttfsy|d urytd||||f q|tu rt	}n |tu rt
}n|tu rt}n|t	t
tfvr|d urtd	||| jt||f< d S )
Nr+   r   r   r   TzInvalid path element: zInvalid node checker: zInvalid index checker: zInvalid node kind: )rI   r+   copy
isinstancelisttuplelenr    strr   r   dictr   intrK   )rF   r<   rQ   rR   new_pathelement
node_checkindex_checkr%   r%   r&   add_path_resolver   sH   

zBaseResolver.add_path_resolvercurrent_nodecurrent_indexc                 C  s   | j sd S i }g }|r;t| j}| jd D ]$\}}| |||||r9t||kr0|||f q| j ||f ||< qn| j D ]\}}|sN| j ||f ||< q>|||f q>| j| | j| d S )N)r+   rW   r4   check_resolver_prefixrK   r3   )r,   r`   ra   exact_pathsZprefix_pathsdepthrQ   rR   r%   r%   r&   descend_resolver   s&   
zBaseResolver.descend_resolverc                 C  s"   | j sd S | j  | j  d S r@   )r+   r3   popr4   r;   r%   r%   r&   ascend_resolver   s   
zBaseResolver.ascend_resolverre   rZ   boolc                 C  s   ||d  \}}t |tr|j|krdS n|d ur t ||s dS |du r*|d ur*dS |du s2|d u r8|d u r8dS t |trKt |trG||jksIdS dS t |tr[t |ts[||kr[dS dS )Nr   FT)rT   rX   r<   r   valuerZ   ri   )r,   re   rQ   rR   r`   ra   r]   r^   r%   r%   r&   rc      s,   




z"BaseResolver.check_resolver_prefixrj   implicitc                 C     |t u r=|d r=|dkr| jdg }n	| j|d g }|| jd g 7 }|D ]\}}||r8t|d  S q(|d }t| jr]| jd }||v rRt|| dS d |v r]t|d  dS |t u rd| jS |t	u rk| j
S |tu rr| jS d S Nr   r   r(   r   rb   )r   r*   getmatchr
   ri   r+   r3   DEFAULT_SCALAR_TAGr   DEFAULT_SEQUENCE_TAGr   DEFAULT_MAPPING_TAGr,   rR   rj   rk   	resolversr<   r=   rd   r%   r%   r&   resolve	  .   


zBaseResolver.resolvec                 C  s   d S r@   r%   r;   r%   r%   r&   processing_version!  s   zBaseResolver.processing_versionr@   )r,   r   r-   r   r.   r/   r.   r   )r<   r   r=   r   r>   r   r.   r/   )r<   r   rQ   r   rR   r   r.   r/   )r`   r   ra   r   r.   r/   )r.   r/   )re   rZ   rQ   r   rR   r   r`   r   ra   r   r.   ri   rR   r   rj   r   rk   r   r.   r   )r"   r#   r$   r
   rp   rq   rr   r*   __annotations__r+   r5   propertyr9   classmethodrN   rP   r_   rf   rh   rc   ru   rw   r%   r%   r%   r&   r   j   s*   
 



5


r   c                   @  r   )r   Nr!   r%   r%   r%   r&   r   &  r'   r   r   c                   @  sX   e Zd ZdZ	ddd
dZdddZd ddZed!ddZd"ddZ	ed!ddZ
dS )#r   a  
    contrary to the "normal" resolver, the smart resolver delays loading
    the pattern matching rules. That way it can decide to load 1.1 rules
    or the (default) 1.2 rules, that no longer support octal without 0o, sexagesimals
    and Yes/No/On/Off booleans.
    NversionOptional[VersionType]loaderr   r-   r.   r/   c                 C  s6   |d u r
|d ur
|}t | | | || _i | _d S r@   )r   r5   get_loader_versionr2   _version_implicit_resolver)r,   r}   r   r-   r%   r%   r&   r5   7  s
   
zVersionedResolver.__init__r	   r<   r=   r>   c                 C  s@   |d u rd g}| j |i }|D ]}||g ||f qd S r@   )r   rJ   rK   )r,   r}   r<   r=   r>   Zimpl_resolverrM   r%   r%   r&   add_version_implicit_resolver@  s   z/VersionedResolver.add_version_implicit_resolverc                 C  sJ   |d u s	t |tr|S t |trt|S t |tsJ ttt|dS )N.)rT   rV   rU   rX   maprZ   splitr,   r}   r%   r%   r&   r   I  s   
z$VersionedResolver.get_loader_versionc                 C  sj   | j }t|trttt|d}|| jvr0tD ]}||d v r/| 	||d |d |d  q| j| S )zI
        select the resolver based on the version we are parsing
        r   r   r   r      )
rw   rT   rX   rV   r   rZ   r   r   rO   r   )r,   r}   xr%   r%   r&   versioned_resolverR  s   


z$VersionedResolver.versioned_resolverrR   rj   rk   c                 C  rl   rm   )r   r   rn   ro   r
   ri   r+   r3   rp   r   rq   r   rr   rs   r%   r%   r&   ru   `  rv   zVersionedResolver.resolvec                 C  s|   z| j jj}W n' ty.   zt| j dr| j j}n| j jj}W n ty+   d }Y nw Y nw |d u r<| j}|d u r<t	}|S r6   )
r-   Z_scannerZyaml_versionAttributeErrorr8   r}   Z_serializerZuse_versionr2   r   r   r%   r%   r&   rw   x  s$   

z$VersionedResolver.processing_version)NNN)r}   r~   r   r   r-   r   r.   r/   )
r}   r	   r<   r   r=   r   r>   r   r.   r/   )r}   r~   r.   r   rx   ry   )r"   r#   r$   __doc__r5   r   r   r{   r   ru   rw   r%   r%   r%   r&   r   /  s    
	
		
r   )!
__future__r   retypingr   r   r   r   r   r   Zruamel.yaml.compatr	   Zruamel.yaml.tagr
   r   Zruamel.yaml.errorZruamel.yaml.nodesr   r   r   Zruamel.yaml.utilr   __all__XrU   rO   Z	YAMLErrorr    r   r   ZirrN   r   r%   r%   r%   r&   <module>   s   

	
M =