
    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
         n# e$ r d Zee_
        Y nw xY wee_        ee_        ee_        ee_        ee_        ee_        ee_        ej        fZdS )    )deepcopyc                 <    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      W/var/www/html/marketdash/venv/lib/python3.11/site-packages/frozendict/_frozendict_py.py	immutabler      s)    
 :DN#:::      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                 6     | t          j        |i |          S )z/
        Identical to dict.fromkeys().
        )dictfromkeys)clsargskwargss      r   r   zfrozendict.fromkeys   s#     s4=$1&11222r   c                    | }t          |          }d}d }t          |          dk    r)|s'|d         }|j        t          k    r|t          k    r|}d}|rzt	          j        |g|R i |}t	          j        |g|R i | |j        t          k    r"t          |          st          |an	t          }d}|rt          	                    |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&\\
  t99>>*>aB |z))cZ.?.?$)! 	6<5d555f55DM$0000000 ~++CII+ %,(,%%,D(-% ! 6""4"555r   c                     d S N r
   r   r   s      r   r   zfrozendict.__init__P   s    r   c                     | j         dk    r| j         }nLt          |                                           }t          |          }t                              | 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   sW     :JEE4::<<((BHHEtWe444r   c                      t                      j        |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   sg    
  uww000J"55U^55DD>D      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uT{{r   c                 *    |                                  S )z
        See copy().
        )r<   r*   s      r   __copy__zfrozendict.__copy__~   s    
 yy{{r   c                     | j         }|t          k    }|r#	 t          |            n# t          $ r d}Y nw xY w|r|                                 S t          t          |                     } ||          S )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__   s     z) 	$$T



 $ $ $#$  	99;;tDzz""uSzzs   & 55c                 0    | j         t          |           ffS )z'
        Support for `pickle`.
        )r   r   r*   s      r   
__reduce__zfrozendict.__reduce__   s    
 d..r   c                 T    t          |           }|||<   |                     |          S r(   r   r   )r
   keyvalnew_selfs       r   setzfrozendict.set   s(    ::~~h'''r   Nc                 `    || v r| S t          |           }|||<   |                     |          S r(   rH   )r
   rI   defaultrK   s       r   
setdefaultzfrozendict.setdefault   s6    $;;K::~~h'''r   c                 |    t          |           }||= |r|                     |          S |                                 S r(   rH   )r
   rI   rK   s      r   deletezfrozendict.delete   s>    ::SM 	,>>(+++~~r   c                     	 ||         S # t           $ r7 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   su    	e$$ 	 	 	:*H>*D????X?? 	s
   
 AAr   c                 p    t          |                                           }|                     ||          S r(   )tuplekeysrW   r
   rU   rT   s      r   rI   zfrozendict.key   s-    499;;''
!!*e444r   c                 p    t          |                                           }|                     ||          S r(   )rY   valuesrW   r[   s      r   valuezfrozendict.value   s-    4;;==))
!!*e444r   c                 p    t          |                                           }|                     ||          S r(   )rY   r-   rW   r[   s      r   itemzfrozendict.item   s-    4::<<((
!!*e444r   c                 <    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                 <    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      si        I 3 3 [3% % %P     ! ! ! ! !
 
 
    ,/ / /( ( (( ( ( (       5 5 5 5
5 5 5 5
5 5 5 5

 
 

 
 
 
 
 
 
r   c                     i }|                     |            |                     |           |                     |          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
 K
 K
 K
 K
 K
 K
\   "
 "
 2 2 2 2% % % 2J2 
 

 
 "
 "
 $
 
 s   6 AA