XZise has submitted this change and it was merged.

Change subject: py3 imports and types
......................................................................


py3 imports and types

- winreg import
- urlencode import
- use bytes() before decoding
- use b'' before doing string operations like startswith

Change-Id: I2f8c2fb06115c735a499d24dd333e3854a4d6cc2
---
M pywikibot/__init__.py
M pywikibot/config2.py
M pywikibot/pagegenerators.py
M pywikibot/site.py
M pywikibot/userinterfaces/win32_unicode.py
M pywikibot/weblib.py
M tests/page_tests.py
M tests/site_tests.py
8 files changed, 31 insertions(+), 7 deletions(-)

Approvals:
  John Vandenberg: Looks good to me, but someone else must approve
  XZise: Looks good to me, approved



diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index add9a33..0228e79 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -21,6 +21,7 @@
     from Queue import Queue
 else:
     from queue import Queue
+    long = int
 
 # Use pywikibot. prefix for all in-package imports; this is to prevent
 # confusion with similarly-named modules in version 1 framework, for users
diff --git a/pywikibot/config2.py b/pywikibot/config2.py
index 0fe5f38..4da09e9 100644
--- a/pywikibot/config2.py
+++ b/pywikibot/config2.py
@@ -303,7 +303,10 @@
 # On Windows systems, this script tries to determine the default text editor.
 if sys.platform == 'win32':
     try:
-        import _winreg
+        if sys.version_info[0] > 2:
+            import winreg as _winreg
+        else:
+            import _winreg
         _key1 = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
                                 
'Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithProgids')
         _progID = _winreg.EnumValue(_key1, 1)[0]
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index a46e27c..484eadf 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -19,6 +19,7 @@
 __version__ = '$Id$'
 #
 
+import sys
 import codecs
 import itertools
 import re
@@ -28,6 +29,10 @@
 from pywikibot.comms import http
 import pywikibot.data.wikidataquery as wdquery
 
+if sys.version_info[0] > 2:
+    basestring = (str, )
+    unicode = str
+
 # ported from version 1 for backwards-compatibility
 # most of these functions just wrap a Site or Page method that returns
 # a generator
diff --git a/pywikibot/site.py b/pywikibot/site.py
index e5da073..cfbd128 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -46,6 +46,7 @@
 
 if sys.version_info[0] > 2:
     basestring = (str,)
+    unicode = str
 
 _logger = "wiki.site"
 
diff --git a/pywikibot/userinterfaces/win32_unicode.py 
b/pywikibot/userinterfaces/win32_unicode.py
index a7bcfc4..ae9048d 100755
--- a/pywikibot/userinterfaces/win32_unicode.py
+++ b/pywikibot/userinterfaces/win32_unicode.py
@@ -25,6 +25,10 @@
 stdout = sys.stdout
 stderr = sys.stderr
 argv = sys.argv
+
+if sys.version_info[0] > 2:
+    unicode = str
+
 if sys.platform == "win32":
     import codecs
     from ctypes import WINFUNCTYPE, windll, POINTER
@@ -178,7 +182,7 @@
                             self._stream.write(text)
                         else:
                             if not isinstance(text, unicode):
-                                text = str(text).decode('utf-8')
+                                text = bytes(text).decode('utf-8')
                             remaining = len(text)
                             while remaining > 0:
                                 n = DWORD(0)
@@ -246,7 +250,7 @@
         # Also skip option arguments to the Python interpreter.
         while len(argv) > 0:
             arg = argv[0]
-            if not arg.startswith(u"-") or arg == u"-":
+            if not arg.startswith(b"-") or arg == u"-":
                 break
             argv = argv[1:]
             if arg == u'-m':
diff --git a/pywikibot/weblib.py b/pywikibot/weblib.py
index 017965a..83f6a68 100644
--- a/pywikibot/weblib.py
+++ b/pywikibot/weblib.py
@@ -11,7 +11,12 @@
 #
 __version__ = '$Id$'
 
-import urllib
+import sys
+if sys.version_info[0] == 2:
+    from urllib import urlencode
+else:
+    from urllib.parse import urlencode
+
 from pywikibot.comms import http
 
 
@@ -34,7 +39,7 @@
     if timestamp is not None:
         query['timestamp'] = timestamp
 
-    uri = uri + urllib.urlencode(query)
+    uri = uri + urlencode(query)
     jsontext = http.request(uri=uri, site=None)
     if "closest" in jsontext:
         data = json.loads(jsontext)
@@ -63,7 +68,7 @@
     if timestamp is not None:
         query['date'] = timestamp
 
-    uri = uri + urllib.urlencode(query)
+    uri = uri + urlencode(query)
     xmltext = http.request(uri=uri, site=None)
     if "success" in xmltext:
         data = ET.fromstring(xmltext)
diff --git a/tests/page_tests.py b/tests/page_tests.py
index d8590c9..772ddce 100644
--- a/tests/page_tests.py
+++ b/tests/page_tests.py
@@ -7,12 +7,16 @@
 #
 __version__ = '$Id$'
 
-
+import sys
 import pywikibot
 import pywikibot.page
 
 from tests.utils import PywikibotTestCase, unittest
 
+if sys.version_info[0] > 2:
+    basestring = (str, )
+    unicode = str
+
 site = pywikibot.Site('en', 'wikipedia')
 mainpage = pywikibot.Page(pywikibot.page.Link("Main Page", site))
 maintalk = pywikibot.Page(pywikibot.page.Link("Talk:Main Page", site))
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 96079a5..125b6aa 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -20,6 +20,7 @@
 
 if sys.version_info[0] > 2:
     basestring = (str, )
+    unicode = str
 
 mysite = None
 mainpage = None

-- 
To view, visit https://gerrit.wikimedia.org/r/158336
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2f8c2fb06115c735a499d24dd333e3854a4d6cc2
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: XZise <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to