o
    hz                     @   sh  d dl Z d dlZd dlZd dlZd dlmZ d dlZ	 dZzd dlmZ W n ey4   d dlmZ Y nw G dd	 d	eZe jd  d
kZe jd  dkZdd ZejZejZ	 dZ!dd Z"dZ#d
Z$dZ%da&dej'v rzej'(dZ)e)du rvd a&nee)a&e*t&rG dd dZ+e+ Z,d#ddZ-G dd dZ.e. Z/e.dZ0dd Z1dd Z2d#dd Z3G d!d" d"ejj4Z5dS )$    N)abstractmethodF)	AnyDictOptionalListUnionBinaryIOIOTextTuple)r   )      )OrderedDictc                   @   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valueZodkindexold_key r   Z/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/ruamel/yaml/compat.pyr       s   
zordereddict.insertN)__name__
__module____qualname__hasattrr   r   r   r   r   r   r      s    
r   r      c                 O   s   |rt | jdi |S )Nr   )	TypeErrorformat)sZsuperfluouskwr   r   r   _F7   s   r'   builtinsc                 G   s   | d|i S )z%Create a base class with a metaclass.ZNewBaser   )metabasesr   r   r   with_metaclassL   s   r+   r      Z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__c   s   
zObjectCounter.__init__c                 C   s   | j |dd | j |< d S )Nr   r   )r.   getr   r   r   r   r   __call__g   s   zObjectCounter.__call__c                 C   s.   t | jD ]}tjd|| j|  qd S )Nz{} -> {})sortedr.   sysstdoutwriter$   r2   r   r   r   dumpk   s   zObjectCounter.dumpN)r   r   r    r0   r3   r8   r   r   r   r   r-   b   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 )NZ	YAMLDEBUGr   )_debugosenvironr1   int)val_debugxr   r   r   dbgt   s   r?   c                   @   s0   e Zd ZdddZdd Zdd Zdd	d
ZdS )NprintNc                 C   s   d | _ d | _|| _d S r   )
_max_print_count
_file_name)r   	file_namer   r   r   r0      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
)boolr9   rC   r5   r6   openprintcopyflushrA   rB   	tracebackprint_stackexitclose)r   argsr&   outZdbgprintZkw1r   r   r   r3      s(   



zNprint.__call__c                 C   s   || _ d | _d S r   )rA   rB   )r   ir   r   r   set_max_print   s   
zNprint.set_max_printrE   c                 C   s$   | j d u r
tj}|S t| j |}|S r   )rC   r5   r6   rH   )r   moderQ   r   r   r   fp   s   z	Nprint.fpr   )rE   )r   r   r    r0   r3   rS   rU   r   r   r   r   r@      s
    
r@   z/var/tmp/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    r[   c                 C   s   | dv rdS t | S )Nz,[]{}F)r[   rY   r   r   r   check_anchorname_char   s   r\   c                 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.yamlr]   )t1t2r]   r   r   r   version_tnf   s   r`   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   ).0rR   r/   r   r   
<listcomp>   s    z8MutableSliceableSequence.__getitem__.<locals>.<listcomp>)
isinstanceslice__getsingleitem__typerangeindicesr   r   r   r   r/   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 {} > {})rd   re   __setsingleitem__iterstepstartstopreversedr   ri   r   r#   r$   r   rh   )r   r   r   elemZrange_parmsZnr_assigned_itemsidxrR   r   r   r   __setitem__   s.   

 z$MutableSliceableSequence.__setitem__c                 C   s:   t |ts
| |S tt|t|  D ]}| |= qd S r   )rd   re   __delsingleitem__rq   rh   ri   r   )r   r   rR   r   r   r   __delitem__   s
   

z$MutableSliceableSequence.__delitem__c                 C      t r   
IndexErrorrj   r   r   r   rf         z*MutableSliceableSequence.__getsingleitem__c                 C   rw   r   rx   )r   r   r   r   r   r   rl     rz   z*MutableSliceableSequence.__setsingleitem__c                 C   rw   r   rx   rj   r   r   r   ru   	  rz   z*MutableSliceableSequence.__delsingleitem__N)r   r   r    	__slots__rk   rt   rv   r   rf   rl   ru   r   r   r   r   ra      s    

ra   r   )6r5   r:   iorL   abcr   collections.abccollectionstypingr   r   r   r   r   r   r	   r
   r   Z_DEFAULT_YAML_VERSIONr   ImportErrorr   r]   PY2PY3r'   StringIOBytesIOZ
StreamTypeZStreamTextTyper<   strZVersionTypeZbuiltins_moduler+   Z	DBG_TOKENZ	DBG_EVENTZDBG_NODEr9   r;   r1   r>   rG   r-   Zobject_counterr?   r@   ZnprintZnprintfr[   r\   r`   MutableSequencera   r   r   r   r   <module>   sT   

(
