a
    þd,  ã                   @   s4   d dl Z e jd  dkreZneZG dd„ deƒZdS )é    Né   c                   @   sf   e Zd Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )Ú	JSONValueNú#Fc                 C   s$   t |tƒrJ ‚|| _|| _|| _d S ©N)Ú
isinstancer   ÚvalÚrefÚundef)Úselfr   r   r	   © r   ú\/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/jsonmerge/jsonvalue.pyÚ__init__
   s    zJSONValue.__init__c                 C   s   | j S r   ©r	   ©r
   r   r   r   Úis_undef   s    zJSONValue.is_undefc                 C   s   |  dd¡  dd¡S )Nú~z~0ú/z~1)Úreplace©r
   Úkeyr   r   r   Ú_ref_escape   s    zJSONValue._ref_escapec                 K   s&   t f d| jd |  t|ƒ¡ i|¤ŽS )Nr   r   )r   r   r   Ú	text_type)r
   r   Úkwargsr   r   r   Ú_subval   s    zJSONValue._subvalc                 C   s@   |  ¡ r0t| jtƒrtdƒ‚|| jv r<| j|= n|j| j|< d S )Nz)Can't assign an undefined value to a list)r   r   r   ÚlistÚ
ValueError)r
   r   Úitemr   r   r   Ú__setitem__   s    

zJSONValue.__setitem__c                 C   s   | j || j| dS ©N©r   )r   r   r   r   r   r   Ú__getitem__$   s    zJSONValue.__getitem__c                 C   s*   t | jtƒsJ ‚| ¡ s&| j |j¡ d S r   )r   r   r   r   Úappend)r
   r   r   r   r   r!   '   s    zJSONValue.appendc                 G   s<   | j j|g|¢R Ž }|d u r*| j|ddS | j||dS d S )NTr   r   )r   Úgetr   )r
   r   ÚargsÚrr   r   r   r"   -   s    zJSONValue.getc                 C   s    |   ¡ rdS d| j| jf S d S )NzJSONValue(undef=True)zJSONValue(%r,%r))r   r   r   r   r   r   r   Ú__repr__4   s    zJSONValue.__repr__c                 c   s,   | j  ¡ D ]\}}|| j||dfV  q
d S r   )r   Úitemsr   )r
   ÚkÚvr   r   r   r&   :   s    zJSONValue.itemsc                 c   s8   t | jtƒsJ ‚t| jƒD ]\}}| j||dV  qd S r   )r   r   r   Ú	enumerater   )r
   Úir(   r   r   r   Ú__iter__>   s    zJSONValue.__iter__)Nr   F)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r    r!   r"   r%   r&   r+   r   r   r   r   r   	   s   
r   )ÚsysÚversion_infoÚstrr   ÚunicodeÚobjectr   r   r   r   r   Ú<module>   s   