U
    <æ{f›	  ã                   @   s@   d dl Z d dlZe jdddZG dd„ dƒZdd„ Zd	d
„ ZdS )é    NZ_immutable_in__init__F)Údefaultc                       s0   e Zd ZdZdZ‡ fdd„Z‡ fdd„Z‡  ZS )Ú
_ImmutablezImmutable mixin class© c                    s(   t  ¡ | k	rtdƒ‚ntƒ  ||¡ d S ©Nz+object doesn't support attribute assignment)Ú_in__init__ÚgetÚ	TypeErrorÚsuperÚ__setattr__)ÚselfÚnameÚvalue©Ú	__class__r   úQ/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/dns/_immutable_ctx.pyr
      s    
z_Immutable.__setattr__c                    s&   t  ¡ | k	rtdƒ‚ntƒ  |¡ d S r   )r   r   r   r	   Ú__delattr__)r   r   r   r   r   r      s    
z_Immutable.__delattr__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r
   r   Ú__classcell__r   r   r   r   r      s   r   c                    s   ‡ fdd„}t  ˆ ¡|_|S )Nc               	      s.   t  | d ¡}zˆ | |Ž W 5 t  |¡ X d S )Nr   )r   ÚsetÚreset)ÚargsÚkwargsÚprevious©Úfr   r   Únf$   s    z_immutable_init.<locals>.nf)ÚinspectÚ	signatureÚ__signature__)r   r   r   r   r   Ú_immutable_init#   s    r#   c                    sd   t ˆ jkr2tˆ jƒˆ _tˆ dƒr,tˆ jƒˆ _ˆ }n.G ‡ fdd„dt ˆ ƒ}ˆ j|_ˆ j|_ˆ j|_|S )NÚ__setstate__c                       s>   e Zd ZdZe‡ fdd„ƒZe”dƒr6e‡ fdd„ƒZ‡  ZS )zimmutable.<locals>.nclsr   c                    s   t ƒ j||Ž d S ©N)r	   Ú__init__©r   r   r   r   r   r   r&   >   s    z immutable.<locals>.ncls.__init__r$   c                    s   t ƒ j||Ž d S r%   )r	   r$   r'   r   r   r   r$   D   s    z$immutable.<locals>.ncls.__setstate__)	r   r   r   r   r#   r&   Úhasattrr$   r   r   ©Úclsr   r   Úncls:   s   
r+   )	r   Ú__mro__r#   r&   r(   r$   r   r   r   )r*   r+   r   r)   r   Ú	immutable0   s    

r-   )Úcontextvarsr    Ú
ContextVarr   r   r#   r-   r   r   r   r   Ú<module>   s
   