File: //home/arjun/projects/env/lib/python3.10/site-packages/dns/__pycache__/update.cpython-310.pyc
o
!we�/ � @ s� d Z ddlmZmZmZmZ ddlZddlZddl Zddl
ZddlZddlZddl
ZddlZG dd� dejj�ZG dd� dejj�ZeZejZejZejZejZdS )zDNS Dynamic Update Support� )�Any�List�Optional�UnionNc @ s, e Zd ZdZdZdZdZdZedd� �Z dS ) �
UpdateSectionzUpdate sectionsr � � � c C � dS )Nr � )�clsr r �C/home/arjun/projects/env/lib/python3.10/site-packages/dns/update.py�_maximum( � zUpdateSection._maximumN)
�__name__�
__module__�__qualname__�__doc__�ZONE�PREREQ�UPDATE�
ADDITIONAL�classmethodr r r r r
r s r c s� e Zd ZeZdejjddejj dfde
eejj
ef dejjde
e de
ejj
deejj
ef de
e f� fdd �
Zed
eejj fdd��Zejd
d� �Zed
eejj fdd��Zejdd� �Zed
eejj fdd��Zejdd� �Zd)dd�Zdd� Zdeejj
ef ded
dfdd�Zdeejj
ef ded
dfdd�Zdeejj
ef ded
dfdd�Zdeejj
ef ded
dfd d!�Z d*deejj
ef d"e
eej!j"ef d
dfd#d$�Z#d%d&� Z$d'd(� Z%� Z&S )+�
UpdateMessageN�zone�rdclass�keyring�keyname�keyalgorithm�idc s� t � j|d� | jtj�tjj�O _t|t�rtj �
|�}|| _tjj
�|�}|| _| jr>| j| j| j|tjjddd� |durL| j|||d� dS dS )ax Initialize a new DNS Update object.
See the documentation of the Message class for a complete
description of the keyring dictionary.
*zone*, a ``dns.name.Name``, ``str``, or ``None``, the zone
which is being updated. ``None`` should only be used by dnspython's
message constructors, as a zone is required for the convenience
methods like ``add()``, ``replace()``, etc.
*rdclass*, an ``int`` or ``str``, the class of the zone.
The *keyring*, *keyname*, and *keyalgorithm* parameters are passed to
``use_tsig()``; see its documentation for details.
)r T)�create�force_uniqueN)� algorithm)�super�__init__�flags�dns�opcode�to_flagsr �
isinstance�str�name� from_text�origin�
rdataclass�
RdataClass�make�zone_rdclass�
find_rrsetr � rdatatype�SOA�use_tsig)�selfr r r r r r �� __class__r r
r$ 1 s&