o
    jqi                     @  sf  U d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dl	m
Z
 	 d	Zzd d
lmZ W n ey=   d d
lmZ Y nw G dd deZejZej Z dZ!d.ddZ"dZ#dZ$dZ%dZ&de'd< dej(v ruej()dZ*e*du rqd Z&nee*Z&e+e&rG dd dZ,e, Z-d/d0ddZ.G dd  d Z/e/ Z0e/d!Z1d1d$d%Z2d1d&d'Z3d/d2d*d+Z4G d,d- d-ejj5Z6dS )3    )annotationsN)abstractmethod)VersionF)	AnyDictOptionalListUnionBinaryIOIOTextTuple)r   )SupportsIndex)      )OrderedDictc                   @  s$   e Zd Zeedsdd	d
ZdS dS )ordereddictinsertposintkeyr   valuereturnNonec                 C  sj   |t | kr|| |< d S t }||  |D ]}| |= qt|D ]\}}||kr,|| |< || | |< q d S N)lenr   update	enumerate)selfr   r   r   Zodkindexold_key r"   Y/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/ruamel/yaml/compat.pyr   )   s   
zordereddict.insertN)r   r   r   r   r   r   r   r   )__name__
__module____qualname__hasattrr   r   r"   r"   r"   r#   r   &   s    
r   builtinsmetar   basesr   c                 G  s   | d|i S )z%Create a base class with a metaclass.ZNewBaser"   )r)   r*   r"   r"   r#   with_metaclass>   s   r+   r   r      zOptional[int]_debugZRUAMEL_DEBUGc                   @  s*   e Zd ZdddZdddZdd	d
ZdS )ObjectCounterr   r   c                 C  s
   i | _ d S r   )mapr   r"   r"   r#   __init__T   s   
zObjectCounter.__init__r   r   c                 C  s   | j |dd | j |< d S )Nr   r   )r/   getr   r   r"   r"   r#   __call__W   s   zObjectCounter.__call__c                 C  s0   t | jD ]}tj| d| j|   qd S )Nz -> )sortedr/   sysstdoutwriter3   r"   r"   r#   dumpZ   s   zObjectCounter.dumpN)r   r   )r   r   r   r   )r$   r%   r&   r1   r4   r9   r"   r"   r"   r#   r.   S   s    

r.   valc                 C  sB   t }|d u rtjd}|d u rd}nt|}| d u r|S || @ S )NZ	YAMLDEBUGr   )r-   osenvironr2   r   )r:   debug_debugxr"   r"   r#   dbgb   s   r?   c                   @  s8   e Zd ZddddZdd
dZdddZddddZdS )NprintN	file_namer   r   r   c                 C  s   d | _ d | _|| _d S r   )
_max_print_count
_file_name)r   rA   r"   r"   r#   r1   q   s   
zNprint.__init__argskwc                 O  s   t tsd S dd l}| jd u rtjnt| jd}t}| }||d< ||i | |	  | j
d urX| jd u r;| j
| _|  jd8  _| jdkrX|d |  |	  td | jra|  d S d S )Nr   afiler   zforced exit
)boolr-   	tracebackrD   r6   r7   openprintcopyflushrB   rC   print_stackexitclose)r   rE   rF   rJ   outZdbgprintZkw1r"   r"   r#   r4   v   s*   



zNprint.__call__ir   c                 C  s   || _ d | _d S r   )rB   rC   )r   rS   r"   r"   r#   set_max_print   s   
zNprint.set_max_printrG   modestrc                 C  s$   | j d u r
tj}|S t| j |}|S r   )rD   r6   r7   rK   )r   rU   rR   r"   r"   r#   fp   s   z	Nprint.fpr   )rA   r   r   r   )rE   r   rF   r   r   r   )rS   r   r   r   )rG   )rU   rV   r   r   )r$   r%   r&   r1   r4   rT   rW   r"   r"   r"   r#   r@   p   s
    

r@   z/var/tmp/ruamel.yaml.logchrI   c                 C  st   d|   krdkrdS  d|   krdkrdS  d|   kr"dkr*n n| dkr*dS d	|   kr5d
kr8dS  dS dS )N!~T    u   ퟿u   u   �u   ﻿u   𐀀u   􏿿Fr"   rX   r"   r"   r#   check_namespace_char   s    r]   c                 C  s   | dv rdS t | S )Nz,[]{}F)r]   r\   r"   r"   r#   check_anchorname_char   s   r^   t1t2c                 C  s0   ddl m} || k rdS |dur||k rdS dS )ze
    return True if ruamel.yaml version_info < t1, None if t2 is specified and bigger else False
    r   )version_infoTNF)Zruamel.yamlra   )r_   r`   ra   r"   r"   r#   version_tnf   s   rb   c                   @  sX   e Zd ZdZdddZdd	d
ZdddZedddZedddZ	edddZ
dS )MutableSliceableSequencer"   r    r   r   c                   s<   t |ts
 |S t  fddt|t  D S )Nc                   s   g | ]} | qS r"   r"   ).0rS   r0   r"   r#   
<listcomp>   s    z8MutableSliceableSequence.__getitem__.<locals>.<listcomp>)
isinstanceslice__getsingleitem__typerangeindicesr   r   r    r"   r0   r#   __getitem__   s   

(z$MutableSliceableSequence.__getitem__r   r   c                 C  s  t |ts| ||S t|sJ |jd u r4| |j|j= t|D ]}| |jd u r,dn|j| q!d S |	t
| }|d |d  d |d  d }|t
|k r]td| dt
| |t
|krotd| dt
| tt| D ]
\}}|| | |< qud S )Nr   r   r   ztoo many elements in value z < znot enough elements in value z > )rf   rg   __setsingleitem__iterstepstartstopreversedr   rk   r   	TypeErrorr   rj   )r   r    r   elemZrange_parmsZnr_assigned_itemsidxrS   r"   r"   r#   __setitem__   s*   

 z$MutableSliceableSequence.__setitem__c                 C  s:   t |ts
| |S tt|t|  D ]}| |= qd S r   )rf   rg   __delsingleitem__rs   rj   rk   r   )r   r    rS   r"   r"   r#   __delitem__   s
   

z$MutableSliceableSequence.__delitem__c                 C     t r   
IndexErrorrl   r"   r"   r#   rh         z*MutableSliceableSequence.__getsingleitem__c                 C  rz   r   r{   )r   r    r   r"   r"   r#   rn      r}   z*MutableSliceableSequence.__setsingleitem__c                 C  rz   r   r{   rl   r"   r"   r#   rx      r}   z*MutableSliceableSequence.__delsingleitem__N)r    r   r   r   )r    r   r   r   r   r   )r    r   r   r   )r$   r%   r&   	__slots__rm   rw   ry   r   rh   rn   rx   r"   r"   r"   r#   rc      s    


rc   )r)   r   r*   r   r   r   r   )r:   r   r   r   )rX   r   r   rI   )r_   r   r`   r   r   r   )7
__future__r   r6   r;   ioabcr   collections.abccollectionsZruamel.yaml.docinfor   typingr   r   r   r   r	   r
   r   r   r   r   ImportErrorr   Z
StreamTypeZStreamTextTyperV   ZVersionTypeZ_DEFAULT_YAML_VERSIONr   r   StringIOBytesIOZbuiltins_moduler+   Z	DBG_TOKENZ	DBG_EVENTZDBG_NODEr-   __annotations__r<   r2   r>   rI   r.   Zobject_counterr?   r@   ZnprintZnprintfr]   r^   rb   MutableSequencerc   r"   r"   r"   r#   <module>   sN   

&

