From 28ba6a38710ee49e8d7b36384c0ce815fb8b1b16 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 8 Jun 2026 11:17:37 +1000 Subject: [PATCH] Simplified code --- setup.py | 15 ++++++--------- src/PIL/PcfFontFile.py | 33 +++++++++++++++------------------ 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/setup.py b/setup.py index 6a6bffab6f9..03b6a44354d 100644 --- a/setup.py +++ b/setup.py @@ -528,15 +528,12 @@ def build_extensions(self) -> None: ) if root is None and pkg_config: - if isinstance(lib_name, str): - _dbg("Looking for `%s` using pkg-config.", lib_name) - root = pkg_config(lib_name) - else: - for lib_name2 in lib_name: - _dbg("Looking for `%s` using pkg-config.", lib_name2) - root = pkg_config(lib_name2) - if root: - break + for lib_name2 in ( + [lib_name] if isinstance(lib_name, str) else lib_name + ): + _dbg("Looking for `%s` using pkg-config.", lib_name2) + if root := pkg_config(lib_name2): + break if isinstance(root, tuple): lib_root, include_root = root diff --git a/src/PIL/PcfFontFile.py b/src/PIL/PcfFontFile.py index b923293b06a..c69f3bef9c7 100644 --- a/src/PIL/PcfFontFile.py +++ b/src/PIL/PcfFontFile.py @@ -158,32 +158,29 @@ def _load_metrics(self) -> list[tuple[int, int, int, int, int, int, int, int]]: fp, format, i16, i32 = self._getformat(PCF_METRICS) - append = metrics.append + def append( + left: int, + right: int, + width: int, + ascent: int, + descent: int, + attributes: int = 0, + ) -> None: + xsize = right - left + ysize = ascent + descent + metrics.append( + (xsize, ysize, left, right, width, ascent, descent, attributes) + ) if (format & 0xFF00) == 0x100: # "compressed" metrics for i in range(i16(fp.read(2))): - left = i8(fp.read(1)) - 128 - right = i8(fp.read(1)) - 128 - width = i8(fp.read(1)) - 128 - ascent = i8(fp.read(1)) - 128 - descent = i8(fp.read(1)) - 128 - xsize = right - left - ysize = ascent + descent - append((xsize, ysize, left, right, width, ascent, descent, 0)) + append(*(i8(fp.read(1)) - 128 for _ in range(5))) else: # "jumbo" metrics for i in range(i32(fp.read(4))): - left = i16(fp.read(2)) - right = i16(fp.read(2)) - width = i16(fp.read(2)) - ascent = i16(fp.read(2)) - descent = i16(fp.read(2)) - attributes = i16(fp.read(2)) - xsize = right - left - ysize = ascent + descent - append((xsize, ysize, left, right, width, ascent, descent, attributes)) + append(*(i16(fp.read(2)) for _ in range(6))) return metrics