File: //lib/python3.9/site-packages/netaddr/ip/__pycache__/__init__.cpython-39.pyc
a
��gj( � @ s� d Z ddlZddlmZmZmZmZmZm Z m
Z
mZmZm
Z
mZ ddlmZmZ ddlmZmZmZmZmZmZ G dd� de�ZG dd � d e�ZG d
d� de�Zd^d
d�ZG dd� dee�Z G dd� dee�Z!dd� Z"dd� Z#dd� Z$dd� Z%dd� Z&dd� Z'd_d d!�Z(d"d#� Z)d$d%� Z*d&d'� Z+d(d)� Z,e d*�Z-e d+�e d,�e d-�gZ.e/e.�e d.�e d/�e d0�e!d1d2�f Z0e d3�Z1e d4�Z2e d5�Z3e d6�e d7�e d8�e d9�e d:�e d;�e!d<d=�e!d>d?�fe-e3f Z4d@dA� dBD �Z5dCdA� dDD �Z6e dE�Z7e dF�Z8e8e dG�fZ9e dH�Z:e dI�Z;e dJ�e dK�e dL�e dM�e dN�e dO�e dP�e dQ�e dR�e dS�e dT�e dU�e dV�e dW�e dX�e dY�fZ<dZdA� d[D �Z=d\dA� d]D �Z>dS )`z9Routines for IPv4 and IPv6 addresses, subnets and ranges.� N)�AddrFormatError�AddrConversionError�num_bits�
DictDotLookup�NOHOST�N� INET_ATON� INET_PTON�P�ZEROFILL�Z)�ipv4�ipv6)�_sys_maxint�
_iter_next�_iter_range�_is_str� _int_type� _str_typec @ s� e Zd ZdZdZdd� Zdd� Zedd� ed d
�Zdd� Z d
d� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zed-d.� �Zed/d0� �Zd1S )2�BaseIPzi
An abstract base class for common operations shared between various IP
related subclasses.
)�_value�_module�__weakref__c C s d| _ d| _dS )zConstructor.N)r r ��self� r �7/usr/lib/python3.9/site-packages/netaddr/ip/__init__.py�__init__ s zBaseIP.__init__c C sN t |t�stdt|� ��d| kr2| jjksDn td| jj ��|| _d S )N�int argument expected, not %sr z&value out of bounds for an %s address!) �
isinstancer � TypeError�typer �max_intr �family_namer �r �valuer r r �
_set_value s
�zBaseIP._set_valuec C s | j S �N�r r r r r �<lambda>( � zBaseIP.<lambda>z?a positive integer representing the value of IP address/subnet.��docc C s t S �zP
:return: a key tuple that uniquely identifies this IP address.
��NotImplementedr r r r �key+ s z
BaseIP.keyc C s t S )zg
:return: A key tuple used to compare and sort this `IPAddress`
correctly.
r. r r r r �sort_key1 s zBaseIP.sort_keyc C s t | �� �S )zL
:return: A hash value uniquely identifying this IP object.
)�hashr0 r r r r �__hash__8 s zBaseIP.__hash__c C s2 z| � � |� � kW S ttfy, t Y S 0 dS )z�
:param other: an `IPAddress` or `IPNetwork` object.
:return: ``True`` if this `IPAddress` or `IPNetwork` object is
equivalent to ``other``, ``False`` otherwise.
N�r0 �AttributeErrorr r/ �r �otherr r r �__eq__>