jenkins-bot has submitted this change and it was merged.

Change subject: [IMPROV] Use 'io' package also in Python 2.6
......................................................................


[IMPROV] Use 'io' package also in Python 2.6

This also fixes a problem with flickrripper in Python 3, because it
stored the binary image data into a StringIO and not BytesIO object.

Change-Id: I79703aa4d3a3d1df5cea546cb18152305c3b0cd4
---
M pywikibot/compat/query.py
M pywikibot/version.py
M scripts/flickrripper.py
M scripts/reflinks.py
M scripts/script_wui.py
5 files changed, 11 insertions(+), 23 deletions(-)

Approvals:
  John Vandenberg: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pywikibot/compat/query.py b/pywikibot/compat/query.py
index bd9aa77..fe02c99 100644
--- a/pywikibot/compat/query.py
+++ b/pywikibot/compat/query.py
@@ -15,11 +15,7 @@
 from pywikibot.data import api
 from pywikibot.tools import deprecated, deprecate_arg
 
-import sys
-if sys.version_info[0] > 2:
-    import io as StringIO
-else:
-    import StringIO
+import io
 
 
 @deprecated("pywikibot.data.api.Request")
@@ -36,7 +32,7 @@
     if back_response:
         pywikibot.warning(u"back_response is no longer supported; an empty "
                           u"response object will be returned")
-        res_dummy = StringIO.StringIO()
+        res_dummy = io.StringIO()
         res_dummy.__dict__.update({u'code': 0, u'msg': u''})
         return res_dummy, result
     return result
diff --git a/pywikibot/version.py b/pywikibot/version.py
index c8cb36c..c3042e6 100644
--- a/pywikibot/version.py
+++ b/pywikibot/version.py
@@ -14,7 +14,6 @@
 import time
 import datetime
 import subprocess
-import sys
 
 import pywikibot.config2 as config
 
@@ -143,10 +142,7 @@
     @return: the git hash
     @rtype: str
     """
-    if sys.version_info[0] > 2:
-        from io import StringIO
-    else:
-        from StringIO import StringIO
+    from io import StringIO
     import xml.dom.minidom
     from pywikibot.comms import http
 
diff --git a/scripts/flickrripper.py b/scripts/flickrripper.py
index d5550d2..46d3475 100644
--- a/scripts/flickrripper.py
+++ b/scripts/flickrripper.py
@@ -37,6 +37,8 @@
 import base64
 import time
 import sys
+import io
+
 import pywikibot
 from pywikibot import config, textlib
 import upload
@@ -52,14 +54,12 @@
 if sys.version_info[0] > 2:
     from urllib.parse import urlencode
     from urllib.request import urlopen
-    import io as StringIO
     from tkinter import (
         Tk, Label, Entry, Scrollbar, Text, Button,
         END, VERTICAL, NORMAL, WORD
     )
 else:
     from urllib import urlencode, urlopen
-    import StringIO
     from Tkinter import (
         Tk, Label, Entry, Scrollbar, Text, Button,
         END, VERTICAL, NORMAL, WORD
@@ -122,13 +122,13 @@
 
 def downloadPhoto(photoUrl=''):
     """
-    Download the photo and store it in a StrinIO.StringIO object.
+    Download the photo and store it in a io.BytesIO object.
 
     TODO: Add exception handling
 
     """
     imageFile = urlopen(photoUrl).read()
-    return StringIO.StringIO(imageFile)
+    return io.BytesIO(imageFile)
 
 
 def findDuplicateImages(photo=None,
@@ -378,7 +378,7 @@
         self.descriptionScrollbar.grid(row=14, column=5)
 
     def getImage(self, photo, width, height):
-        """Take the StringIO object and build an imageTK thumbnail."""
+        """Take the BytesIO object and build an imageTK thumbnail."""
         image = Image.open(photo)
         image.thumbnail((width, height))
         imageTk = ImageTk.PhotoImage(image)
diff --git a/scripts/reflinks.py b/scripts/reflinks.py
index 03664d0..477b668 100644
--- a/scripts/reflinks.py
+++ b/scripts/reflinks.py
@@ -50,6 +50,7 @@
 import os
 import gzip
 import sys
+import io
 
 import pywikibot
 from pywikibot import i18n, pagegenerators, textlib, xmlreader, Bot
@@ -61,11 +62,9 @@
     from urllib.request import urlopen
     from urllib.error import HTTPError, URLError
     import http.client as httplib
-    import io as StringIO
 else:
     from urllib2 import quote, urlopen, HTTPError, URLError
     import httplib
-    import StringIO
 
 docuReplacements = {
     '&params;': pagegenerators.parameterHelp
@@ -592,7 +591,7 @@
                         # through f.read(). It might fetch big files/pages.
                         # However, truncating an encoded gzipped stream is not
                         # an option, for unzipping will fail.
-                        compressed = StringIO.StringIO(f.read())
+                        compressed = io.StringIO(f.read())
                         f = gzip.GzipFile(fileobj=compressed)
 
                     # Read the first 1,000,000 bytes (0.95 MB)
diff --git a/scripts/script_wui.py b/scripts/script_wui.py
index 1e2ef0c..9d0aab2 100755
--- a/scripts/script_wui.py
+++ b/scripts/script_wui.py
@@ -207,10 +207,7 @@
 def main_script(page, rev=None, params=None):
     # 
http://opensourcehacker.com/2011/02/23/temporarily-capturing-python-logging-output-to-a-string-buffer/
     # https://docs.python.org/release/2.6/library/logging.html
-    if sys.version_info[0] > 2:
-        from io import StringIO
-    else:
-        from StringIO import StringIO
+    from io import StringIO
     import logging
 
     # safety; default mode is safe (no writing)

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

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

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

Reply via email to