o
    2³c­  ã                   @   s*   d dl Z G dd„ dƒZdd„ Zdd„ ZdS )é    Nc                       s,   e Zd ZdZ‡ fdd„Z‡ fdd„Z‡  ZS )Ú
_ImmutablezImmutable mixin classc                    s.   t | dƒr
| j| urtdƒ‚tƒ  ||¡ d S ©NÚ_immutable_initz+object doesn't support attribute assignment)Úhasattrr   Ú	TypeErrorÚsuperÚ__setattr__)ÚselfÚnameÚvalue©Ú	__class__© úI/var/www/html/gps/gps/lib/python3.10/site-packages/dns/_immutable_attr.pyr      s
   
ÿz_Immutable.__setattr__c                    s,   t | dƒr
| j| 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__r   r   Ú__classcell__r   r   r   r   r      s    r   c                    s   ‡ fdd„}t  ˆ ¡|_|S )Nc               
      s‚   z| d j }W n ty   d }t | d d| d ¡ Y nw zˆ | i |¤Ž W |s3t | d d¡ d S d S |s@t | d d¡ w w )Nr   r   )r   ÚAttributeErrorÚobjectr   r   )ÚargsÚkwargsÚprevious©Úfr   r   Únf'   s   ýýýz_immutable_init.<locals>.nf)ÚinspectÚ	signatureÚ__signature__)r   r   r   r   r   r   &   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                       sB   e Zd Ze‡ fdd„ƒZe”dƒre‡ fdd„ƒZ‡  ZS ‡  ZS )zimmutable.<locals>.nclsc                    ó   t ƒ j|i |¤Ž d S ©N)r   Ú__init__©r	   r   r   r   r   r   r$   G   ó   z immutable.<locals>.ncls.__init__r!   c                    r"   r#   )r   r!   r%   r   r   r   r!   L   r&   z$immutable.<locals>.ncls.__setstate__)r   r   r   r   r$   r   r!   r   r   ©Úclsr   r   ÚnclsE   s    
þr)   )	r   Ú__mro__r   r$   r   r!   r   r   r   )r(   r)   r   r'   r   Ú	immutable;   s   

ñr+   )r   r   r   r+   r   r   r   r   Ú<module>   s   