PATH:
usr
/
lib
/
python3.9
/
site-packages
/
dns
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license """Serial Number Arthimetic from RFC 1982""" class Serial: def __init__(self, value: int, bits: int = 32): self.value = value % 2**bits self.bits = bits def __repr__(self): return f"dns.serial.Serial({self.value}, {self.bits})" def __eq__(self, other): if isinstance(other, int): other = Serial(other, self.bits) elif not isinstance(other, Serial) or other.bits != self.bits: return NotImplemented return self.value == other.value def __ne__(self, other): if isinstance(other, int): other = Serial(other, self.bits) elif not isinstance(other, Serial) or other.bits != self.bits: return NotImplemented return self.value != other.value def __lt__(self, other): if isinstance(other, int): other = Serial(other, self.bits) elif not isinstance(other, Serial) or other.bits != self.bits: return NotImplemented if self.value < other.value and other.value - self.value < 2 ** (self.bits - 1): return True elif self.value > other.value and self.value - other.value > 2 ** ( self.bits - 1 ): return True else: return False def __le__(self, other): return self == other or self < other def __gt__(self, other): if isinstance(other, int): other = Serial(other, self.bits) elif not isinstance(other, Serial) or other.bits != self.bits: return NotImplemented if self.value < other.value and other.value - self.value > 2 ** (self.bits - 1): return True elif self.value > other.value and self.value - other.value < 2 ** ( self.bits - 1 ): return True else: return False def __ge__(self, other): return self == other or self > other def __add__(self, other): v = self.value if isinstance(other, Serial): delta = other.value elif isinstance(other, int): delta = other else: raise ValueError if abs(delta) > (2 ** (self.bits - 1) - 1): raise ValueError v += delta v = v % 2**self.bits return Serial(v, self.bits) def __iadd__(self, other): v = self.value if isinstance(other, Serial): delta = other.value elif isinstance(other, int): delta = other else: raise ValueError if abs(delta) > (2 ** (self.bits - 1) - 1): raise ValueError v += delta v = v % 2**self.bits self.value = v return self def __sub__(self, other): v = self.value if isinstance(other, Serial): delta = other.value elif isinstance(other, int): delta = other else: raise ValueError if abs(delta) > (2 ** (self.bits - 1) - 1): raise ValueError v -= delta v = v % 2**self.bits return Serial(v, self.bits) def __isub__(self, other): v = self.value if isinstance(other, Serial): delta = other.value elif isinstance(other, int): delta = other else: raise ValueError if abs(delta) > (2 ** (self.bits - 1) - 1): raise ValueError v -= delta v = v % 2**self.bits self.value = v return self
[-] enum.py
[edit]
[-] rdata.py
[edit]
[-] resolver.py
[edit]
[-] _asyncbackend.py
[edit]
[-] message.py
[edit]
[-] e164.py
[edit]
[+]
rdtypes
[-] win32util.py
[edit]
[-] zone.py
[edit]
[-] versioned.py
[edit]
[-] tokenizer.py
[edit]
[-] tsig.py
[edit]
[-] xfr.py
[edit]
[-] tsigkeyring.py
[edit]
[-] set.py
[edit]
[-] rdataset.py
[edit]
[-] dnssec.py
[edit]
[-] namedict.py
[edit]
[-] nameserver.py
[edit]
[-] wire.py
[edit]
[-] _immutable_ctx.py
[edit]
[-] immutable.py
[edit]
[-] opcode.py
[edit]
[-] ttl.py
[edit]
[-] asyncresolver.py
[edit]
[-] __init__.py
[edit]
[-] name.py
[edit]
[-] _ddr.py
[edit]
[-] rdatatype.py
[edit]
[-] rcode.py
[edit]
[-] rrset.py
[edit]
[-] zonefile.py
[edit]
[-] edns.py
[edit]
[-] renderer.py
[edit]
[+]
..
[-] _features.py
[edit]
[-] zonetypes.py
[edit]
[-] asyncquery.py
[edit]
[-] dnssectypes.py
[edit]
[-] grange.py
[edit]
[-] transaction.py
[edit]
[-] asyncbackend.py
[edit]
[-] reversename.py
[edit]
[+]
dnssecalgs
[-] entropy.py
[edit]
[-] ipv4.py
[edit]
[-] inet.py
[edit]
[-] version.py
[edit]
[-] _asyncio_backend.py
[edit]
[+]
__pycache__
[-] update.py
[edit]
[-] exception.py
[edit]
[-] ipv6.py
[edit]
[+]
quic
[-] serial.py
[edit]
[-] node.py
[edit]
[-] flags.py
[edit]
[-] rdataclass.py
[edit]
[-] query.py
[edit]