]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
Unify PY2/3 detection 265/head
authorMartin <martin.basti@gmail.com>
Fri, 14 Jul 2017 23:36:07 +0000 (01:36 +0200)
committerMartin <martin.basti@gmail.com>
Wed, 19 Jul 2017 13:41:45 +0000 (15:41 +0200)
dns._compat module contains constants PY2 and PY3 which should be used
for detection of python version, to have only one method and avoid
duplications

dns/_compat.py
dns/query.py
dns/rdtypes/ANY/NSEC3.py
dns/reversename.py
dns/wiredata.py
dns/zone.py
tests/test_resolver.py

index 5c9f15e4900e513f2c6f897bfb1efd5e86ddd587..ca0931c2b506918a64c4f124c96b61a39221bd25 100644 (file)
@@ -2,7 +2,11 @@ import sys
 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:
@@ -10,7 +14,7 @@ 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,)
index f1f656eab2761e0b7d92edc1cbd7de059396bc41..3a0aca2afc46dd9eadae6c6ed0c06dbf6abbfa16 100644 (file)
@@ -31,9 +31,9 @@ import dns.message
 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
index 93d269184ab650fee1367d9b7a4dee597a7d5270..b4578ef8e06041fc07d11c31491faaa6efc9274d 100644 (file)
@@ -17,15 +17,14 @@ import base64
 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',
index e2ec77df0a444c352b2171b58490054eddd5c8f4..447a263ea2dc4f2404c4ccdabdb0bab6ab51f5c9 100644 (file)
 """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.')
 
@@ -41,7 +42,7 @@ def from_address(text):
     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:]]
index 6a058c641faac977320cb5ea0e7848297fb61e8a..b50fbb955bef16619b033e49967413a4284f837e 100644 (file)
 
 """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
@@ -32,7 +30,7 @@ class _SliceUnspecifiedBound(binary_type):
     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))
 
@@ -51,7 +49,7 @@ class WireData(binary_type):
                 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)
@@ -76,7 +74,7 @@ class WireData(binary_type):
         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))
 
index 468618f67c9dbee5dcd54f5135099e799452566c..657c2098c53d61fc1f05229c4703f4182db7ed52 100644 (file)
@@ -32,10 +32,7 @@ import dns.rrset
 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):
@@ -157,7 +154,7 @@ class Zone(object):
         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
@@ -166,7 +163,7 @@ class Zone(object):
         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
index 81021fa24c64788856935d5311d8751a6cac9916..183d2a18de214adc748c8a8df2d79ee2a0cae2b1 100644 (file)
@@ -28,7 +28,7 @@ import dns.name
 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.
@@ -280,12 +280,11 @@ class NXDOMAINExceptionTestCase(unittest.TestCase):
     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__,)))
@@ -297,7 +296,7 @@ class NXDOMAINExceptionTestCase(unittest.TestCase):
         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",)))
@@ -309,7 +308,7 @@ class NXDOMAINExceptionTestCase(unittest.TestCase):
         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)))
@@ -337,7 +336,7 @@ class NXDOMAINExceptionTestCase(unittest.TestCase):
             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))
@@ -354,7 +353,7 @@ class NXDOMAINExceptionTestCase(unittest.TestCase):
             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))
@@ -374,7 +373,7 @@ class NXDOMAINExceptionTestCase(unittest.TestCase):
             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))