import decimal
from decimal import Context
-if sys.version_info > (3,):
+PY3 = sys.version_info[0] == 3
+PY2 = sys.version_info[0] == 2
+
+
+if PY3:
long = int
xrange = range
else:
xrange = xrange # pylint: disable=xrange-builtin
# unicode / binary types
-if sys.version_info > (3,):
+if PY3:
text_type = str
binary_type = bytes
string_types = (str,)
import dns.rcode
import dns.rdataclass
import dns.rdatatype
-from ._compat import long, string_types
+from ._compat import long, string_types, PY3
-if sys.version_info > (3,):
+if PY3:
select_error = OSError
else:
select_error = select.error
import binascii
import string
import struct
-import sys
import dns.exception
import dns.rdata
import dns.rdatatype
-from dns._compat import xrange, text_type
+from dns._compat import xrange, text_type, PY3
# pylint: disable=deprecated-string-function
-if sys.version_info > (3,):
+if PY3:
b32_hex_to_normal = bytes.maketrans(b'0123456789ABCDEFGHIJKLMNOPQRSTUV',
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')
b32_normal_to_hex = bytes.maketrans(b'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
"""DNS Reverse Map Names."""
import binascii
-import sys
import dns.name
import dns.ipv6
import dns.ipv4
+from dns._compat import PY3
+
ipv4_reverse_domain = dns.name.from_text('in-addr.arpa.')
ipv6_reverse_domain = dns.name.from_text('ip6.arpa.')
try:
v6 = dns.ipv6.inet_aton(text)
if dns.ipv6.is_mapped(v6):
- if sys.version_info >= (3,):
+ if PY3:
parts = ['%d' % byte for byte in v6[12:]]
else:
parts = ['%d' % ord(byte) for byte in v6[12:]]
"""DNS Wire Data Helper"""
-import sys
-
import dns.exception
-from ._compat import binary_type, string_types
+from ._compat import binary_type, string_types, PY2
# Figure out what constant python passes for an unspecified slice bound.
# It's supposed to be sys.maxint, yet on 64-bit windows sys.maxint is 2^31 - 1
def __getitem__(self, key):
return key.stop
- if sys.version_info < (3,):
+ if PY2:
def __getslice__(self, i, j): # pylint: disable=getslice-method
return self.__getitem__(slice(i, j))
start = key.start
stop = key.stop
- if sys.version_info < (3,):
+ if PY2:
if stop == _unspecified_bound:
# handle the case where the right bound is unspecified
stop = len(self)
except IndexError:
raise dns.exception.FormError
- if sys.version_info < (3,):
+ if PY2:
def __getslice__(self, i, j): # pylint: disable=getslice-method
return self.__getitem__(slice(i, j))
import dns.tokenizer
import dns.ttl
import dns.grange
-from ._compat import string_types, text_type
-
-
-_py3 = sys.version_info > (3,)
+from ._compat import string_types, text_type, PY3
class BadZone(dns.exception.DNSException):
return self.nodes.__iter__()
def iterkeys(self):
- if _py3:
+ if PY3:
return self.nodes.keys()
else:
return self.nodes.iterkeys() # pylint: disable=dict-iter-method
return self.nodes.keys()
def itervalues(self):
- if _py3:
+ if PY3:
return self.nodes.values()
else:
return self.nodes.itervalues() # pylint: disable=dict-iter-method
import dns.rdataclass
import dns.rdatatype
import dns.resolver
-from dns._compat import xrange
+from dns._compat import xrange, PY3
# Some tests require the internet to be available to run, so let's
# skip those if it's not there.
def test_nxdomain_compatible(self):
n1 = dns.name.Name(('a', 'b', ''))
n2 = dns.name.Name(('a', 'b', 's', ''))
- py3 = (sys.version_info[0] > 2)
try:
raise dns.resolver.NXDOMAIN
except dns.exception.DNSException as e:
- if not py3:
+ if not PY3:
# pylint: disable=exception-message-attribute
self.assertTrue((e.message == e.__doc__))
self.assertTrue((e.args == (e.__doc__,)))
try:
raise dns.resolver.NXDOMAIN("errmsg")
except dns.exception.DNSException as e:
- if not py3:
+ if not PY3:
# pylint: disable=exception-message-attribute
self.assertTrue((e.message == "errmsg"))
self.assertTrue((e.args == ("errmsg",)))
try:
raise dns.resolver.NXDOMAIN("errmsg", -1)
except dns.exception.DNSException as e:
- if not py3:
+ if not PY3:
# pylint: disable=exception-message-attribute
self.assertTrue((e.message == ""))
self.assertTrue((e.args == ("errmsg", -1)))
raise dns.resolver.NXDOMAIN(qnames=[n1])
except dns.exception.DNSException as e:
MSG = "The DNS query name does not exist: a.b."
- if not py3:
+ if not PY3:
# pylint: disable=exception-message-attribute
self.assertTrue((e.message == MSG), e.message)
self.assertTrue((e.args == (MSG,)), repr(e.args))
e0 = dns.resolver.NXDOMAIN("errmsg")
e = e0 + e
MSG = "None of DNS query names exist: a.b.s., a.b."
- if not py3:
+ if not PY3:
# pylint: disable=exception-message-attribute
self.assertTrue((e.message == MSG), e.message)
self.assertTrue((e.args == (MSG,)), repr(e.args))
raise dns.resolver.NXDOMAIN(qnames=[n1], responses={n1: 'r1.1'})
except Exception as e:
MSG = "The DNS query name does not exist: a.b."
- if not py3:
+ if not PY3:
# pylint: disable=exception-message-attribute
self.assertTrue((e.message == MSG), e.message)
self.assertTrue((e.args == (MSG,)), repr(e.args))