Upgrade Python syntax with pyupgrade --py36-plus and format with Black

This commit is contained in:
Hugo van Kemenade 2021-10-15 13:10:22 +03:00
parent 716a0baf74
commit 31a96b9c9b
10 changed files with 30 additions and 38 deletions

View File

@ -818,7 +818,7 @@ def test_palette_save_P(tmp_path):
# Forcing a non-straight grayscale palette. # Forcing a non-straight grayscale palette.
im = hopper("P") im = hopper("P")
palette = bytes([255 - i // 3 for i in range(768)]) palette = bytes(255 - i // 3 for i in range(768))
out = str(tmp_path / "temp.gif") out = str(tmp_path / "temp.gif")
im.save(out, palette=palette) im.save(out, palette=palette)
@ -885,7 +885,7 @@ def test_getdata():
im.putpalette(ImagePalette.ImagePalette("RGB")) im.putpalette(ImagePalette.ImagePalette("RGB"))
im.info = {"background": 0} im.info = {"background": 0}
passed_palette = bytes([255 - i // 3 for i in range(768)]) passed_palette = bytes(255 - i // 3 for i in range(768))
GifImagePlugin._FORCE_OPTIMIZE = True GifImagePlugin._FORCE_OPTIMIZE = True
try: try:

View File

@ -85,26 +85,26 @@ class TestFileJpeg:
f = "Tests/images/pil_sample_cmyk.jpg" f = "Tests/images/pil_sample_cmyk.jpg"
with Image.open(f) as im: with Image.open(f) as im:
# the source image has red pixels in the upper left corner. # the source image has red pixels in the upper left corner.
c, m, y, k = [x / 255.0 for x in im.getpixel((0, 0))] c, m, y, k = (x / 255.0 for x in im.getpixel((0, 0)))
assert c == 0.0 assert c == 0.0
assert m > 0.8 assert m > 0.8
assert y > 0.8 assert y > 0.8
assert k == 0.0 assert k == 0.0
# the opposite corner is black # the opposite corner is black
c, m, y, k = [ c, m, y, k = (
x / 255.0 for x in im.getpixel((im.size[0] - 1, im.size[1] - 1)) x / 255.0 for x in im.getpixel((im.size[0] - 1, im.size[1] - 1))
] )
assert k > 0.9 assert k > 0.9
# roundtrip, and check again # roundtrip, and check again
im = self.roundtrip(im) im = self.roundtrip(im)
c, m, y, k = [x / 255.0 for x in im.getpixel((0, 0))] c, m, y, k = (x / 255.0 for x in im.getpixel((0, 0)))
assert c == 0.0 assert c == 0.0
assert m > 0.8 assert m > 0.8
assert y > 0.8 assert y > 0.8
assert k == 0.0 assert k == 0.0
c, m, y, k = [ c, m, y, k = (
x / 255.0 for x in im.getpixel((im.size[0] - 1, im.size[1] - 1)) x / 255.0 for x in im.getpixel((im.size[0] - 1, im.size[1] - 1))
] )
assert k > 0.9 assert k > 0.9
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -188,9 +188,7 @@ class TestFileWebp:
with Image.open(out_gif) as reread: with Image.open(out_gif) as reread:
reread_value = reread.convert("RGB").getpixel((1, 1)) reread_value = reread.convert("RGB").getpixel((1, 1))
difference = sum( difference = sum(abs(original_value[i] - reread_value[i]) for i in range(0, 3))
[abs(original_value[i] - reread_value[i]) for i in range(0, 3)]
)
assert difference < 5 assert difference < 5
@skip_unless_feature("webp") @skip_unless_feature("webp")

View File

@ -900,7 +900,7 @@ class TestImageFont:
d.text((10, 10), "\U0001f469", font=font, embedded_color=True) d.text((10, 10), "\U0001f469", font=font, embedded_color=True)
assert_image_similar_tofile(im, "Tests/images/cbdt_notocoloremoji.png", 6.2) assert_image_similar_tofile(im, "Tests/images/cbdt_notocoloremoji.png", 6.2)
except IOError as e: # pragma: no cover except OSError as e: # pragma: no cover
assert str(e) in ("unimplemented feature", "unknown file format") assert str(e) in ("unimplemented feature", "unknown file format")
pytest.skip("freetype compiled without libpng or CBDT support") pytest.skip("freetype compiled without libpng or CBDT support")
@ -920,7 +920,7 @@ class TestImageFont:
assert_image_similar_tofile( assert_image_similar_tofile(
im, "Tests/images/cbdt_notocoloremoji_mask.png", 6.2 im, "Tests/images/cbdt_notocoloremoji_mask.png", 6.2
) )
except IOError as e: # pragma: no cover except OSError as e: # pragma: no cover
assert str(e) in ("unimplemented feature", "unknown file format") assert str(e) in ("unimplemented feature", "unknown file format")
pytest.skip("freetype compiled without libpng or CBDT support") pytest.skip("freetype compiled without libpng or CBDT support")
@ -938,7 +938,7 @@ class TestImageFont:
d.text((50, 50), "\uE901", font=font, embedded_color=True) d.text((50, 50), "\uE901", font=font, embedded_color=True)
assert_image_similar_tofile(im, "Tests/images/chromacheck-sbix.png", 1) assert_image_similar_tofile(im, "Tests/images/chromacheck-sbix.png", 1)
except IOError as e: # pragma: no cover except OSError as e: # pragma: no cover
assert str(e) in ("unimplemented feature", "unknown file format") assert str(e) in ("unimplemented feature", "unknown file format")
pytest.skip("freetype compiled without libpng or SBIX support") pytest.skip("freetype compiled without libpng or SBIX support")
@ -956,7 +956,7 @@ class TestImageFont:
d.text((50, 50), "\uE901", (100, 0, 0), font=font) d.text((50, 50), "\uE901", (100, 0, 0), font=font)
assert_image_similar_tofile(im, "Tests/images/chromacheck-sbix_mask.png", 1) assert_image_similar_tofile(im, "Tests/images/chromacheck-sbix_mask.png", 1)
except IOError as e: # pragma: no cover except OSError as e: # pragma: no cover
assert str(e) in ("unimplemented feature", "unknown file format") assert str(e) in ("unimplemented feature", "unknown file format")
pytest.skip("freetype compiled without libpng or SBIX support") pytest.skip("freetype compiled without libpng or SBIX support")

View File

@ -3,7 +3,7 @@ from PIL import Image, ImageMath
def pixel(im): def pixel(im):
if hasattr(im, "im"): if hasattr(im, "im"):
return "{} {}".format(im.mode, repr(im.getpixel((0, 0)))) return f"{im.mode} {repr(im.getpixel((0, 0)))}"
else: else:
if isinstance(im, int): if isinstance(im, int):
return int(im) # hack to deal with booleans return int(im) # hack to deal with booleans

View File

@ -324,7 +324,7 @@ class GifImageFile(ImageFile.ImageFile):
if not self.im and "transparency" in self.info: if not self.im and "transparency" in self.info:
self.im = Image.core.fill(self.mode, self.size, self.info["transparency"]) self.im = Image.core.fill(self.mode, self.size, self.info["transparency"])
super(GifImageFile, self).load_prepare() super().load_prepare()
def tell(self): def tell(self):
return self.__frame return self.__frame

View File

@ -918,12 +918,8 @@ class Image:
transparency = convert_transparency(matrix, transparency) transparency = convert_transparency(matrix, transparency)
elif len(mode) == 3: elif len(mode) == 3:
transparency = tuple( transparency = tuple(
[ convert_transparency(matrix[i * 4 : i * 4 + 4], transparency)
convert_transparency( for i in range(0, len(transparency))
matrix[i * 4 : i * 4 + 4], transparency
)
for i in range(0, len(transparency))
]
) )
new.info["transparency"] = transparency new.info["transparency"] = transparency
return new return new
@ -1926,7 +1922,7 @@ class Image:
message = f"Unknown resampling filter ({resample})." message = f"Unknown resampling filter ({resample})."
filters = [ filters = [
"{} ({})".format(filter[1], filter[0]) f"{filter[1]} ({filter[0]})"
for filter in ( for filter in (
(NEAREST, "Image.NEAREST"), (NEAREST, "Image.NEAREST"),
(LANCZOS, "Image.LANCZOS"), (LANCZOS, "Image.LANCZOS"),
@ -2521,7 +2517,7 @@ class Image:
message = f"Unknown resampling filter ({resample})." message = f"Unknown resampling filter ({resample})."
filters = [ filters = [
"{} ({})".format(filter[1], filter[0]) f"{filter[1]} ({filter[0]})"
for filter in ( for filter in (
(NEAREST, "Image.NEAREST"), (NEAREST, "Image.NEAREST"),
(BILINEAR, "Image.BILINEAR"), (BILINEAR, "Image.BILINEAR"),

View File

@ -174,13 +174,11 @@ class ImageDraw:
angle -= 90 angle -= 90
distance = width / 2 - 1 distance = width / 2 - 1
return tuple( return tuple(
[ p + (math.floor(p_d) if p_d > 0 else math.ceil(p_d))
p + (math.floor(p_d) if p_d > 0 else math.ceil(p_d)) for p, p_d in (
for p, p_d in ( (x, distance * math.cos(math.radians(angle))),
(x, distance * math.cos(math.radians(angle))), (y, distance * math.sin(math.radians(angle))),
(y, distance * math.sin(math.radians(angle))), )
)
]
) )
flipped = ( flipped = (
@ -979,6 +977,6 @@ def _color_diff(color1, color2):
Uses 1-norm distance to calculate difference between two values. Uses 1-norm distance to calculate difference between two values.
""" """
if isinstance(color2, tuple): if isinstance(color2, tuple):
return sum([abs(color1[i] - color2[i]) for i in range(0, len(color2))]) return sum(abs(color1[i] - color2[i]) for i in range(0, len(color2)))
else: else:
return abs(color1 - color2) return abs(color1 - color2)

View File

@ -425,7 +425,7 @@ class PdfParser:
self.f.write(b"%PDF-1.4\n") self.f.write(b"%PDF-1.4\n")
def write_comment(self, s): def write_comment(self, s):
self.f.write(f"% {s}\n".encode("utf-8")) self.f.write(f"% {s}\n".encode())
def write_catalog(self): def write_catalog(self):
self.del_root() self.del_root()
@ -862,7 +862,7 @@ class PdfParser:
if m: if m:
# filter out whitespace # filter out whitespace
hex_string = bytearray( hex_string = bytearray(
[b for b in m.group(1) if b in b"0123456789abcdefABCDEF"] b for b in m.group(1) if b in b"0123456789abcdefABCDEF"
) )
if len(hex_string) % 2 == 1: if len(hex_string) % 2 == 1:
# append a 0 if the length is not even - yes, at the end # append a 0 if the length is not even - yes, at the end

View File

@ -674,7 +674,7 @@ class ImageFileDirectory_v2(MutableMapping):
_load_dispatch[idx] = ( # noqa: F821 _load_dispatch[idx] = ( # noqa: F821
size, size,
lambda self, data, legacy_api=True: ( lambda self, data, legacy_api=True: (
self._unpack("{}{}".format(len(data) // size, fmt), data) self._unpack(f"{len(data) // size}{fmt}", data)
), ),
) )
_write_dispatch[idx] = lambda self, *values: ( # noqa: F821 _write_dispatch[idx] = lambda self, *values: ( # noqa: F821
@ -718,7 +718,7 @@ class ImageFileDirectory_v2(MutableMapping):
@_register_loader(5, 8) @_register_loader(5, 8)
def load_rational(self, data, legacy_api=True): def load_rational(self, data, legacy_api=True):
vals = self._unpack("{}L".format(len(data) // 4), data) vals = self._unpack(f"{len(data) // 4}L", data)
def combine(a, b): def combine(a, b):
return (a, b) if legacy_api else IFDRational(a, b) return (a, b) if legacy_api else IFDRational(a, b)
@ -741,7 +741,7 @@ class ImageFileDirectory_v2(MutableMapping):
@_register_loader(10, 8) @_register_loader(10, 8)
def load_signed_rational(self, data, legacy_api=True): def load_signed_rational(self, data, legacy_api=True):
vals = self._unpack("{}l".format(len(data) // 4), data) vals = self._unpack(f"{len(data) // 4}l", data)
def combine(a, b): def combine(a, b):
return (a, b) if legacy_api else IFDRational(a, b) return (a, b) if legacy_api else IFDRational(a, b)