
    x8'hn                        d dl mZ d ZdadZ G d de      Zd Zee_        ee_	        	 ej                   ee_        ee_        ee_        ee_        ee_        ee_        ee_        ej(                  fZy# e$ r d Zee_
        Y Pw xY w)    )deepcopyc                 H    t        d| j                  j                   d      )zK
    Function for not implemented method since the object is immutable
    'z' object is read-only)AttributeError	__class____name__self_args_kwargss      U/var/www/html/trade_iq/venv/lib/python3.12/site-packages/frozendict/_frozendict_py.py	immutabler      s)    
 
DNN##$$9:     N
frozendictc                        e Zd ZdZdZed        Zd Zd Zd Z	 fdZ
d Zd	 Zd
 Zd Zd ZddZd Zd ZddZddZddZd Zd Z xZS )r   z
    A simple immutable dictionary.

    The API is the same as `dict`, without methods that can change the
    immutability. In addition, it supports __hash__().
    )_hashc                 8     | t        j                  |i |      S )z/
        Identical to dict.fromkeys().
        )dictfromkeys)clsargskwargss      r   r   zfrozendict.fromkeys   s     4==$1&122r   c                    | }t        |      }d}d }t        |      dk(  r'|s%|d   }|j                  t        k(  r|t        k(  r|}d}|rzt	        j
                  |g|i |}t	        j                  |g|i | |j                  t        k(  rt        |      st        |ant        }d}|rt        j                  |dd       |S )NT   r   Fr   )
boollenr   r   r   __new____init___empty_frozendictobject__setattr__)$e4b37cdf_d78a_4632_bade_6f0579d8efacr   r   r   
has_kwargscontinue_creationr
   its           r   r   zfrozendict.__new__(   s    2&\
  t9>*aB ||z)cZ.?$)!<<5d5f5DMM$000 ~~+CI %,(,%,D(-% !""4"5r   c                      y N r
   r   r   s      r   r   zfrozendict.__init__P   s    r   c                     | j                   dk7  r| j                   }|S t        | j                               }t        |      }t        j                  | d|       |S )zg
        Calculates the hash if all values are hashable, otherwise
        raises a TypeError.
        r   r   )r   	frozensetitemshashr!   r"   )r
   r   r   r   fss        r   __hash__zfrozendict.__hash__S   sR     ::JJE  4::<(BHEtWe4r   c                     t        |   |i |}| j                  }|t        k(  rt         d|j
                   }n|j
                  }| d| dS )z/
        Identical to dict.__repr__().
        .())super__repr__r   r   _module_namer   )r
   r   r   bodyklassnamer   s         r   r6   zfrozendict.__repr__c   s[    
 w00J"^1U^^$45D>>Dqa  r   c                 @    | j                   }|t        k(  r| S  ||       S )zA
        Return the object itself, as it's an immutable.
        )r   r   )r
   r9   s     r   copyzfrozendict.copyr   s$    
 JKT{r   c                 "    | j                         S )z
        See copy().
        )r<   r*   s      r   __copy__zfrozendict.__copy__~   s    
 yy{r   c                     | j                   }|t        k(  }|r	 t        |        |r| j	                         S t        t        |             } ||      S # t        $ r d}Y ;w xY w)zc
        As for tuples, if hashable, see copy(); otherwise, it returns a
        deepcopy.
        F)r   r   r.   	TypeErrorr<   r   r   )r
   memor   r   r9   return_copytmps          r   __deepcopy__zfrozendict.__deepcopy__   se     z)$T
 99;tDz"Sz  $#$s   A A A c                 2    | j                   t        |       ffS )z'
        Support for `pickle`.
        )r   r   r*   s      r   
__reduce__zfrozendict.__reduce__   s    
 d..r   c                 D    t        |       }|||<   | j                  |      S r(   r   r   )r
   keyvalnew_selfs       r   setzfrozendict.set   s#    :~~h''r   c                 P    || v r| S t        |       }|||<   | j                  |      S r(   rH   )r
   rI   defaultrK   s       r   
setdefaultzfrozendict.setdefault   s/    $;K:~~h''r   c                 d    t        |       }||= |r| j                  |      S | j                         S r(   rH   )r
   rI   rK   s      r   deletezfrozendict.delete   s1    :SM>>(++~~r   c                     	 ||   S # t         $ r9 t        |      dz
  }| j                  j                  }t        | d| d|       d w xY w)Nr   z index z out of range )
IndexErrorr   r   r   )r
   
collectionindexmaxindexr:   s        r   _get_by_indexzfrozendict._get_by_index   sb    	e$$ 	:*H>>**D&wnXJ?	s
    AA	c                 X    t        | j                               }| j                  ||      S r(   )tuplekeysrW   r
   rU   rT   s      r   rI   zfrozendict.key   s%    499;'
!!*e44r   c                 X    t        | j                               }| j                  ||      S r(   )rY   valuesrW   r[   s      r   valuezfrozendict.value   s%    4;;=)
!!*e44r   c                 X    t        | j                               }| j                  ||      S r(   )rY   r-   rW   r[   s      r   itemzfrozendict.item   s%    4::<(
!!*e44r   c                 H    t        d| j                  j                   d      )Nr   z(' object doesn't support item assignmentr@   r   r   )r
   rI   rJ   r   r   s        r   __setitem__zfrozendict.__setitem__   s+    ''( ) 
 	
r   c                 H    t        d| j                  j                   d      )Nr   z&' object doesn't support item deletionrb   )r
   rI   r   r   s       r   __delitem__zfrozendict.__delitem__   s+    ''( ) 
 	
r   r(   )r   )r   
__module____qualname____doc__	__slots__classmethodr   r   r   r0   r6   r<   r>   rD   rF   rL   rO   rQ   rW   rI   r^   r`   rc   re   __classcell__)r   s   @r   r   r      sy    I 3 3%P !
,/(( 5
5
5


r   c                 l    i }|j                  |        |j                  |       | j                  |      S r(   )updater   )r
   otherr   r   ress        r   frozendict_orrp      s.    
CJJtJJu>>#r   c                 *    t        t        |             S r(   )reversedrY   r	   s      r   frozendict_reversedrs      s    d$$r   )r<   r   r   r    r7   r   r   rp   __or____ior____reversed__r   rs   clearpoppopitemrm   __delattr__r"   rf   r   __all__r)   r   r   <module>r|      s      K
 K
\ "
 "
 2 
 

 
 "
 "
 $
 
   2% 2J2s   A6 6BB