a
    
d%                     @   s   d dl Z G dd deZdS )    Nc                       s   e Zd Zdd Zdd Z fddZdd Ze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d  Zd!d" Zd#d$ Zd%d& Zd/d(d)Zd0d+d,Zd-d. Z  ZS )1Dictc                 O   s   t | d|dd  t | d|dd  t | dd |D ]}|sJq>q>t|trv| D ]\}}| || |< q\q>t|trt|d ts| |d | |d < q>t|D ]\}}| || |< qq>| D ]\}}| || |< qd S )N__parent__key__frozenFr      )	object__setattr__pop
isinstancedictitems_hooktupleiter)Z_Dict__selfargskwargsargkeyval r   V/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/addict/addict.py__init__   s    
zDict.__init__c                 C   s(   t | j|rtd|n|| |< d S )Nz*'Dict' object attribute '{0}' is read-only)hasattr	__class__AttributeErrorformat)selfnamevaluer   r   r   r      s
    zDict.__setattr__c                    s   t | dot| d}|r4|tt|  vr4t|tt| || zt| d}t| d}W n ty|   d }d }Y n0 |d ur| ||< t	| d t	| d d S )Nr   r   r   )
r   r   __getattribute__superr   keysKeyError__setitem__r   __delattr__)r   r   r   ZisFrozenpr   r   r   r   r#       s     


zDict.__setitem__c                 C   s8   |   s|S t| j}t|j}d}t|||d S )Nz0unsupported operand type(s) for +: '{}' and '{}')r!   type__name__	TypeErrorr   )r   other	self_typeZ
other_typemsgr   r   r   __add__1   s    

zDict.__add__c                    s>   t |tr |S t |ttfr:t| fdd|D S |S )Nc                 3   s   | ]}  |V  qd S N)r   ).0elemclsr   r   	<genexpr>?       zDict._hook.<locals>.<genexpr>)r
   r   listr   r'   )r2   itemr   r1   r   r   :   s
    
z
Dict._hookc                 C   s
   |  |S r.   )__getitem__)r   r6   r   r   r   __getattr__B   s    zDict.__getattr__c                 C   s"   t | drt|| j| |dS )Nr   )r   r   )r   r   r"   r   r   r   r   r   r   __missing__E   s    zDict.__missing__c                 C   s
   | |= d S r.   r   r9   r   r   r   r$   J   s    zDict.__delattr__c                    sl   i }   D ]Z\}}t|t r0| ||< qt|ttfr^t| fdd|D ||< q|||< q|S )Nc                 3   s(   | ] }t |t r| n|V  qd S r.   )r
   r'   to_dict)r/   r6   r   r   r   r3   S   s   zDict.to_dict.<locals>.<genexpr>)r   r
   r'   r;   r5   r   )r   baser   r   r   r<   r   r;   M   s    
zDict.to_dictc                 C   s
   t  | S r.   )copyr<   r   r   r   r>   Z   s    z	Dict.copyc                 C   s
   t | S r.   )r>   deepcopyr<   r   r   r   r?   ]   s    zDict.deepcopyc                 C   sB   |   }||t| < |  D ] \}}t|||t||< q|S r.   )r   idr   r>   r?   )r   memor*   r   r   r   r   r   __deepcopy__`   s
    zDict.__deepcopy__c                 O   s   i }|r(t |dkrt ||d  || | D ]@\}}|| vsbt| | trbt|tsl|| |< q:| | | q:d S )Nr   r   )lenr)   updater   r
   r   )r   r   r   r*   kvr   r   r   rD   g   s    

zDict.updatec                 C   s   t |  S r.   )r   r   r<   r   r   r   __getnewargs__v   s    zDict.__getnewargs__c                 C   s   | S r.   r   r<   r   r   r   __getstate__y   s    zDict.__getstate__c                 C   s   |  | d S r.   rD   )r   stater   r   r   __setstate__|   s    zDict.__setstate__c                 C   s(   t |ttfstS t| }|| |S r.   r
   r   r   NotImplementedrD   r   r*   newr   r   r   __or__   s
    
zDict.__or__c                 C   s(   t |ttfstS t|}||  |S r.   rL   rN   r   r   r   __ror__   s
    
zDict.__ror__c                 C   s   |  | | S r.   rI   )r   r*   r   r   r   __ior__   s    
zDict.__ior__Nc                 C   s    || v r| | S || |< |S d S r.   r   )r   r   defaultr   r   r   
setdefault   s    zDict.setdefaultTc                 C   s8   t | d| |  D ]\}}t|tr|| qd S )Nr   )r   r   r   r
   r   freeze)r   ZshouldFreezer   r   r   r   r   rU      s    
zDict.freezec                 C   s   |  d d S )NF)rU   r<   r   r   r   unfreeze   s    zDict.unfreeze)N)T)r(   
__module____qualname__r   r   r#   r-   classmethodr   r8   r:   r$   r;   r>   r?   rB   rD   rG   rH   rK   rP   rQ   rR   rT   rU   rV   __classcell__r   r   r&   r   r      s.   	


r   )r>   r   r   r   r   r   r   <module>   s   