Merge pull request #1166 from radarhere/health

83% Health
This commit is contained in:
Hugo 2015-04-25 22:58:10 +03:00
commit 86616dfc0a
61 changed files with 234 additions and 245 deletions

View File

@ -248,7 +248,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 = [int(float(s)) for s in v.split()]
box = [int(float(i)) for i in v.split()]
self.size = box[2] - box[0], box[3] - box[1]
self.tile = [("eps", (0, 0) + self.size, offset,
(length, box))]
@ -288,7 +288,7 @@ class EpsImageFile(ImageFile.ImageFile):
if s[:11] == "%ImageData:":
# Encoded bitmapped image.
[x, y, bi, mo, z3, z4, en, id] = s[11:].split(None, 7)
x, y, bi, mo = s[11:].split(None, 7)[:4]
if int(bi) != 8:
break

View File

@ -17,11 +17,6 @@
import os
from PIL import Image, _binary
try:
import zlib
except ImportError:
zlib = None
WIDTH = 800
@ -83,7 +78,8 @@ class FontFile:
glyph = self[i]
if glyph:
d, dst, src, im = glyph
xx, yy = src[2] - src[0], src[3] - src[1]
xx = src[2] - src[0]
# yy = src[3] - src[1]
x0, y0 = x, y
x = x + xx
if x > WIDTH:

View File

@ -39,8 +39,8 @@ class GbrImageFile(ImageFile.ImageFile):
width = i32(self.fp.read(4))
height = i32(self.fp.read(4))
bytes = i32(self.fp.read(4))
if width <= 0 or height <= 0 or bytes != 1:
color_depth = i32(self.fp.read(4))
if width <= 0 or height <= 0 or color_depth != 1:
raise SyntaxError("not a GIMP brush")
comment = self.fp.read(header_size - 20)[:-1]

View File

@ -94,7 +94,7 @@ def read_32(fobj, start_length, size):
def read_mk(fobj, start_length, size):
# Alpha masks seem to be uncompressed
(start, length) = start_length
start = start_length[0]
fobj.seek(start)
pixel_size = (size[0] * size[2], size[1] * size[2])
sizesq = pixel_size[0] * pixel_size[1]

View File

@ -313,7 +313,7 @@ SAVE = {
def _save(im, fp, filename, check=0):
try:
type, rawmode = SAVE[im.mode]
image_type, rawmode = SAVE[im.mode]
except KeyError:
raise ValueError("Cannot save %s images as IM" % im.mode)
@ -325,7 +325,7 @@ def _save(im, fp, filename, check=0):
if check:
return check
fp.write(("Image type: %s image\r\n" % type).encode('ascii'))
fp.write(("Image type: %s image\r\n" % image_type).encode('ascii'))
if filename:
fp.write(("Name: %s\r\n" % filename).encode('ascii'))
fp.write(("Image size (x*y): %d*%d\r\n" % im.size).encode('ascii'))

View File

@ -322,6 +322,7 @@ class Parser:
image = None
data = None
decoder = None
offset = 0
finished = 0
def reset(self):

View File

@ -15,7 +15,7 @@
# See the README file for information on usage and redistribution.
#
from functools import reduce
import functools
class Filter(object):
@ -43,7 +43,7 @@ class Kernel(Filter):
def __init__(self, size, kernel, scale=None, offset=0):
if scale is None:
# default scale is sum of kernel
scale = reduce(lambda a, b: a+b, kernel)
scale = functools.reduce(lambda a, b: a+b, kernel)
if size[0] * size[1] != len(kernel):
raise ValueError("not enough coefficients in kernel")
self.filterargs = size, scale, offset, kernel

View File

@ -20,7 +20,7 @@
from PIL import Image
from PIL._util import isStringType
import operator
from functools import reduce
import functools
#
@ -213,7 +213,7 @@ def equalize(image, mask=None):
if len(histo) <= 1:
lut.extend(list(range(256)))
else:
step = (reduce(operator.add, histo) - histo[-1]) // 255
step = (functools.reduce(operator.add, histo) - histo[-1]) // 255
if not step:
lut.extend(list(range(256)))
else:
@ -233,7 +233,6 @@ def expand(image, border=0, fill=0):
:param fill: Pixel fill value (a color value). Default is 0 (black).
:return: An image.
"""
"Add border to image"
left, top, right, bottom = _border(border)
width = left + image.size[0] + right
height = top + image.size[1] + bottom

View File

@ -225,8 +225,8 @@ def load(filename):
p = PaletteFile.PaletteFile(fp)
lut = p.getpalette()
except (SyntaxError, ValueError):
import traceback
traceback.print_exc()
#import traceback
#traceback.print_exc()
pass
if not lut:

View File

@ -23,7 +23,7 @@
import math
import operator
from functools import reduce
import functools
class Stat:
@ -71,7 +71,7 @@ class Stat:
v = []
for i in range(0, len(self.h), 256):
v.append(reduce(operator.add, self.h[i:i+256]))
v.append(functools.reduce(operator.add, self.h[i:i+256]))
return v
def _getsum(self):
@ -79,10 +79,10 @@ class Stat:
v = []
for i in range(0, len(self.h), 256):
sum = 0.0
layerSum = 0.0
for j in range(256):
sum += j * self.h[i + j]
v.append(sum)
layerSum += j * self.h[i + j]
v.append(layerSum)
return v
def _getsum2(self):

View File

@ -222,7 +222,7 @@ def getiptcinfo(im):
offset += 2
# resource name (usually empty)
name_len = i8(app[offset])
name = app[offset+1:offset+1+name_len]
# name = app[offset+1:offset+1+name_len]
offset = 1 + offset + name_len
if offset & 1:
offset += 1

View File

@ -454,13 +454,13 @@ def _getmp(self):
data = self.info["mp"]
except KeyError:
return None
file = io.BytesIO(data)
head = file.read(8)
file_contents = io.BytesIO(data)
head = file_contents.read(8)
endianness = '>' if head[:4] == b'\x4d\x4d\x00\x2a' else '<'
mp = {}
# process dictionary
info = TiffImagePlugin.ImageFileDirectory(head)
info.load(file)
info.load(file_contents)
for key, value in info.items():
mp[key] = _fixup(value)
# it's an error not to have a number of images

View File

@ -21,7 +21,7 @@ __version__ = "0.1"
from PIL import Image, TiffImagePlugin
from PIL.OleFileIO import *
from PIL.OleFileIO import MAGIC, OleFileIO
#
@ -54,9 +54,9 @@ class MicImageFile(TiffImagePlugin.TiffImageFile):
# best way to identify MIC files, but what the... ;-)
self.images = []
for file in self.ole.listdir():
if file[1:] and file[0][-4:] == ".ACI" and file[1] == "Image":
self.images.append(file)
for path in self.ole.listdir():
if path[1:] and path[0][-4:] == ".ACI" and path[1] == "Image":
self.images.append(path)
# if we didn't find any images, this is probably not
# an MIC file.

View File

@ -49,10 +49,10 @@ class MspImageFile(ImageFile.ImageFile):
raise SyntaxError("not an MSP file")
# Header checksum
sum = 0
checksum = 0
for i in range(0, 32, 2):
sum = sum ^ i16(s[i:i+2])
if sum != 0:
checksum = checksum ^ i16(s[i:i+2])
if checksum != 0:
raise SyntaxError("bad MSP checksum")
self.mode = "1"
@ -83,10 +83,10 @@ def _save(im, fp, filename):
header[6], header[7] = 1, 1
header[8], header[9] = im.size
sum = 0
checksum = 0
for h in header:
sum = sum ^ h
header[12] = sum # FIXME: is this the right field?
checksum = checksum ^ h
header[12] = checksum # FIXME: is this the right field?
# header
for h in header:

View File

@ -360,12 +360,12 @@ WORD_CLSID = "00020900-0000-0000-C000-000000000046"
#TODO: check Excel, PPT, ...
#[PL]: Defect levels to classify parsing errors - see OleFileIO._raise_defect()
DEFECT_UNSURE = 10 # a case which looks weird, but not sure it's a defect
DEFECT_POTENTIAL = 20 # a potential defect
DEFECT_INCORRECT = 30 # an error according to specifications, but parsing
# can go on
DEFECT_FATAL = 40 # an error which cannot be ignored, parsing is
# impossible
DEFECT_UNSURE = 10 # a case which looks weird, but not sure it's a defect
DEFECT_POTENTIAL = 20 # a potential defect
DEFECT_INCORRECT = 30 # an error according to specifications, but parsing
# can go on
DEFECT_FATAL = 40 # an error which cannot be ignored, parsing is
# impossible
#[PL] add useful constants to __all__:
for key in list(vars().keys()):
@ -468,14 +468,14 @@ def _unicode(s, errors='replace'):
def filetime2datetime(filetime):
"""
convert FILETIME (64 bits int) to Python datetime.datetime
"""
# TODO: manage exception when microseconds is too large
# inspired from http://code.activestate.com/recipes/511425-filetime-to-datetime/
_FILETIME_null_date = datetime.datetime(1601, 1, 1, 0, 0, 0)
#debug('timedelta days=%d' % (filetime//(10*1000000*3600*24)))
return _FILETIME_null_date + datetime.timedelta(microseconds=filetime//10)
"""
convert FILETIME (64 bits int) to Python datetime.datetime
"""
# TODO: manage exception when microseconds is too large
# inspired from http://code.activestate.com/recipes/511425-filetime-to-datetime/
_FILETIME_null_date = datetime.datetime(1601, 1, 1, 0, 0, 0)
#debug('timedelta days=%d' % (filetime//(10*1000000*3600*24)))
return _FILETIME_null_date + datetime.timedelta(microseconds=filetime//10)
#=== CLASSES ==================================================================

View File

@ -204,7 +204,7 @@ class PcfFontFile(FontFile.FontFile):
for i in range(4):
bitmapSizes.append(i32(fp.read(4)))
byteorder = format & 4 # non-zero => MSB
# byteorder = format & 4 # non-zero => MSB
bitorder = format & 8 # non-zero => MSB
padindex = format & 3

View File

@ -194,7 +194,7 @@ class _PyAccessI16_L(PyAccess):
pixel = self.pixels[y][x]
try:
color = min(color, 65535)
except:
except TypeError:
color = min(color[0], 65535)
pixel.l = color & 0xFF

View File

@ -48,7 +48,7 @@ def isInt(f):
return 1
else:
return 0
except:
except ValueError:
return 0
iforms = [1, 3, -11, -12, -21, -22]
@ -173,11 +173,11 @@ class SpiderImageFile(ImageFile.ImageFile):
# returns a byte image after rescaling to 0..255
def convert2byte(self, depth=255):
(min, max) = self.getextrema()
(minimum, maximum) = self.getextrema()
m = 1
if max != min:
m = depth / (max-min)
b = -m * min
if maximum != minimum:
m = depth / (maximum-minimum)
b = -m * minimum
return self.point(lambda i, m=m, b=b: i * m + b).convert("L")
# returns a ImageTk.PhotoImage object, after rescaling to 0..255
@ -271,7 +271,7 @@ def _save(im, fp, filename):
def _save_spider(im, fp, filename):
# get the filename extension and register it with Image
fn, ext = os.path.splitext(filename)
ext = os.path.splitext(filename)[1]
Image.register_extension("SPIDER", ext)
_save(im, fp, filename)

View File

@ -731,8 +731,8 @@ class TiffImageFile(ImageFile.ImageFile):
# (self._compression, (extents tuple),
# 0, (rawmode, self._compression, fp))
ignored, extents, ignored_2, args = self.tile[0]
args = args + (self.ifd.offset,)
extents = self.tile[0][1]
args = self.tile[0][3] + (self.ifd.offset,)
decoder = Image._getdecoder(self.mode, 'libtiff', args,
self.decoderconfig)
try:
@ -978,7 +978,7 @@ class TiffImageFile(ImageFile.ImageFile):
# fixup palette descriptor
if self.mode == "P":
palette = [o8(a // 256) for a in self.tag[COLORMAP]]
palette = [o8(b // 256) for b in self.tag[COLORMAP]]
self.palette = ImagePalette.raw("RGB;L", b"".join(palette))
#
# --------------------------------------------------------------------

View File

@ -8,9 +8,9 @@
#
try:
from tkinter import *
from tkinter import Tk, Toplevel, Frame, Label, Scale, HORIZONTAL
except ImportError:
from Tkinter import *
from Tkinter import Tk, Toplevel, Frame, Label, Scale, HORIZONTAL
from PIL import Image, ImageTk, ImageEnhance
import sys

View File

@ -10,9 +10,9 @@
#
try:
from tkinter import *
from tkinter import Tk, Canvas, NW
except ImportError:
from Tkinter import *
from Tkinter import Tk, Canvas, NW
from PIL import Image, ImageTk
import sys

View File

@ -49,7 +49,7 @@ except getopt.error as v:
print(v)
sys.exit(1)
format = None
output_format = None
convert = None
options = {}
@ -68,7 +68,7 @@ for o, a in opt:
sys.exit(1)
elif o == "-c":
format = a
output_format = a
if o == "-g":
convert = "L"
@ -90,8 +90,8 @@ try:
if convert and im.mode != convert:
im.draft(convert, im.size)
im = im.convert(convert)
if format:
im.save(argv[1], format, **options)
if output_format:
im.save(argv[1], output_format, **options)
else:
im.save(argv[1], **options)
except:

View File

@ -19,7 +19,6 @@
from __future__ import print_function
import site
import getopt
import glob
import sys

View File

@ -24,8 +24,8 @@ from PIL import PSDraw
letter = (1.0*72, 1.0*72, 7.5*72, 10.0*72)
def description(file, image):
title = os.path.splitext(os.path.split(file)[1])[0]
def description(filepath, image):
title = os.path.splitext(os.path.split(filepath)[1])[0]
format = " (%dx%d "
if image.format:
format = " (" + image.format + " %dx%d "
@ -65,12 +65,12 @@ for o, a in opt:
# printer channel
printer = "lpr -P%s" % a
for file in argv:
for filepath in argv:
try:
im = Image.open(file)
im = Image.open(filepath)
title = description(file, im)
title = description(filepath, im)
if monochrome and im.mode not in ["1", "L"]:
im.draft("L", im.size)

View File

@ -32,7 +32,7 @@ class UI(Frame):
self.canvas.pack()
scale = Scale(self, orient=HORIZONTAL, from_=0, to=255,
resolution=1, command=self.update, length=256)
resolution=1, command=self.update_scale, length=256)
scale.set(value)
scale.bind("<ButtonRelease-1>", self.redraw)
scale.pack()
@ -41,7 +41,7 @@ class UI(Frame):
# be too slow on some platforms)
# self.redraw()
def update(self, value):
def update_scale(self, value):
self.value = eval(value)
self.redraw()

View File

@ -7,9 +7,9 @@
from __future__ import print_function
try:
from tkinter import *
from tkinter import Tk, Label
except ImportError:
from Tkinter import *
from Tkinter import Tk, Label
from PIL import Image, ImageTk

View File

@ -10,7 +10,7 @@ def bench(mode):
get = im.im.getpixel
xy = 50, 50 # position shouldn't really matter
t0 = timeit.default_timer()
for i in range(1000000):
for _ in range(1000000):
get(xy)
print(mode, timeit.default_timer() - t0, "us")

View File

@ -21,7 +21,7 @@ class TestJpegLeaks(PillowTestCase):
from resource import setrlimit, RLIMIT_AS, RLIMIT_STACK
setrlimit(RLIMIT_STACK, (stack_size, stack_size))
setrlimit(RLIMIT_AS, (mem_limit, mem_limit))
for count in range(iterations):
for _ in range(iterations):
with Image.open(test_file) as im:
im.load()
@ -29,13 +29,13 @@ class TestJpegLeaks(PillowTestCase):
from resource import setrlimit, RLIMIT_AS, RLIMIT_STACK
setrlimit(RLIMIT_STACK, (stack_size, stack_size))
setrlimit(RLIMIT_AS, (mem_limit, mem_limit))
for count in range(iterations):
for _ in range(iterations):
with Image.open(test_file) as im:
im.load()
test_output = BytesIO()
im.save(test_output, "JPEG2000")
test_output.seek(0)
output = test_output.read()
test_output.read()
if __name__ == '__main__':

View File

@ -1,5 +1,4 @@
from helper import unittest, PillowTestCase, hopper
from PIL import Image
from io import BytesIO
import sys
@ -102,7 +101,7 @@ post-patch:
qtables = [standard_l_qtable,
standard_chrominance_qtable]
for count in range(iterations):
for _ in range(iterations):
test_output = BytesIO()
im.save(test_output, "JPEG", qtables=qtables)
@ -166,11 +165,12 @@ post patch:
im = hopper('RGB')
exif = b'12345678'*4096
for count in range(iterations):
for _ in range(iterations):
test_output = BytesIO()
im.save(test_output, "JPEG", exif=exif)
"""
def test_base_save(self):
"""
base case:
MB
20.99^ ::::: :::::::::::::::::::::::::::::::::::::::::::@:::
@ -196,11 +196,9 @@ base case:
0 +----------------------------------------------------------------------->Gi
0 7.882
"""
def test_base_save(self):
im = hopper('RGB')
for count in range(iterations):
for _ in range(iterations):
test_output = BytesIO()
im.save(test_output, "JPEG")

View File

@ -28,7 +28,7 @@ class TestWebPLeaks(PillowTestCase):
with open(test_file, 'rb') as f:
im_data = f.read()
start_mem = self._get_mem_usage()
for count in range(iterations):
for _ in range(iterations):
with Image.open(BytesIO(im_data)) as im:
im.load()
mem = (self._get_mem_usage() - start_mem)

View File

@ -58,10 +58,10 @@ class TestBmpReference(PillowTestCase):
}
def get_compare(f):
(head, name) = os.path.split(f)
name = os.path.split(f)[1]
if name in file_map:
return os.path.join(base, 'html', file_map[name])
(name, ext) = os.path.splitext(name)
name = os.path.splitext(name)[0]
return os.path.join(base, 'html', "%s.png" % name)
for f in self.get_files('g'):

View File

@ -49,10 +49,10 @@ class TestCffi(PillowTestCase):
self.skipTest("No cffi")
def _test_get_access(self, im):
""" Do we get the same thing as the old pixel access """
"""Do we get the same thing as the old pixel access
""" Using private interfaces, forcing a capi access and
a pyaccess for the same image """
Using private interfaces, forcing a capi access and
a pyaccess for the same image"""
caccess = im.im.pixel_access(False)
access = PyAccess.new(im, False)
@ -90,10 +90,10 @@ class TestCffi(PillowTestCase):
# self._test_get_access(im)
def _test_set_access(self, im, color):
""" Are we writing the correct bits into the image? """
"""Are we writing the correct bits into the image?
""" Using private interfaces, forcing a capi access and
a pyaccess for the same image """
Using private interfaces, forcing a capi access and
a pyaccess for the same image"""
caccess = im.im.pixel_access(False)
access = PyAccess.new(im, False)

View File

@ -5,14 +5,14 @@ from PIL import Image
# sample ppm stream
# created as an export of a palette image from Gimp2.6
# save as...-> hopper.fli, default options.
file = "Tests/images/hopper.fli"
data = open(file, "rb").read()
test_file = "Tests/images/hopper.fli"
data = open(test_file, "rb").read()
class TestFileFli(PillowTestCase):
def test_sanity(self):
im = Image.open(file)
im = Image.open(test_file)
im.load()
self.assertEqual(im.mode, "P")
self.assertEqual(im.size, (128, 128))

View File

@ -36,9 +36,9 @@ class TestFileGif(PillowTestCase):
def test_bilevel(optimize):
im = Image.new("1", (1, 1), 0)
file = BytesIO()
im.save(file, "GIF", optimize=optimize)
return len(file.getvalue())
test_file = BytesIO()
im.save(test_file, "GIF", optimize=optimize)
return len(test_file.getvalue())
self.assertEqual(test_grayscale(0), 800)
self.assertEqual(test_grayscale(1), 38)
@ -49,8 +49,8 @@ class TestFileGif(PillowTestCase):
from io import BytesIO
im = Image.frombytes("L", (16, 16), bytes(bytearray(range(256))))
file = BytesIO()
im.save(file, "GIF", optimize=True)
test_file = BytesIO()
im.save(test_file, "GIF", optimize=True)
self.assertEqual(im.mode, "L")
def test_roundtrip(self):

View File

@ -5,8 +5,8 @@ from PIL import Image
import sys
# sample icon file
file = "Tests/images/pillow.icns"
data = open(file, "rb").read()
test_file = "Tests/images/pillow.icns"
data = open(test_file, "rb").read()
enable_jpeg2k = hasattr(Image.core, 'jp2klib_version')
@ -16,7 +16,7 @@ class TestFileIcns(PillowTestCase):
def test_sanity(self):
# Loading this icon by default should result in the largest size
# (512x512@2x) being loaded
im = Image.open(file)
im = Image.open(test_file)
im.load()
self.assertEqual(im.mode, "RGBA")
self.assertEqual(im.size, (1024, 1024))
@ -39,11 +39,11 @@ class TestFileIcns(PillowTestCase):
def test_sizes(self):
# Check that we can load all of the sizes, and that the final pixel
# dimensions are as expected
im = Image.open(file)
im = Image.open(test_file)
for w, h, r in im.info['sizes']:
wr = w * r
hr = h * r
im2 = Image.open(file)
im2 = Image.open(test_file)
im2.size = (w, h, r)
im2.load()
self.assertEqual(im2.mode, 'RGBA')

View File

@ -23,10 +23,10 @@ class TestFileJpeg(PillowTestCase):
def roundtrip(self, im, **options):
out = BytesIO()
im.save(out, "JPEG", **options)
bytes = out.tell()
test_bytes = out.tell()
out.seek(0)
im = Image.open(out)
im.bytes = bytes # for testing only
im.bytes = test_bytes # for testing only
return im
def test_sanity(self):

View File

@ -22,10 +22,10 @@ class TestFileJpeg2k(PillowTestCase):
def roundtrip(self, im, **options):
out = BytesIO()
im.save(out, "JPEG2000", **options)
bytes = out.tell()
test_bytes = out.tell()
out.seek(0)
im = Image.open(out)
im.bytes = bytes # for testing only
im.bytes = test_bytes # for testing only
im.load()
return im

View File

@ -39,22 +39,22 @@ class TestFileLibTiff(LibTiffTestCase):
def test_g4_tiff(self):
"""Test the ordinary file path load path"""
file = "Tests/images/hopper_g4_500.tif"
im = Image.open(file)
test_file = "Tests/images/hopper_g4_500.tif"
im = Image.open(test_file)
self.assertEqual(im.size, (500, 500))
self._assert_noerr(im)
def test_g4_large(self):
file = "Tests/images/pport_g4.tif"
im = Image.open(file)
test_file = "Tests/images/pport_g4.tif"
im = Image.open(test_file)
self._assert_noerr(im)
def test_g4_tiff_file(self):
"""Testing the string load path"""
file = "Tests/images/hopper_g4_500.tif"
with open(file, 'rb') as f:
test_file = "Tests/images/hopper_g4_500.tif"
with open(test_file, 'rb') as f:
im = Image.open(f)
self.assertEqual(im.size, (500, 500))
@ -62,9 +62,9 @@ class TestFileLibTiff(LibTiffTestCase):
def test_g4_tiff_bytesio(self):
"""Testing the stringio loading code path"""
file = "Tests/images/hopper_g4_500.tif"
test_file = "Tests/images/hopper_g4_500.tif"
s = io.BytesIO()
with open(file, 'rb') as f:
with open(test_file, 'rb') as f:
s.write(f.read())
s.seek(0)
im = Image.open(s)
@ -89,8 +89,8 @@ class TestFileLibTiff(LibTiffTestCase):
def test_g4_write(self):
"""Checking to see that the saved image is the same as what we wrote"""
file = "Tests/images/hopper_g4_500.tif"
orig = Image.open(file)
test_file = "Tests/images/hopper_g4_500.tif"
orig = Image.open(test_file)
out = self.tempfile("temp.tif")
rot = orig.transpose(Image.ROTATE_90)
@ -108,8 +108,8 @@ class TestFileLibTiff(LibTiffTestCase):
self.assertNotEqual(orig.tobytes(), reread.tobytes())
def test_adobe_deflate_tiff(self):
file = "Tests/images/tiff_adobe_deflate.tif"
im = Image.open(file)
test_file = "Tests/images/tiff_adobe_deflate.tif"
im = Image.open(test_file)
self.assertEqual(im.mode, "RGB")
self.assertEqual(im.size, (278, 374))
@ -215,8 +215,8 @@ class TestFileLibTiff(LibTiffTestCase):
def test_g4_string_info(self):
"""Tests String data in info directory"""
file = "Tests/images/hopper_g4_500.tif"
orig = Image.open(file)
test_file = "Tests/images/hopper_g4_500.tif"
orig = Image.open(test_file)
out = self.tempfile("temp.tif")

View File

@ -18,8 +18,8 @@ class TestFileLibTiffSmall(LibTiffTestCase):
def test_g4_hopper_file(self):
"""Testing the open file load path"""
file = "Tests/images/hopper_g4.tif"
with open(file, 'rb') as f:
test_file = "Tests/images/hopper_g4.tif"
with open(test_file, 'rb') as f:
im = Image.open(f)
self.assertEqual(im.size, (128, 128))
@ -28,9 +28,9 @@ class TestFileLibTiffSmall(LibTiffTestCase):
def test_g4_hopper_bytesio(self):
"""Testing the bytesio loading code path"""
from io import BytesIO
file = "Tests/images/hopper_g4.tif"
test_file = "Tests/images/hopper_g4.tif"
s = BytesIO()
with open(file, 'rb') as f:
with open(test_file, 'rb') as f:
s.write(f.read())
s.seek(0)
im = Image.open(s)
@ -41,8 +41,8 @@ class TestFileLibTiffSmall(LibTiffTestCase):
def test_g4_hopper(self):
"""The 128x128 lena image failed for some reason."""
file = "Tests/images/hopper_g4.tif"
im = Image.open(file)
test_file = "Tests/images/hopper_g4.tif"
im = Image.open(test_file)
self.assertEqual(im.size, (128, 128))
self._assert_noerr(im)

View File

@ -17,10 +17,10 @@ class TestFileMpo(PillowTestCase):
# Note that for now, there is no MPO saving functionality
out = BytesIO()
im.save(out, "MPO", **options)
bytes = out.tell()
test_bytes = out.tell()
out.seek(0)
im = Image.open(out)
im.bytes = bytes # for testing only
im.bytes = test_bytes # for testing only
return im
def test_sanity(self):

View File

@ -31,8 +31,8 @@ class TestFilePcx(PillowTestCase):
def test_pil184(self):
# Check reading of files where xmin/xmax is not zero.
file = "Tests/images/pil184.pcx"
im = Image.open(file)
test_file = "Tests/images/pil184.pcx"
im = Image.open(test_file)
self.assertEqual(im.size, (447, 144))
self.assertEqual(im.tile[0][1], (0, 0, 447, 144))

View File

@ -19,9 +19,9 @@ MAGIC = PngImagePlugin._MAGIC
def chunk(cid, *data):
file = BytesIO()
PngImagePlugin.putchunk(*(file, cid) + data)
return file.getvalue()
test_file = BytesIO()
PngImagePlugin.putchunk(*(test_file, cid) + data)
return test_file.getvalue()
o32 = PngImagePlugin.o32
@ -56,37 +56,37 @@ class TestFilePng(PillowTestCase):
self.assertRegexpMatches(
Image.core.zlib_version, "\d+\.\d+\.\d+(\.\d+)?$")
file = self.tempfile("temp.png")
test_file = self.tempfile("temp.png")
hopper("RGB").save(file)
hopper("RGB").save(test_file)
im = Image.open(file)
im = Image.open(test_file)
im.load()
self.assertEqual(im.mode, "RGB")
self.assertEqual(im.size, (128, 128))
self.assertEqual(im.format, "PNG")
hopper("1").save(file)
im = Image.open(file)
hopper("1").save(test_file)
im = Image.open(test_file)
hopper("L").save(file)
im = Image.open(file)
hopper("L").save(test_file)
im = Image.open(test_file)
hopper("P").save(file)
im = Image.open(file)
hopper("P").save(test_file)
im = Image.open(test_file)
hopper("RGB").save(file)
im = Image.open(file)
hopper("RGB").save(test_file)
im = Image.open(test_file)
hopper("I").save(file)
im = Image.open(file)
hopper("I").save(test_file)
im = Image.open(test_file)
def test_broken(self):
# Check reading of totally broken files. In this case, the test
# file was checked into Subversion as a text file.
file = "Tests/images/broken.png"
self.assertRaises(IOError, lambda: Image.open(file))
test_file = "Tests/images/broken.png"
self.assertRaises(IOError, lambda: Image.open(test_file))
def test_bad_text(self):
# Make sure PIL can read malformed tEXt chunks (@PIL152)
@ -167,16 +167,16 @@ class TestFilePng(PillowTestCase):
def test_interlace(self):
file = "Tests/images/pil123p.png"
im = Image.open(file)
test_file = "Tests/images/pil123p.png"
im = Image.open(test_file)
self.assert_image(im, "P", (162, 150))
self.assertTrue(im.info.get("interlace"))
im.load()
file = "Tests/images/pil123rgba.png"
im = Image.open(file)
test_file = "Tests/images/pil123rgba.png"
im = Image.open(test_file)
self.assert_image(im, "RGBA", (162, 150))
self.assertTrue(im.info.get("interlace"))
@ -184,8 +184,8 @@ class TestFilePng(PillowTestCase):
im.load()
def test_load_transparent_p(self):
file = "Tests/images/pil123p.png"
im = Image.open(file)
test_file = "Tests/images/pil123p.png"
im = Image.open(test_file)
self.assert_image(im, "P", (162, 150))
im = im.convert("RGBA")
@ -195,8 +195,8 @@ class TestFilePng(PillowTestCase):
self.assertEqual(len(im.split()[3].getcolors()), 124)
def test_load_transparent_rgb(self):
file = "Tests/images/rgb_trns.png"
im = Image.open(file)
test_file = "Tests/images/rgb_trns.png"
im = Image.open(test_file)
self.assert_image(im, "RGB", (64, 64))
im = im.convert("RGBA")
@ -209,22 +209,22 @@ class TestFilePng(PillowTestCase):
in_file = "Tests/images/pil123p.png"
im = Image.open(in_file)
file = self.tempfile("temp.png")
im.save(file)
test_file = self.tempfile("temp.png")
im.save(test_file)
def test_save_p_single_transparency(self):
in_file = "Tests/images/p_trns_single.png"
im = Image.open(in_file)
file = self.tempfile("temp.png")
im.save(file)
test_file = self.tempfile("temp.png")
im.save(test_file)
def test_save_l_transparency(self):
in_file = "Tests/images/l_trns.png"
im = Image.open(in_file)
file = self.tempfile("temp.png")
im.save(file)
test_file = self.tempfile("temp.png")
im.save(test_file)
# There are 559 transparent pixels.
im = im.convert('RGBA')
@ -234,8 +234,8 @@ class TestFilePng(PillowTestCase):
in_file = "Tests/images/caption_6_33_22.png"
im = Image.open(in_file)
file = self.tempfile("temp.png")
im.save(file)
test_file = self.tempfile("temp.png")
im.save(test_file)
def test_load_verify(self):
# Check open/load/verify exception (@PIL150)
@ -245,7 +245,7 @@ class TestFilePng(PillowTestCase):
im = Image.open(TEST_PNG_FILE)
im.load()
self.assertRaises(RuntimeError, lambda: im.verify())
self.assertRaises(RuntimeError, im.verify)
def test_roundtrip_dpi(self):
# Check dpi roundtripping
@ -329,8 +329,8 @@ class TestFilePng(PillowTestCase):
# Check writing and reading of tRNS chunks for RGB images.
# Independent file sample provided by Sebastian Spaeth.
file = "Tests/images/caption_6_33_22.png"
im = Image.open(file)
test_file = "Tests/images/caption_6_33_22.png"
im = Image.open(test_file)
self.assertEqual(im.info["transparency"], (248, 248, 248))
# check saving transparency by default

View File

@ -3,14 +3,14 @@ from helper import unittest, PillowTestCase
from PIL import Image
# sample ppm stream
file = "Tests/images/hopper.ppm"
data = open(file, "rb").read()
test_file = "Tests/images/hopper.ppm"
data = open(test_file, "rb").read()
class TestFilePpm(PillowTestCase):
def test_sanity(self):
im = Image.open(file)
im = Image.open(test_file)
im.load()
self.assertEqual(im.mode, "RGB")
self.assertEqual(im.size, (128, 128))

View File

@ -3,14 +3,14 @@ from helper import unittest, PillowTestCase
from PIL import Image
# sample ppm stream
file = "Tests/images/hopper.psd"
data = open(file, "rb").read()
test_file = "Tests/images/hopper.psd"
data = open(test_file, "rb").read()
class TestImagePsd(PillowTestCase):
def test_sanity(self):
im = Image.open(file)
im = Image.open(test_file)
im.load()
self.assertEqual(im.mode, "RGB")
self.assertEqual(im.size, (128, 128))

View File

@ -41,12 +41,12 @@ class TestFileWebpMetadata(PillowTestCase):
image = Image.open(file_path)
expected_exif = image.info['exif']
buffer = BytesIO()
test_buffer = BytesIO()
image.save(buffer, "webp", exif=expected_exif)
image.save(test_buffer, "webp", exif=expected_exif)
buffer.seek(0)
webp_image = Image.open(buffer)
test_buffer.seek(0)
webp_image = Image.open(test_buffer)
webp_exif = webp_image.info.get('exif', None)
self.assertTrue(webp_exif)
@ -76,12 +76,12 @@ class TestFileWebpMetadata(PillowTestCase):
image = Image.open(file_path)
expected_icc_profile = image.info['icc_profile']
buffer = BytesIO()
test_buffer = BytesIO()
image.save(buffer, "webp", icc_profile=expected_icc_profile)
image.save(test_buffer, "webp", icc_profile=expected_icc_profile)
buffer.seek(0)
webp_image = Image.open(buffer)
test_buffer.seek(0)
webp_image = Image.open(test_buffer)
webp_icc_profile = webp_image.info.get('icc_profile', None)
@ -96,14 +96,14 @@ class TestFileWebpMetadata(PillowTestCase):
file_path = "Tests/images/flower.jpg"
image = Image.open(file_path)
image.info['exif']
self.assertTrue('exif' in image.info)
buffer = BytesIO()
test_buffer = BytesIO()
image.save(buffer, "webp")
image.save(test_buffer, "webp")
buffer.seek(0)
webp_image = Image.open(buffer)
test_buffer.seek(0)
webp_image = Image.open(test_buffer)
self.assertFalse(webp_image._getexif())

View File

@ -9,8 +9,8 @@ class TestFontBdf(PillowTestCase):
def test_sanity(self):
file = open(filename, "rb")
font = BdfFontFile.BdfFontFile(file)
test_file = open(filename, "rb")
font = BdfFontFile.BdfFontFile(test_file)
self.assertIsInstance(font, FontFile.FontFile)
self.assertEqual(len([_f for _f in font.glyph if _f]), 190)

View File

@ -17,8 +17,8 @@ class TestFontPcf(PillowTestCase):
self.skipTest("zlib support not available")
def save_font(self):
file = open(fontname, "rb")
font = PcfFontFile.PcfFontFile(file)
test_file = open(fontname, "rb")
font = PcfFontFile.PcfFontFile(test_file)
self.assertIsInstance(font, FontFile.FontFile)
self.assertEqual(len([_f for _f in font.glyph if _f]), 192)

View File

@ -1,7 +1,6 @@
from helper import unittest, PillowTestCase, hopper
from PIL import Image
import sys
class TestImage(PillowTestCase):
@ -42,8 +41,8 @@ class TestImage(PillowTestCase):
im.paste(0, (0, 0, 100, 100))
self.assertFalse(im.readonly)
file = self.tempfile("temp.ppm")
im._dump(file)
test_file = self.tempfile("temp.ppm")
im._dump(test_file)
def test_comparison_with_other_type(self):
# Arrange

View File

@ -76,10 +76,10 @@ class TestImageFilter(PillowTestCase):
# 0 1 2
# 3 4 5
# 6 7 8
min = im.filter(ImageFilter.MinFilter).getpixel((1, 1))
minimum = im.filter(ImageFilter.MinFilter).getpixel((1, 1))
med = im.filter(ImageFilter.MedianFilter).getpixel((1, 1))
max = im.filter(ImageFilter.MaxFilter).getpixel((1, 1))
return min, med, max
maximum = im.filter(ImageFilter.MaxFilter).getpixel((1, 1))
return minimum, med, maximum
self.assertEqual(rankfilter("1"), (0, 4, 8))
self.assertEqual(rankfilter("L"), (0, 4, 8))

View File

@ -18,7 +18,7 @@ class TestImageLoad(PillowTestCase):
def test_close(self):
im = Image.open("Tests/images/hopper.gif")
im.close()
self.assertRaises(ValueError, lambda: im.load())
self.assertRaises(ValueError, im.load)
self.assertRaises(ValueError, lambda: im.getpixel((0, 0)))
def test_contextmanager(self):

View File

@ -45,13 +45,13 @@ class TestImageSplit(PillowTestCase):
codecs = dir(Image.core)
if 'zip_encoder' in codecs:
file = self.tempfile("temp.png")
test_file = self.tempfile("temp.png")
else:
file = self.tempfile("temp.pcx")
test_file = self.tempfile("temp.pcx")
def split_open(mode):
hopper(mode).save(file)
im = Image.open(file)
hopper(mode).save(test_file)
im = Image.open(test_file)
return len(im.split())
self.assertEqual(split_open("1"), 1)
self.assertEqual(split_open("L"), 1)

View File

@ -1,4 +1,5 @@
from helper import unittest, PillowTestCase, hopper
import helper
from helper import unittest, PillowTestCase
from PIL.Image import (FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180,
ROTATE_270, TRANSPOSE)
@ -7,8 +8,8 @@ from PIL.Image import (FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180,
class TestImageTranspose(PillowTestCase):
hopper = {
'L': hopper('L').crop((0, 0, 121, 127)).copy(),
'RGB': hopper('RGB').crop((0, 0, 121, 127)).copy(),
'L': helper.hopper('L').crop((0, 0, 121, 127)).copy(),
'RGB': helper.hopper('RGB').crop((0, 0, 121, 127)).copy(),
}
def test_flip_left_right(self):

View File

@ -24,11 +24,11 @@ class TestImageFile(PillowTestCase):
if format in ("MSP", "XBM"):
im = im.convert("1")
file = BytesIO()
test_file = BytesIO()
im.save(file, format)
im.save(test_file, format)
data = file.getvalue()
data = test_file.getvalue()
parser = ImageFile.Parser()
parser.feed(data)

View File

@ -94,7 +94,8 @@ try:
def _render(self, font):
txt = "Hello World!"
ttf = ImageFont.truetype(font, FONT_SIZE)
w, h = ttf.getsize(txt)
ttf.getsize(txt)
img = Image.new("RGB", (256, 64), "white")
d = ImageDraw.Draw(img)
d.text((10, 10), txt, font=ttf, fill='black')

View File

@ -17,11 +17,11 @@ class TestImagePalette(PillowTestCase):
palette = ImagePalette()
map = {}
test_map = {}
for i in range(256):
map[palette.getcolor((i, i, i))] = i
test_map[palette.getcolor((i, i, i))] = i
self.assertEqual(len(map), 256)
self.assertEqual(len(test_map), 256)
self.assertRaises(ValueError, lambda: palette.getcolor((1, 2, 3)))
def test_file(self):
@ -117,7 +117,7 @@ class TestImagePalette(PillowTestCase):
palette = raw("RGB", list(range(256))*3)
# Act / Assert
self.assertRaises(ValueError, lambda: palette.tobytes())
self.assertRaises(ValueError, palette.tobytes)
self.assertRaises(ValueError, lambda: palette.getcolor((1, 2, 3)))
f = self.tempfile("temp.lut")
self.assertRaises(ValueError, lambda: palette.save(f))

View File

@ -7,10 +7,10 @@ class TestImageSequence(PillowTestCase):
def test_sanity(self):
file = self.tempfile("temp.im")
test_file = self.tempfile("temp.im")
im = hopper("RGB")
im.save(file)
im.save(test_file)
seq = ImageSequence.Iterator(im)

View File

@ -9,7 +9,6 @@ class TestImageShow(PillowTestCase):
def test_sanity(self):
dir(Image)
dir(ImageShow)
pass
if __name__ == '__main__':

View File

@ -8,7 +8,6 @@ class TestImageWin(PillowTestCase):
def test_sanity(self):
dir(ImageWin)
pass
def test_hdc(self):
# Arrange
@ -101,8 +100,8 @@ class TestImageWinDib(PillowTestCase):
# Act
# Make one the same as the using tobytes()/frombytes()
buffer = dib1.tobytes()
dib2.frombytes(buffer)
test_buffer = dib1.tobytes()
dib2.frombytes(test_buffer)
# Assert
# Confirm they're the same
@ -112,11 +111,11 @@ class TestImageWinDib(PillowTestCase):
# Arrange
im = hopper()
dib = ImageWin.Dib(im)
buffer = dib.tobytes()
test_buffer = dib.tobytes()
# Act/Assert
self.assert_warning(DeprecationWarning, lambda: dib.tostring())
self.assert_warning(DeprecationWarning, lambda: dib.fromstring(buffer))
self.assert_warning(DeprecationWarning, dib.tostring)
self.assert_warning(DeprecationWarning, lambda: dib.fromstring(test_buffer))
if __name__ == '__main__':

View File

@ -64,15 +64,15 @@ class TestModeI16(PillowTestCase):
self.assertEqual(imIn.getpixel((0, 0)), 2)
if mode == "L":
max = 255
maximum = 255
else:
max = 32767
maximum = 32767
imIn = Image.new(mode, (1, 1), 256)
self.assertEqual(imIn.getpixel((0, 0)), min(256, max))
self.assertEqual(imIn.getpixel((0, 0)), min(256, maximum))
imIn.putpixel((0, 0), 512)
self.assertEqual(imIn.getpixel((0, 0)), min(512, max))
self.assertEqual(imIn.getpixel((0, 0)), min(512, maximum))
basic("L")

View File

@ -60,7 +60,7 @@ class TestPickle(PillowTestCase):
import pickle
# Act / Assert
for file in [
for test_file in [
"Tests/images/test-card.png",
"Tests/images/zero_bb.png",
"Tests/images/zero_bb_scale2.png",
@ -69,7 +69,7 @@ class TestPickle(PillowTestCase):
"Tests/images/p_trns_single.png",
"Tests/images/pil123p.png"
]:
self.helper_pickle_string(pickle, file=file)
self.helper_pickle_string(pickle, file=test_file)
def test_pickle_l_mode(self):
# Arrange

View File

@ -6,10 +6,7 @@ import sys
import threading
import time
try:
format = sys.argv[1]
except:
format = "PNG"
test_format = sys.argv[1] if len(sys.argv) > 1 else "PNG"
im = Image.open("Tests/images/hopper.ppm")
im.load()
@ -28,7 +25,7 @@ class Worker(threading.Thread):
sys.stdout.write("x")
break
f = io.BytesIO()
im.save(f, format, optimize=1)
im.save(f, test_format, optimize=1)
data = f.getvalue()
result.append(len(data))
im = Image.open(io.BytesIO(data))