From 37f22ebfcd490308036778c68a2feff316dd9a83 Mon Sep 17 00:00:00 2001 From: Brian Crowell Date: Wed, 10 Oct 2012 17:11:13 -0500 Subject: [PATCH] py3k: Use string methods instead of string module First, we go for the obvious stuff. The string module methods are gone in 3.0, so we translate them to the appropriate methods on the string class. --- PIL/BdfFontFile.py | 23 +++++++++++------------ PIL/BmpImagePlugin.py | 3 +-- PIL/EpsImagePlugin.py | 8 ++++---- PIL/FliImagePlugin.py | 3 +-- PIL/GimpGradientFile.py | 5 ++--- PIL/GimpPaletteFile.py | 6 +++--- PIL/IcnsImagePlugin.py | 4 ++-- PIL/ImImagePlugin.py | 6 +++--- PIL/Image.py | 24 ++++++++++++------------ PIL/ImageCms.py | 3 +-- PIL/ImageColor.py | 35 ++++++++++++++--------------------- PIL/ImageFile.py | 4 ++-- PIL/ImageFont.py | 4 ++-- PIL/JpegImagePlugin.py | 3 +-- PIL/OleFileIO.py | 4 ++-- PIL/PSDraw.py | 5 ++--- PIL/PaletteFile.py | 6 ++---- PIL/PcfFontFile.py | 4 +--- PIL/PngImagePlugin.py | 14 +++++++------- PIL/TarIO.py | 5 ++--- PIL/TiffImagePlugin.py | 14 +++++++------- PIL/XVThumbImagePlugin.py | 3 +-- PIL/XbmImagePlugin.py | 4 ++-- PIL/XpmImagePlugin.py | 12 ++++++------ Sane/sane.py | 3 +-- Scripts/explode.py | 14 +++++++------- Scripts/gifmaker.py | 1 - Scripts/pildriver.py | 7 +++---- 28 files changed, 102 insertions(+), 125 deletions(-) diff --git a/PIL/BdfFontFile.py b/PIL/BdfFontFile.py index 47b5f05c8..33c237e0c 100644 --- a/PIL/BdfFontFile.py +++ b/PIL/BdfFontFile.py @@ -20,7 +20,6 @@ import Image import FontFile -import string # -------------------------------------------------------------------- # parse X Bitmap Distribution Format (BDF) @@ -50,7 +49,7 @@ def bdf_char(f): return None if s[:9] == "STARTCHAR": break - id = string.strip(s[9:]) + id = s[9:].strip() # load symbol properties props = {} @@ -58,7 +57,7 @@ def bdf_char(f): s = f.readline() if not s or s[:6] == "BITMAP": break - i = string.find(s, " ") + i = s.find(" ") props[s[:i]] = s[i+1:-1] # load bitmap @@ -68,10 +67,10 @@ def bdf_char(f): if not s or s[:7] == "ENDCHAR": break bitmap.append(s[:-1]) - bitmap = string.join(bitmap, "") + bitmap = "".join(bitmap) - [x, y, l, d] = map(int, string.split(props["BBX"])) - [dx, dy] = map(int, string.split(props["DWIDTH"])) + [x, y, l, d] = map(int, props["BBX"].split()) + [dx, dy] = map(int, props["DWIDTH"].split()) bbox = (dx, dy), (l, -d-y, x+l, -d), (0, 0, x, y) @@ -103,21 +102,21 @@ class BdfFontFile(FontFile.FontFile): s = fp.readline() if not s or s[:13] == "ENDPROPERTIES": break - i = string.find(s, " ") + i = s.find(" ") props[s[:i]] = s[i+1:-1] if s[:i] in ["COMMENT", "COPYRIGHT"]: - if string.find(s, "LogicalFontDescription") < 0: + if s.find("LogicalFontDescription") < 0: comments.append(s[i+1:-1]) - font = string.split(props["FONT"], "-") + font = props["FONT"].split("-") - font[4] = bdf_slant[string.upper(font[4])] - font[11] = bdf_spacing[string.upper(font[11])] + font[4] = bdf_slant[font[4].upper()] + font[11] = bdf_spacing[font[11].upper()] ascent = int(props["FONT_ASCENT"]) descent = int(props["FONT_DESCENT"]) - fontname = string.join(font[1:], ";") + fontname = ";".join(font[1:]) # print "#", fontname # for i in comments: diff --git a/PIL/BmpImagePlugin.py b/PIL/BmpImagePlugin.py index 09c0a2141..c2c3f6d49 100644 --- a/PIL/BmpImagePlugin.py +++ b/PIL/BmpImagePlugin.py @@ -27,7 +27,6 @@ __version__ = "0.7" -import string import Image, ImageFile, ImagePalette @@ -146,7 +145,7 @@ class BmpImageFile(ImageFile.ImageFile): else: self.mode = "P" self.palette = ImagePalette.raw( - "BGR", string.join(palette, "") + "BGR", "".join(palette) ) if not offset: diff --git a/PIL/EpsImagePlugin.py b/PIL/EpsImagePlugin.py index 837447bca..f304a1fe2 100644 --- a/PIL/EpsImagePlugin.py +++ b/PIL/EpsImagePlugin.py @@ -20,7 +20,7 @@ __version__ = "0.5" -import re, string +import re import Image, ImageFile # @@ -55,7 +55,7 @@ def Ghostscript(tile, size, fp): "-sOutputFile=%s" % file,# output file "- >/dev/null 2>/dev/null"] - command = string.join(command) + command = " ".join(command) # push data through ghostscript try: @@ -183,7 +183,7 @@ class EpsImageFile(ImageFile.ImageFile): # Note: The DSC spec says that BoundingBox # fields should be integers, but some drivers # put floating point values there anyway. - box = map(int, map(float, string.split(v))) + box = map(int, map(float, v.split())) self.size = box[2] - box[0], box[3] - box[1] self.tile = [("eps", (0,0) + self.size, offset, (length, box))] @@ -231,7 +231,7 @@ class EpsImageFile(ImageFile.ImageFile): if s[:11] == "%ImageData:": [x, y, bi, mo, z3, z4, en, id] =\ - string.split(s[11:], maxsplit=7) + s[11:].split(maxsplit=7) x = int(x); y = int(y) diff --git a/PIL/FliImagePlugin.py b/PIL/FliImagePlugin.py index dac8c435d..94c99bcc6 100644 --- a/PIL/FliImagePlugin.py +++ b/PIL/FliImagePlugin.py @@ -19,7 +19,6 @@ __version__ = "0.2" import Image, ImageFile, ImagePalette -import string def i16(c): @@ -84,7 +83,7 @@ class FliImageFile(ImageFile.ImageFile): self._palette(palette, 0) palette = map(lambda (r,g,b): chr(r)+chr(g)+chr(b), palette) - self.palette = ImagePalette.raw("RGB", string.join(palette, "")) + self.palette = ImagePalette.raw("RGB", "".join(palette)) # set things up to decode first frame self.frame = -1 diff --git a/PIL/GimpGradientFile.py b/PIL/GimpGradientFile.py index 1a850dc53..9a9f9c421 100644 --- a/PIL/GimpGradientFile.py +++ b/PIL/GimpGradientFile.py @@ -14,7 +14,6 @@ # from math import pi, log, sin, sqrt -import string # -------------------------------------------------------------------- # Stuff to translate curve segments to palette values (derived from @@ -87,7 +86,7 @@ class GradientFile: # add to palette palette.append(r + g + b + a) - return string.join(palette, ""), "RGBA" + return "".join(palette), "RGBA" ## # File handler for GIMP's gradient format. @@ -105,7 +104,7 @@ class GimpGradientFile(GradientFile): for i in range(count): - s = string.split(fp.readline()) + s = fp.readline().split() w = map(float, s[:11]) x0, x1 = w[0], w[2] diff --git a/PIL/GimpPaletteFile.py b/PIL/GimpPaletteFile.py index aba85b71f..b39ca7891 100644 --- a/PIL/GimpPaletteFile.py +++ b/PIL/GimpPaletteFile.py @@ -14,7 +14,7 @@ # See the README file for information on usage and redistribution. # -import re, string +import re ## # File handler for GIMP's palette format. @@ -44,7 +44,7 @@ class GimpPaletteFile: if len(s) > 100: raise SyntaxError, "bad palette file" - v = tuple(map(int, string.split(s)[:3])) + v = tuple(map(int, s.split()[:3])) if len(v) != 3: raise ValueError, "bad palette entry" @@ -53,7 +53,7 @@ class GimpPaletteFile: i = i + 1 - self.palette = string.join(self.palette, "") + self.palette = "".join(self.palette) def getpalette(self): diff --git a/PIL/IcnsImagePlugin.py b/PIL/IcnsImagePlugin.py index 4d68fa232..fdfe51110 100644 --- a/PIL/IcnsImagePlugin.py +++ b/PIL/IcnsImagePlugin.py @@ -15,7 +15,7 @@ # import Image, ImageFile -import string, struct +import struct HEADERSIZE = 8 @@ -68,7 +68,7 @@ def read_32(fobj, (start, length), size): "Error reading channel [%r left]" % bytesleft ) band = Image.frombuffer( - "L", size, string.join(data, ""), "raw", "L", 0, 1 + "L", size, "".join(data), "raw", "L", 0, 1 ) im.im.putband(band.im, band_ix) return {"RGB": im} diff --git a/PIL/ImImagePlugin.py b/PIL/ImImagePlugin.py index a76dcf04e..788a26229 100644 --- a/PIL/ImImagePlugin.py +++ b/PIL/ImImagePlugin.py @@ -28,7 +28,7 @@ __version__ = "0.7" -import re, string +import re import Image, ImageFile, ImagePalette @@ -158,8 +158,8 @@ class ImImageFile(ImageFile.ImageFile): # Convert value as appropriate if k in [FRAMES, SCALE, SIZE]: - v = string.replace(v, "*", ",") - v = tuple(map(number, string.split(v, ","))) + v = v.replace("*", ",") + v = tuple(map(number, v.split(","))) if len(v) == 1: v = v[0] elif k == MODE and OPEN.has_key(v): diff --git a/PIL/Image.py b/PIL/Image.py index aa87fb472..8038e6481 100644 --- a/PIL/Image.py +++ b/PIL/Image.py @@ -67,7 +67,7 @@ except ImportError, v: import ImageMode import ImagePalette -import os, string, sys +import os, sys # type stuff from types import IntType, StringType, TupleType @@ -544,7 +544,7 @@ class Image: if s < 0: raise RuntimeError("encoder error %d in tostring" % s) - return string.join(data, "") + return "".join(data) ## # Returns the image converted to an X11 bitmap. This method @@ -561,9 +561,9 @@ class Image: if self.mode != "1": raise ValueError("not a bitmap") data = self.tostring("xbm") - return string.join(["#define %s_width %d\n" % (name, self.size[0]), + return "".join(["#define %s_width %d\n" % (name, self.size[0]), "#define %s_height %d\n"% (name, self.size[1]), - "static char %s_bits[] = {\n" % name, data, "};"], "") + "static char %s_bits[] = {\n" % name, data, "};"]) ## # Loads this image with pixel data from a string. @@ -1233,7 +1233,7 @@ class Image: palette = ImagePalette.raw(data.rawmode, data.palette) else: if not isStringType(data): - data = string.join(map(chr, data), "") + data = "".join(map(chr, data)) palette = ImagePalette.raw(rawmode, data) self.mode = "P" self.palette = palette @@ -1408,7 +1408,7 @@ class Image: preinit() - ext = string.lower(os.path.splitext(filename)[1]) + ext = os.path.splitext(filename)[1].lower() if not format: try: @@ -1421,10 +1421,10 @@ class Image: raise KeyError(ext) # unknown extension try: - save_handler = SAVE[string.upper(format)] + save_handler = SAVE[format.upper()] except KeyError: init() - save_handler = SAVE[string.upper(format)] # unknown format + save_handler = SAVE[format.upper()] # unknown format if isStringType(fp): import __builtin__ @@ -2093,7 +2093,7 @@ def merge(mode, bands): # reject images having another format. def register_open(id, factory, accept=None): - id = string.upper(id) + id = id.upper() ID.append(id) OPEN[id] = factory, accept @@ -2105,7 +2105,7 @@ def register_open(id, factory, accept=None): # @param mimetype The image MIME type for this format. def register_mime(id, mimetype): - MIME[string.upper(id)] = mimetype + MIME[id.upper()] = mimetype ## # Registers an image save function. This function should not be @@ -2115,7 +2115,7 @@ def register_mime(id, mimetype): # @param driver A function to save images in this format. def register_save(id, driver): - SAVE[string.upper(id)] = driver + SAVE[id.upper()] = driver ## # Registers an image extension. This function should not be @@ -2125,7 +2125,7 @@ def register_save(id, driver): # @param extension An extension used for this format. def register_extension(id, extension): - EXTENSION[string.lower(extension)] = string.upper(id) + EXTENSION[extension.lower()] = id.upper() # -------------------------------------------------------------------- diff --git a/PIL/ImageCms.py b/PIL/ImageCms.py index b8a6dca71..d5f7b975c 100644 --- a/PIL/ImageCms.py +++ b/PIL/ImageCms.py @@ -770,7 +770,6 @@ if __name__ == "__main__": # create a cheap manual from the __doc__ strings for the functions above import ImageCms - import string print __doc__ for f in dir(pyCMS): @@ -779,7 +778,7 @@ if __name__ == "__main__": try: exec ("doc = ImageCms.%s.__doc__" %(f)) - if string.find(doc, "pyCMS") >= 0: + if "pyCMS" in doc: # so we don't get the __doc__ string for imported modules print doc except AttributeError: diff --git a/PIL/ImageColor.py b/PIL/ImageColor.py index c3cca46db..8d3354a3c 100644 --- a/PIL/ImageColor.py +++ b/PIL/ImageColor.py @@ -18,15 +18,8 @@ # import Image -import re, string +import re -try: - x = int("a", 16) -except TypeError: - # python 1.5.2 doesn't support int(x,b) - str2int = string.atoi -else: - str2int = int ## # Convert color string to RGB tuple. @@ -43,7 +36,7 @@ def getrgb(color): except KeyError: try: # fall back on case-insensitive lookup - rgb = colormap[string.lower(color)] + rgb = colormap[color.lower()] except KeyError: rgb = None # found color in cache @@ -56,30 +49,30 @@ def getrgb(color): m = re.match("#\w\w\w$", color) if m: return ( - str2int(color[1]*2, 16), - str2int(color[2]*2, 16), - str2int(color[3]*2, 16) + int(color[1]*2, 16), + int(color[2]*2, 16), + int(color[3]*2, 16) ) m = re.match("#\w\w\w\w\w\w$", color) if m: return ( - str2int(color[1:3], 16), - str2int(color[3:5], 16), - str2int(color[5:7], 16) + int(color[1:3], 16), + int(color[3:5], 16), + int(color[5:7], 16) ) m = re.match("rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color) if m: return ( - str2int(m.group(1)), - str2int(m.group(2)), - str2int(m.group(3)) + int(m.group(1)), + int(m.group(2)), + int(m.group(3)) ) m = re.match("rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$", color) if m: return ( - int((str2int(m.group(1)) * 255) / 100.0 + 0.5), - int((str2int(m.group(2)) * 255) / 100.0 + 0.5), - int((str2int(m.group(3)) * 255) / 100.0 + 0.5) + int((int(m.group(1)) * 255) / 100.0 + 0.5), + int((int(m.group(2)) * 255) / 100.0 + 0.5), + int((int(m.group(3)) * 255) / 100.0 + 0.5) ) m = re.match("hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$", color) if m: diff --git a/PIL/ImageFile.py b/PIL/ImageFile.py index 8a97c1b5b..e093f6f56 100644 --- a/PIL/ImageFile.py +++ b/PIL/ImageFile.py @@ -28,7 +28,7 @@ # import Image -import traceback, string, os +import traceback, os MAXBLOCK = 65536 @@ -525,4 +525,4 @@ def _safe_read(fp, size): break data.append(block) size = size - len(block) - return string.join(data, "") + return "".join(data) diff --git a/PIL/ImageFont.py b/PIL/ImageFont.py index 3ea2f2f8e..5531c8b47 100644 --- a/PIL/ImageFont.py +++ b/PIL/ImageFont.py @@ -26,7 +26,7 @@ # import Image -import os, string, sys +import os, sys class _imagingft_not_installed: # module placeholder @@ -99,7 +99,7 @@ class ImageFont: # read PILfont header if file.readline() != "PILfont\n": raise SyntaxError("Not a PILfont file") - d = string.split(file.readline(), ";") + d = file.readline().split(";") self.info = [] # FIXME: should be a dictionary while True: s = file.readline() diff --git a/PIL/JpegImagePlugin.py b/PIL/JpegImagePlugin.py index 933abf3c2..3c4d5bd4e 100644 --- a/PIL/JpegImagePlugin.py +++ b/PIL/JpegImagePlugin.py @@ -35,7 +35,6 @@ __version__ = "0.6" import array, struct -import string import Image, ImageFile def i16(c,o=0): @@ -154,7 +153,7 @@ def SOF(self, marker): profile = [] for p in self.icclist: profile.append(p[14:]) - icc_profile = string.join(profile, "") + icc_profile = "".join(profile) else: icc_profile = None # wrong number of fragments self.info["icc_profile"] = icc_profile diff --git a/PIL/OleFileIO.py b/PIL/OleFileIO.py index 36e598a9b..1792c9558 100644 --- a/PIL/OleFileIO.py +++ b/PIL/OleFileIO.py @@ -36,7 +36,7 @@ # See the README file for information on usage and redistribution. # -import string, StringIO +import StringIO def i16(c, o = 0): @@ -105,7 +105,7 @@ class _OleStream(StringIO.StringIO): data.append(fp.read(sectorsize)) sect = fat[sect] - data = string.join(data, "") + data = "".join(data) # print len(data), size diff --git a/PIL/PSDraw.py b/PIL/PSDraw.py index 7309e17b3..bc423fc8c 100644 --- a/PIL/PSDraw.py +++ b/PIL/PSDraw.py @@ -16,7 +16,6 @@ # import EpsImagePlugin -import string ## # Simple Postscript graphics interface. @@ -71,8 +70,8 @@ class PSDraw: self.fp.write("%d %d M %d %d 0 Vr\n" % box) def text(self, xy, text): - text = string.joinfields(string.splitfields(text, "("), "\\(") - text = string.joinfields(string.splitfields(text, ")"), "\\)") + text = "\\(".join(text.split("(")) + text = "\\)".join(text.split(")")) xy = xy + (text,) self.fp.write("%d %d M (%s) S\n" % xy) diff --git a/PIL/PaletteFile.py b/PIL/PaletteFile.py index 3bbd91327..99098e8e9 100644 --- a/PIL/PaletteFile.py +++ b/PIL/PaletteFile.py @@ -13,8 +13,6 @@ # See the README file for information on usage and redistribution. # -import string - ## # File handler for Teragon-style palette files. @@ -37,7 +35,7 @@ class PaletteFile: if len(s) > 100: raise SyntaxError, "bad palette file" - v = map(int, string.split(s)) + v = map(int, s.split()) try: [i, r, g, b] = v except ValueError: @@ -47,7 +45,7 @@ class PaletteFile: if 0 <= i <= 255: self.palette[i] = chr(r) + chr(g) + chr(b) - self.palette = string.join(self.palette, "") + self.palette = "".join(self.palette) def getpalette(self): diff --git a/PIL/PcfFontFile.py b/PIL/PcfFontFile.py index bec39e3a0..92e96eb53 100644 --- a/PIL/PcfFontFile.py +++ b/PIL/PcfFontFile.py @@ -19,8 +19,6 @@ import Image import FontFile -import string - # -------------------------------------------------------------------- # declarations @@ -55,7 +53,7 @@ def b32(c): return ord(c[3]) + (ord(c[2])<<8) + (ord(c[1])<<16) + (ord(c[0])<<24) def sz(s, o): - return s[o:string.index(s, "\0", o)] + return s[o:s.index("\0", o)] ## # Font file plugin for the X11 PCF format. diff --git a/PIL/PngImagePlugin.py b/PIL/PngImagePlugin.py index 0ee8589a5..4e58c2bf7 100644 --- a/PIL/PngImagePlugin.py +++ b/PIL/PngImagePlugin.py @@ -33,7 +33,7 @@ __version__ = "0.9" -import re, string +import re import Image, ImageFile, ImagePalette, zlib @@ -189,7 +189,7 @@ class PngStream(ChunkStream): # Null separator 1 byte (null character) # Compression method 1 byte (0) # Compressed profile n bytes (zlib with deflate compression) - i = string.find(s, chr(0)) + i = s.find(chr(0)) if Image.DEBUG: print "iCCP profile name", s[:i] print "Compression method", ord(s[i]) @@ -243,7 +243,7 @@ class PngStream(ChunkStream): # transparency s = ImageFile._safe_read(self.fp, len) if self.im_mode == "P": - i = string.find(s, chr(0)) + i = s.find(chr(0)) if i >= 0: self.im_info["transparency"] = i elif self.im_mode == "L": @@ -277,7 +277,7 @@ class PngStream(ChunkStream): # text s = ImageFile._safe_read(self.fp, len) try: - k, v = string.split(s, "\0", 1) + k, v = s.split("\0", 1) except ValueError: k = s; v = "" # fallback for broken tEXt tags if k: @@ -288,7 +288,7 @@ class PngStream(ChunkStream): # compressed text s = ImageFile._safe_read(self.fp, len) - k, v = string.split(s, "\0", 1) + k, v = s.split("\0", 1) comp_method = ord(v[0]) if comp_method != 0: raise SyntaxError("Unknown compression method %s in zTXt chunk" % comp_method) @@ -443,7 +443,7 @@ _OUTMODES = { def putchunk(fp, cid, *data): "Write a PNG chunk (including CRC field)" - data = string.join(data, "") + data = "".join(data) fp.write(o32(len(data)) + cid) fp.write(data) @@ -593,7 +593,7 @@ def getchunks(im, **params): self.data.append(chunk) def append(fp, cid, *data): - data = string.join(data, "") + data = "".join(data) hi, lo = Image.core.crc32(data, Image.core.crc32(cid)) crc = o16(hi) + o16(lo) fp.append((cid, data, crc)) diff --git a/PIL/TarIO.py b/PIL/TarIO.py index d5de729cd..332b30716 100644 --- a/PIL/TarIO.py +++ b/PIL/TarIO.py @@ -15,7 +15,6 @@ # import ContainerIO -import string ## # A file object that provides read access to a given member of a TAR @@ -40,13 +39,13 @@ class TarIO(ContainerIO.ContainerIO): raise IOError, "unexpected end of tar file" name = s[:100] - i = string.find(name, chr(0)) + i = name.find(chr(0)) if i == 0: raise IOError, "cannot find subfile" if i > 0: name = name[:i] - size = string.atoi(s[124:136], 8) + size = int(s[124:136], 8) if file == name: break diff --git a/PIL/TiffImagePlugin.py b/PIL/TiffImagePlugin.py index 8a0fde9cd..a7f78627d 100644 --- a/PIL/TiffImagePlugin.py +++ b/PIL/TiffImagePlugin.py @@ -44,7 +44,7 @@ __version__ = "1.3.5" import Image, ImageFile import ImagePalette -import array, string, sys +import array, sys II = "II" # little-endian (intel-style) MM = "MM" # big-endian (motorola-style) @@ -422,14 +422,14 @@ class ImageFileDirectory: if typ == 1: # byte data - data = value = string.join(map(chr, value), "") + data = value = "".join(map(chr, value)) elif typ == 7: # untyped data - data = value = string.join(value, "") + data = value = "".join(value) elif type(value[0]) is type(""): # string data typ = 2 - data = value = string.join(value, "\0") + "\0" + data = value = "\0".join(value) + "\0" else: # integer data if tag == STRIPOFFSETS: @@ -444,9 +444,9 @@ class ImageFileDirectory: if v >= 65536: typ = 4 if typ == 3: - data = string.join(map(o16, value), "") + data = "".join(map(o16, value)) else: - data = string.join(map(o32, value), "") + data = "".join(map(o32, value)) if Image.DEBUG: import TiffTags @@ -705,7 +705,7 @@ class TiffImageFile(ImageFile.ImageFile): if self.mode == "P": palette = map(lambda a: chr(a / 256), self.tag[COLORMAP]) - self.palette = ImagePalette.raw("RGB;L", string.join(palette, "")) + self.palette = ImagePalette.raw("RGB;L", "".join(palette)) # # -------------------------------------------------------------------- # Write TIFF files diff --git a/PIL/XVThumbImagePlugin.py b/PIL/XVThumbImagePlugin.py index ab1fb5d7a..91e30e9b8 100644 --- a/PIL/XVThumbImagePlugin.py +++ b/PIL/XVThumbImagePlugin.py @@ -19,7 +19,6 @@ __version__ = "0.1" -import string import Image, ImageFile, ImagePalette # standard color palette for thumbnails (RGB332) @@ -56,7 +55,7 @@ class XVThumbImageFile(ImageFile.ImageFile): break # parse header line (already read) - s = string.split(s.strip()) + s = s.strip().split() self.mode = "P" self.size = int(s[0]), int(s[1]) diff --git a/PIL/XbmImagePlugin.py b/PIL/XbmImagePlugin.py index a8cf1026d..ef7e05eba 100644 --- a/PIL/XbmImagePlugin.py +++ b/PIL/XbmImagePlugin.py @@ -21,7 +21,7 @@ __version__ = "0.6" -import re, string +import re import Image, ImageFile # XBM header @@ -36,7 +36,7 @@ xbm_head = re.compile( ) def _accept(prefix): - return string.lstrip(prefix)[:7] == "#define" + return prefix.lstrip()[:7] == "#define" ## # Image plugin for X11 bitmaps. diff --git a/PIL/XpmImagePlugin.py b/PIL/XpmImagePlugin.py index a3f40f02c..36cb2ada6 100644 --- a/PIL/XpmImagePlugin.py +++ b/PIL/XpmImagePlugin.py @@ -18,7 +18,7 @@ __version__ = "0.2" -import re, string +import re import Image, ImageFile, ImagePalette # XPM header @@ -72,7 +72,7 @@ class XpmImageFile(ImageFile.ImageFile): s = s[:-1] c = ord(s[1]) - s = string.split(s[2:-2]) + s = s[2:-2].split() for i in range(0, len(s), 2): @@ -84,7 +84,7 @@ class XpmImageFile(ImageFile.ImageFile): self.info["transparency"] = c elif rgb[0] == "#": # FIXME: handle colour names (see ImagePalette.py) - rgb = string.atoi(rgb[1:], 16) + rgb = int(rgb[1:], 16) palette[c] = chr((rgb >> 16) & 255) +\ chr((rgb >> 8) & 255) +\ chr(rgb & 255) @@ -99,7 +99,7 @@ class XpmImageFile(ImageFile.ImageFile): raise ValueError, "cannot read this XPM file" self.mode = "P" - self.palette = ImagePalette.raw("RGB", string.join(palette, "")) + self.palette = ImagePalette.raw("RGB", "".join(palette)) self.tile = [("raw", (0, 0)+self.size, self.fp.tell(), ("P", 0, 1))] @@ -113,11 +113,11 @@ class XpmImageFile(ImageFile.ImageFile): s = [None] * ysize for i in range(ysize): - s[i] = string.ljust(self.fp.readline()[1:xsize+1], xsize) + s[i] = self.fp.readline()[1:xsize+1].ljust(xsize) self.fp = None - return string.join(s, "") + return "".join(s) # # Registry diff --git a/Sane/sane.py b/Sane/sane.py index 27be5a259..bc212e470 100644 --- a/Sane/sane.py +++ b/Sane/sane.py @@ -46,7 +46,6 @@ class Option: """ def __init__(self, args, scanDev): - import string self.scanDev = scanDev # needed to get current value of this option self.index, self.name = args[0], args[1] self.title, self.desc = args[2], args[3] @@ -57,7 +56,7 @@ class Option: if x=='-': return '_' else: return x if type(self.name)!=type(''): self.py_name=str(self.name) - else: self.py_name=string.join(map(f, self.name), '') + else: self.py_name=''.join(map(f, self.name)) def is_active(self): return _sane.OPTION_IS_ACTIVE(self.cap) diff --git a/Scripts/explode.py b/Scripts/explode.py index a336f0699..6081f751a 100644 --- a/Scripts/explode.py +++ b/Scripts/explode.py @@ -6,7 +6,7 @@ # from PIL import Image -import os, string, sys +import os, sys class Interval: @@ -18,18 +18,18 @@ class Interval: self.hilo = [] - for s in string.split(interval, ","): - if not string.strip(s): + for s in interval.split(","): + if not s.strip(): continue try: - v = string.atoi(s) + v = int(s) if v < 0: lo, hi = 0, -v else: lo = hi = v except ValueError: - i = string.find(s, "-") - lo, hi = string.atoi(s[:i]), string.atoi(s[i+1:]) + i = s.find("-") + lo, hi = int(s[:i]), int(s[i+1:]) self.hilo.append((hi, lo)) @@ -69,7 +69,7 @@ if not sys.argv[2:]: infile = sys.argv[1] outfile = sys.argv[2] -frames = Interval(string.join(sys.argv[3:], ",")) +frames = Interval(",".join(sys.argv[3:])) try: # check if outfile contains a placeholder diff --git a/Scripts/gifmaker.py b/Scripts/gifmaker.py index 95524eacc..e3b6701cf 100644 --- a/Scripts/gifmaker.py +++ b/Scripts/gifmaker.py @@ -40,7 +40,6 @@ # from PIL import Image, ImageChops -import string from PIL.GifImagePlugin import getheader, getdata diff --git a/Scripts/pildriver.py b/Scripts/pildriver.py index 5dd575a3f..19c83dbc7 100644 --- a/Scripts/pildriver.py +++ b/Scripts/pildriver.py @@ -49,7 +49,6 @@ of its upper-left-hand corner and displays the cropped portion. # from PIL import Image -import string class PILDriver: @@ -206,7 +205,7 @@ class PILDriver: Process the top image with the given filter. """ import ImageFilter - filter = eval("ImageFilter." + string.upper(self.do_pop())) + filter = eval("ImageFilter." + self.do_pop().upper()) image = self.do_pop() self.push(image.filter(filter)) @@ -314,7 +313,7 @@ class PILDriver: Transpose the top image. """ - transpose = string.upper(self.do_pop()) + transpose = self.do_pop().upper() image = self.do_pop() self.push(image.transpose(transpose)) @@ -515,7 +514,7 @@ if __name__ == '__main__': except EOFError: print "\nPILDriver says goodbye." break - driver.execute(string.split(line)) + driver.execute(line.split()) print driver.stack # The following sets edit modes for GNU EMACS