o
    
i!                     @   s8  d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 	 dZG d	d
 d
e	Zejd  dkZejd  dkZerJdd Zdd Zdd Zn	 dd Zdd Zdd ZereZeZ e!Z"eZ#e$Z%ej&Z'e(Z)d dl*Z*e*j+Z+e*j,Z,eZ-d dl.m/Z/m0Z0m1Z1m2Z2 n.e3Zee4fZ e!ej5fZ"eZ#eZ%e)Z)d dl+m+Z6 e6Z+d dl7Z7e7j+Z,e4Z-d dlm/Z/m0Z0m1Z1m2Z2 	 erdZ;ndZ;ej<dkrdndZ=dd Z>dZ?dZ@dZAdaBdejCv rejCDdZEeEdu rd aBneeEaBeFtBrG d d! d!eGZHeH ZId/d"d#ZJG d$d% d%eGZKeK ZLeKd&ZMd'd( ZNd)d* ZOd/d+d,ZPG d-d. d.e0ZQdS )0    )print_functionN)abstractmethod)OrderedDictF)	AnyDictOptionalListUnionBinaryIOIOTextTuple)r   )      c                   @   s"   e Zd Zeedsdd ZdS dS )ordereddictinsertc                 C   sj   |t | kr|| |< d S t }||  |D ]}| |= qt|D ]\}}||kr,|| |< || | |< q d S N)lenr   update	enumerate)selfposkeyvalueodkindexold_key r   L/home/ubuntu/.local/lib/python3.10/site-packages/srsly/ruamel_yaml/compat.pyr      s   
zordereddict.insertN)__name__
__module____qualname__hasattrr   r   r   r   r   r   r      s    
r   r      c                 C      | S r   r   sr   r   r   utf80      r(   c                 C   r%   r   r   r&   r   r   r   to_str4   r)   r*   c                 C   r%   r   r   r&   r   r   r   
to_unicode8   r)   r+   c                 C   s
   |  dS )Nzutf-8)encoder&   r   r   r   r(   A      
c                 C      t | S r   )strr&   r   r   r   r*   E      c                 C   r.   r   )unicoder&   r   r   r   r+   I   r0   )HashableMutableSequenceMutableMappingMapping)StringIObuiltins__builtin__i     c                 G   s   | d|i S )z%Create a base class with a metaclass.NewBaser   )metabasesr   r   r   with_metaclass   s   r=   r   RUAMELDEBUGc                   @   s$   e Zd Zdd Zdd Zdd ZdS )ObjectCounterc                 C   s
   i | _ d S r   )mapr   r   r   r   __init__   r-   zObjectCounter.__init__c                 C   s   | j |dd | j |< d S )Nr   r   )r@   getr   r   r   r   r   __call__   s   zObjectCounter.__call__c                 C   s.   t | jD ]}tjd|| j|  qd S )Nz{} -> {})sortedr@   sysstdoutwriteformatrD   r   r   r   dump   s   zObjectCounter.dumpN)r    r!   r"   rB   rE   rK   r   r   r   r   r?      s    r?   c                 C   s>   t d u rtjd}|d u rda nt|a | d u rt S t | @ S )N	YAMLDEBUGr   )_debugosenvironrC   int)val_debugxr   r   r   dbg   s   rS   c                   @   s&   e Zd ZdddZdd Zdd ZdS )	NprintNc                 C   s   d | _ d | _|| _d S r   )
_max_print_count
_file_name)r   	file_namer   r   r   rB      s   
zNprint.__init__c                 O   s   t tsd S | jd u rtjnt| jd}t}| }||d< ||i | |  | j	d urT| j
d u r7| j	| _
|  j
d8  _
| j
dkrT|d t  |  td | jr]|  d S d S )Nafiler   r   zforced exit
)boolrM   rW   rG   rH   openprintcopyflushrU   rV   	tracebackprint_stackexitclose)r   argskwoutdbgprintkw1r   r   r   rE      s(   



zNprint.__call__c                 C   s   || _ d | _d S r   )rU   rV   )r   ir   r   r   set_max_print   s   
zNprint.set_max_printr   )r    r!   r"   rB   rE   rj   r   r   r   r   rT      s    
rT   z/var/tmp/srsly.ruamel_yaml.logc                 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   chr   r   r   check_namespace_char   s    rp   c                 C   s   | dv rdS t | S )Nz,[]{}F)rp   rn   r   r   r   check_anchorname_char   s   rq   c                 C   s0   ddl m} || k rdS |dur||k rdS dS )zk
    return True if srsly.ruamel_yaml version_info < t1, None if t2 is specified and bigger else False
    r   )version_infoTNF)srsly.ruamel_yamlrr   )t1t2rr   r   r   r   version_tnf   s   rv   c                   @   sL   e Zd ZdZdd Zdd Zdd Zedd	 Zed
d Z	edd Z
dS )MutableSliceableSequencer   c                    s<   t |ts
 |S t  fddt|t  D S )Nc                    s   g | ]} | qS r   r   ).0ri   rA   r   r   
<listcomp>  s    z8MutableSliceableSequence.__getitem__.<locals>.<listcomp>)
isinstanceslice__getsingleitem__typerangeindicesr   r   r   r   rA   r   __getitem__  s
   

z$MutableSliceableSequence.__getitem__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|t
||t
|krktd|t
|tt| D ]
\}}|| | |< qqd S )Nr   r   r   z"too many elements in value {} < {}z$not enough elements in value {} > {})rz   r{   __setsingleitem__iterstepstartstopreversedr   r   r   	TypeErrorrJ   r   r~   )r   r   r   elemrange_parmsnr_assigned_itemsidxri   r   r   r   __setitem__  s:   

z$MutableSliceableSequence.__setitem__c                 C   s:   t |ts
| |S tt|t|  D ]}| |= qd S r   )rz   r{   __delsingleitem__r   r~   r   r   )r   r   ri   r   r   r   __delitem__3  s
   

z$MutableSliceableSequence.__delitem__c                 C      t r   
IndexErrorr   r   r   r   r|   ;     z*MutableSliceableSequence.__getsingleitem__c                 C   r   r   r   )r   r   r   r   r   r   r   @  r   z*MutableSliceableSequence.__setsingleitem__c                 C   r   r   r   r   r   r   r   r   E  r   z*MutableSliceableSequence.__delsingleitem__N)r    r!   r"   	__slots__r   r   r   r   r|   r   r   r   r   r   r   rw   	  s    

rw   r   )R
__future__r   rG   rN   typesr`   abcr   collectionsr   typingr   r   r   r   r	   r
   r   r   r   _DEFAULT_YAML_VERSIONr   rr   PY2PY3r(   r*   r+   r/   r1   string_typesrP   integer_typesr}   class_types	text_typebytesbinary_typemaxsizeMAXSIZEchrunichrior6   BytesIOno_limit_intcollections.abcr2   r3   r4   r5   
basestringlong	ClassType	_StringIO	cStringIO
StreamTypeStreamTextTypeVersionTypebuiltins_module
maxunicodeUNICODE_SIZEr=   	DBG_TOKEN	DBG_EVENTDBG_NODErM   rO   rC   rR   r[   objectr?   object_counterrS   rT   nprintnprintfrp   rq   rv   rw   r   r   r   r   <module>   s   



#
