style: apply ruff lint fixes and formatting

This commit is contained in:
AJ
2026-07-01 23:43:39 -04:00
parent 8124150e34
commit 157dad9192
+21 -19
View File
@@ -10,13 +10,11 @@ Requirements:
pip install pillow # for .ico pip install pillow # for .ico
iconutil # built into macOS; for .icns iconutil # built into macOS; for .icns
""" """
from __future__ import annotations from __future__ import annotations
import os
import platform
import shutil import shutil
import subprocess import subprocess
import sys
import tempfile import tempfile
from pathlib import Path from pathlib import Path
@@ -32,7 +30,8 @@ def build_ico():
print("Pillow not installed — skipping .ico generation (pip install pillow)") print("Pillow not installed — skipping .ico generation (pip install pillow)")
return return
import io, struct import io
import struct
sizes = [16, 24, 32, 48, 64, 128, 256] sizes = [16, 24, 32, 48, 64, 128, 256]
images: list[tuple[int, object]] = [] images: list[tuple[int, object]] = []
@@ -58,18 +57,21 @@ def build_ico():
# biHeight is doubled: top half = XOR mask (color), bottom = AND mask # biHeight is doubled: top half = XOR mask (color), bottom = AND mask
hdr = struct.pack( hdr = struct.pack(
"<IiiHHIIiiII", "<IiiHHIIiiII",
40, # biSize 40, # biSize
w, w,
h * 2, # biHeight (doubled per ICO convention) h * 2, # biHeight (doubled per ICO convention)
1, # biPlanes 1, # biPlanes
32, # biBitCount 32, # biBitCount
0, # biCompression (BI_RGB) 0, # biCompression (BI_RGB)
0, # biSizeImage (0 ok for BI_RGB) 0, # biSizeImage (0 ok for BI_RGB)
0, 0, 0, 0, 0,
0,
0,
0,
) )
pix = img.load() pix = img.load()
rows = bytearray() rows = bytearray()
for y in range(h - 1, -1, -1): # bottom-up for y in range(h - 1, -1, -1): # bottom-up
for x in range(w): for x in range(w):
r, g, b, a = pix[x, y] r, g, b, a = pix[x, y]
rows += bytes([b, g, r, a]) rows += bytes([b, g, r, a])
@@ -88,14 +90,14 @@ def build_ico():
blobs.append((s, bmp_dib(img) if s < 256 else png_bytes(img))) blobs.append((s, bmp_dib(img) if s < 256 else png_bytes(img)))
n = len(blobs) n = len(blobs)
dir_offset = 6 + n * 16 # ICONDIR (6) + n × ICONDIRENTRY (16) dir_offset = 6 + n * 16 # ICONDIR (6) + n × ICONDIRENTRY (16)
out = bytearray() out = bytearray()
out += struct.pack("<HHH", 0, 1, n) # ICONDIR out += struct.pack("<HHH", 0, 1, n) # ICONDIR
cur = dir_offset cur = dir_offset
for s, blob in blobs: for s, blob in blobs:
w = h = s % 256 # 256 is stored as 0 in the byte field w = h = s % 256 # 256 is stored as 0 in the byte field
out += struct.pack("<BBBBHHII", w, h, 0, 0, 1, 32, len(blob), cur) out += struct.pack("<BBBBHHII", w, h, 0, 0, 1, 32, len(blob), cur)
cur += len(blob) cur += len(blob)
@@ -115,15 +117,15 @@ def build_icns():
iconset = Path(tempfile.mkdtemp()) / "app.iconset" iconset = Path(tempfile.mkdtemp()) / "app.iconset"
iconset.mkdir() iconset.mkdir()
mapping = { mapping = {
"icon_16x16.png": "icon-16.png", "icon_16x16.png": "icon-16.png",
"icon_16x16@2x.png": "icon-32.png", "icon_16x16@2x.png": "icon-32.png",
"icon_32x32.png": "icon-32.png", "icon_32x32.png": "icon-32.png",
"icon_32x32@2x.png": "icon-64.png", "icon_32x32@2x.png": "icon-64.png",
"icon_128x128.png": "icon-128.png", "icon_128x128.png": "icon-128.png",
"icon_128x128@2x.png": "icon-256.png", "icon_128x128@2x.png": "icon-256.png",
"icon_256x256.png": "icon-256.png", "icon_256x256.png": "icon-256.png",
"icon_256x256@2x.png": "icon-512.png", "icon_256x256@2x.png": "icon-512.png",
"icon_512x512.png": "icon-512.png", "icon_512x512.png": "icon-512.png",
"icon_512x512@2x.png": "icon-1024.png", "icon_512x512@2x.png": "icon-1024.png",
} }
for dst_name, src_name in mapping.items(): for dst_name, src_name in mapping.items():