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 = { '¶ms;': 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-... # 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)
pywikibot-commits@lists.wikimedia.org