--- a/test/test_main.py Mon Sep 14 15:19:11 2015 +0100
+++ b/test/test_main.py Sun Feb 07 22:30:17 2016 +0100
@@ -1,5 +1,12 @@
# coding=utf-8
+from __future__ import unicode_literals
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
import unittest
from whois import extract_domain
--- a/test/test_nicclient.py Mon Sep 14 15:19:11 2015 +0100
+++ b/test/test_nicclient.py Sun Feb 07 22:30:17 2016 +0100
@@ -1,5 +1,12 @@
# coding=utf-8
+from __future__ import unicode_literals
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
import unittest
from whois.whois import NICClient
--- a/test/test_parser.py Mon Sep 14 15:19:11 2015 +0100
+++ b/test/test_parser.py Sun Feb 07 22:30:17 2016 +0100
@@ -1,3 +1,10 @@
+from __future__ import print_function
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
import unittest
import os
@@ -69,7 +76,7 @@
result = results.get(key)
expected = expected_results.get(key)
if expected != result:
- print "%s \t(%s):\t %s != %s" % (domain, key, result, expected)
+ print("%s \t(%s):\t %s != %s" % (domain, key, result, expected))
fail += 1
if fail:
--- a/whois/__init__.py Mon Sep 14 15:19:11 2015 +0100
+++ b/whois/__init__.py Sun Feb 07 22:30:17 2016 +0100
@@ -1,10 +1,17 @@
+from __future__ import print_function
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from __future__ import division
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
import re
import sys
import os
import subprocess
import socket
-from parser import WhoisEntry
-from whois import NICClient
+from .parser import WhoisEntry
+from .whois import NICClient
def whois(url, command=False):
@@ -50,7 +57,7 @@
if not line.startswith('#')
]
- if type(url) is not unicode:
+ if type(url) is not str:
url = url.decode('utf-8')
url = re.sub('^.*://', '', url.encode('idna')).split('/')[0].lower()
domain = []
@@ -67,6 +74,6 @@
try:
url = sys.argv[1]
except IndexError:
- print 'Usage: %s url' % sys.argv[0]
+ print('Usage: %s url' % sys.argv[0])
else:
- print whois(url)
+ print(whois(url))
--- a/whois/parser.py Mon Sep 14 15:19:11 2015 +0100
+++ b/whois/parser.py Sun Feb 07 22:30:17 2016 +0100
@@ -1,3 +1,12 @@
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from __future__ import print_function
+from __future__ import division
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
+from builtins import str
+from past.builtins import basestring
# coding=utf-8
# parser.py - Module for parsing whois response data
# Copyright (c) 2008 Andrey Petrov
@@ -11,7 +20,7 @@
import re
try:
import dateutil.parser as dp
- from time_zones import tz_data
+ from .time_zones import tz_data
DATEUTIL = True
except ImportError:
DATEUTIL = False
@@ -110,7 +119,7 @@
"""The first time an attribute is called it will be calculated here.
The attribute is then set to be accessed directly by subsequent calls.
"""
- for attr, regex in self._regex.items():
+ for attr, regex in list(self._regex.items()):
if regex:
values = []
for value in re.findall(regex, self.text, re.IGNORECASE):
--- a/whois/time_zones.py Mon Sep 14 15:19:11 2015 +0100
+++ b/whois/time_zones.py Sun Feb 07 22:30:17 2016 +0100
@@ -1,3 +1,10 @@
+from __future__ import unicode_literals
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
_tz_string = '''-12 Y
-11 X NUT SST
-10 W CKT HAST HST TAHT TKT
--- a/whois/whois.py Mon Sep 14 15:19:11 2015 +0100
+++ b/whois/whois.py Sun Feb 07 22:30:17 2016 +0100
@@ -24,6 +24,14 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
+from __future__ import print_function
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from future import standard_library
+standard_library.install_aliases()
+from builtins import *
+from builtins import object
import re
import sys
import socket
@@ -31,17 +39,7 @@
def enforce_ascii(a):
- if isinstance(a, str) or isinstance(a, unicode):
- r = ""
- for i in a:
- if ord(i) >= 128:
- r += "?"
- else:
- r += i
- return r
- else:
- return a
-
+ return a if isinstance(a, bytes) else bytes([63 if ord(c) > 127 else ord(c) for c in a])
class NICClient(object):
@@ -102,7 +100,7 @@
s.connect((hostname, 43))
# end takes bytes as an input
queryBytes = None
- if type(query) is not unicode:
+ if type(query) is not str:
query = query.decode('utf-8')
if hostname == NICClient.DENICHOST:
@@ -121,12 +119,12 @@
break
s.close()
except socket.error as socketerror:
- print 'Socket Error:', socketerror
+ print('Socket Error:', socketerror)
return ''
else:
nhost = None
response = enforce_ascii(response)
- if 'with "=xxx"' in response:
+ if b'with "=xxx"' in response:
return self.whois(query, hostname, flags, True)
if flags & NICClient.WHOIS_RECURSE and nhost is None:
nhost = self.findwhois_server(response.decode(), hostname, query)
@@ -136,8 +134,8 @@
def choose_server(self, domain):
"""Choose initial lookup NIC host"""
- if type(domain) is not unicode:
- domain = domain.decode('utf-8').encode('idna')
+ if type(domain) is not str:
+ domain = domain.decode('utf-8').encode('idna').decode('utf-8')
if domain.endswith("-NORID"):
return NICClient.NORIDHOST
pos = domain.rfind('.')
@@ -250,4 +248,4 @@
options, args = parse_command_line(sys.argv)
if options.b_quicklookup:
flags = flags | NICClient.WHOIS_QUICK
- print nic_client.whois_lookup(options.__dict__, args[1], flags)
+ print(nic_client.whois_lookup(options.__dict__, args[1], flags))