Current Path: > > lib > > python3.6 > site-packages > dns
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
rdtypes | Directory | - | - | |
__init__.py | File | 1327 bytes | September 20 2016 16:24:02. | |
_compat.py | File | 1313 bytes | September 20 2016 16:24:02. | |
dnssec.py | File | 14791 bytes | September 20 2016 16:24:02. | |
e164.py | File | 3147 bytes | September 20 2016 16:24:02. | |
edns.py | File | 4384 bytes | September 20 2016 16:24:02. | |
entropy.py | File | 4465 bytes | September 20 2016 16:24:02. | |
exception.py | File | 4626 bytes | September 20 2016 19:13:40. | |
flags.py | File | 2664 bytes | September 20 2016 16:24:02. | |
grange.py | File | 1973 bytes | September 20 2016 16:24:02. | |
hash.py | File | 1100 bytes | September 20 2016 16:24:02. | |
inet.py | File | 3242 bytes | September 20 2016 16:24:02. | |
ipv4.py | File | 2031 bytes | September 20 2016 16:24:02. | |
ipv6.py | File | 5293 bytes | September 20 2016 16:24:02. | |
message.py | File | 43129 bytes | September 26 2016 15:38:18. | |
name.py | File | 29425 bytes | May 23 2024 10:29:27. | |
namedict.py | File | 3677 bytes | September 20 2016 16:24:02. | |
node.py | File | 6056 bytes | September 20 2016 16:24:02. | |
opcode.py | File | 2538 bytes | September 20 2016 16:24:02. | |
query.py | File | 19645 bytes | May 23 2024 10:29:27. | |
rcode.py | File | 3104 bytes | September 20 2016 16:24:02. | |
rdata.py | File | 14997 bytes | September 20 2016 16:24:02. | |
rdataclass.py | File | 3258 bytes | September 20 2016 16:24:02. | |
rdataset.py | File | 11556 bytes | September 20 2016 16:24:02. | |
rdatatype.py | File | 5339 bytes | September 20 2016 19:54:45. | |
renderer.py | File | 11923 bytes | September 20 2016 16:24:02. | |
resolver.py | File | 52105 bytes | September 26 2016 15:52:30. | |
reversename.py | File | 3311 bytes | September 20 2016 16:24:02. | |
rrset.py | File | 5995 bytes | September 25 2016 19:25:33. | |
set.py | File | 7715 bytes | September 20 2016 16:24:02. | |
tokenizer.py | File | 18313 bytes | September 20 2016 16:24:02. | |
tsig.py | File | 7718 bytes | September 20 2016 16:24:02. | |
tsigkeyring.py | File | 1737 bytes | September 20 2016 16:24:02. | |
ttl.py | File | 2283 bytes | September 20 2016 16:24:02. | |
update.py | File | 10012 bytes | September 20 2016 16:24:02. | |
version.py | File | 1258 bytes | September 20 2016 16:24:02. | |
wiredata.py | File | 3731 bytes | September 20 2016 16:24:02. | |
zone.py | File | 40026 bytes | September 29 2016 22:29:39. |
# Copyright (C) 2003-2007, 2009-2011 Nominum, Inc. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose with or without fee is hereby granted, # provided that the above copyright notice and this permission notice # appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """A simple Set class.""" class Set(object): """A simple set class. Sets are not in Python until 2.3, and rdata are not immutable so we cannot use sets.Set anyway. This class implements subset of the 2.3 Set interface using a list as the container. @ivar items: A list of the items which are in the set @type items: list""" __slots__ = ['items'] def __init__(self, items=None): """Initialize the set. @param items: the initial set of items @type items: any iterable or None """ self.items = [] if items is not None: for item in items: self.add(item) def __repr__(self): return "dns.simpleset.Set(%s)" % repr(self.items) def add(self, item): """Add an item to the set.""" if item not in self.items: self.items.append(item) def remove(self, item): """Remove an item from the set.""" self.items.remove(item) def discard(self, item): """Remove an item from the set if present.""" try: self.items.remove(item) except ValueError: pass def _clone(self): """Make a (shallow) copy of the set. There is a 'clone protocol' that subclasses of this class should use. To make a copy, first call your super's _clone() method, and use the object returned as the new instance. Then make shallow copies of the attributes defined in the subclass. This protocol allows us to write the set algorithms that return new instances (e.g. union) once, and keep using them in subclasses. """ cls = self.__class__ obj = cls.__new__(cls) obj.items = list(self.items) return obj def __copy__(self): """Make a (shallow) copy of the set.""" return self._clone() def copy(self): """Make a (shallow) copy of the set.""" return self._clone() def union_update(self, other): """Update the set, adding any elements from other which are not already in the set. @param other: the collection of items with which to update the set @type other: Set object """ if not isinstance(other, Set): raise ValueError('other must be a Set instance') if self is other: return for item in other.items: self.add(item) def intersection_update(self, other): """Update the set, removing any elements from other which are not in both sets. @param other: the collection of items with which to update the set @type other: Set object """ if not isinstance(other, Set): raise ValueError('other must be a Set instance') if self is other: return # we make a copy of the list so that we can remove items from # the list without breaking the iterator. for item in list(self.items): if item not in other.items: self.items.remove(item) def difference_update(self, other): """Update the set, removing any elements from other which are in the set. @param other: the collection of items with which to update the set @type other: Set object """ if not isinstance(other, Set): raise ValueError('other must be a Set instance') if self is other: self.items = [] else: for item in other.items: self.discard(item) def union(self, other): """Return a new set which is the union of I{self} and I{other}. @param other: the other set @type other: Set object @rtype: the same type as I{self} """ obj = self._clone() obj.union_update(other) return obj def intersection(self, other): """Return a new set which is the intersection of I{self} and I{other}. @param other: the other set @type other: Set object @rtype: the same type as I{self} """ obj = self._clone() obj.intersection_update(other) return obj def difference(self, other): """Return a new set which I{self} - I{other}, i.e. the items in I{self} which are not also in I{other}. @param other: the other set @type other: Set object @rtype: the same type as I{self} """ obj = self._clone() obj.difference_update(other) return obj def __or__(self, other): return self.union(other) def __and__(self, other): return self.intersection(other) def __add__(self, other): return self.union(other) def __sub__(self, other): return self.difference(other) def __ior__(self, other): self.union_update(other) return self def __iand__(self, other): self.intersection_update(other) return self def __iadd__(self, other): self.union_update(other) return self def __isub__(self, other): self.difference_update(other) return self def update(self, other): """Update the set, adding any elements from other which are not already in the set. @param other: the collection of items with which to update the set @type other: any iterable type""" for item in other: self.add(item) def clear(self): """Make the set empty.""" self.items = [] def __eq__(self, other): # Yes, this is inefficient but the sets we're dealing with are # usually quite small, so it shouldn't hurt too much. for item in self.items: if item not in other.items: return False for item in other.items: if item not in self.items: return False return True def __ne__(self, other): return not self.__eq__(other) def __len__(self): return len(self.items) def __iter__(self): return iter(self.items) def __getitem__(self, i): return self.items[i] def __delitem__(self, i): del self.items[i] def issubset(self, other): """Is I{self} a subset of I{other}? @rtype: bool """ if not isinstance(other, Set): raise ValueError('other must be a Set instance') for item in self.items: if item not in other.items: return False return True def issuperset(self, other): """Is I{self} a superset of I{other}? @rtype: bool """ if not isinstance(other, Set): raise ValueError('other must be a Set instance') for item in other.items: if item not in self.items: return False return True
SILENT KILLER Tool