o
    Þý°j®	  ã                   @   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 )é    NÚ_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  ¡ | ur
tdƒ‚tƒ  ||¡ d S ©Nz+object doesn't support attribute assignment)Ú_in__init__ÚgetÚ	TypeErrorÚsuperÚ__setattr__)ÚselfÚnameÚvalue©Ú	__class__r   ú…/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/dns/_immutable_ctx.pyr      s   z_Immutable.__setattr__c                    s$   t  ¡ | ur
tdƒ‚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ˆ | i |¤Ž W t  |¡ d S t  |¡ w )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                    sf   t ˆ jv rtˆ jƒˆ _tˆ dƒrtˆ jƒˆ _ˆ }|S G ‡ fdd„dt ˆ ƒ}ˆ j|_ˆ j|_ˆ j|_|S )NÚ__setstate__c                       sF   e Zd ZdZe‡ fdd„ƒZe”dƒre‡ fdd„ƒZ‡  ZS ‡  ZS )zimmutable.<locals>.nclsr   c                    ó   t ƒ j|i |¤Ž d S ©N)r
   Ú__init__©r   r   r   r   r   r   r(   >   ó   z immutable.<locals>.ncls.__init__r%   c                    r&   r'   )r
   r%   r)   r   r   r   r%   D   r*   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   

îr0   )Úcontextvarsr!   Ú
ContextVarr   r   r$   r0   r   r   r   r   Ú<module>   s   