From 11f00faf7495765d8348d77b0c06838cd4d45d92 Mon Sep 17 00:00:00 2001 From: AJ Slater Date: Fri, 6 Nov 2026 17:13:28 -0800 Subject: [PATCH 1/3] chore(deps): comicbox 5.6.0 comicbox 5.6.0 changes only the filename format: filenames now read the month, day, volume count and publisher, renames write the full date and volume count but never the publisher, and `(Digital)` / `(DC)` alone no longer parse as the title. comicfn2dict 1.1 and comicbox-pdffile 1.1.2 come along. codex needs no code change. None of the new filename keys is a new top-level comicbox field, so the derived delete_keys list is unchanged and `remainders` is still dropped before a rename. The rename preview goes through predict_filename, so it shows the new names as is. Checked on metadata-less CBZs through COMICBOX_CONFIG: publisher, full date and original_format are imported, and the predicted names match comicbox's new format. Co-Authored-By: Claude Opus 5.5 --- NEWS.md | 7 +++++++ pyproject.toml | 2 +- uv.lock | 14 +++++++------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/NEWS.md b/NEWS.md index b7ee8acc8..ab5b8f4f7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -12,8 +12,15 @@ border-radius: 128px; - New `Add Library` server folder picker component. +### ♻️ Changed + +- Renamed files carry the full date, like `(1950-11-01)`, and the volume count + (comicbox 5.6.0). + ### 🐛 Fixed +- Filenames supply the month, day, volume count and publisher; `(Digital)` or + `(DC)` alone no longer read as the title (comicbox 5.6.0). - A new visitor's first page load no longer sometimes fails. - Unchecking every default metadata format no longer breaks online tagging. - Unreadable folders in Add Library say "Permission denied" instead of "Server diff --git a/pyproject.toml b/pyproject.toml index a14a7bbca..3eb905688 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ dependencies = [ "asgiref~=3.12", "bidict~=0.23", "channels~=4.2", - "comicbox[pdf]~=5.5.1", + "comicbox[pdf]~=5.6.0", "cryptography>=48.0.0", "dateparser~=1.2", "django-allauth[socialaccount]~=65.13", diff --git a/uv.lock b/uv.lock index 0094fd1f2..019205863 100644 --- a/uv.lock +++ b/uv.lock @@ -793,7 +793,7 @@ requires-dist = [ { name = "asgiref", specifier = "~=3.12" }, { name = "bidict", specifier = "~=0.23" }, { name = "channels", specifier = "~=4.2" }, - { name = "comicbox", extras = ["pdf"], specifier = "~=5.5.1" }, + { name = "comicbox", extras = ["pdf"], specifier = "~=5.6.0" }, { name = "cryptography", specifier = ">=48.0.0" }, { name = "dateparser", specifier = "~=1.2" }, { name = "django", specifier = "~=6.0" }, @@ -875,7 +875,7 @@ wheels = [ [[package]] name = "comicbox" -version = "5.5.1" +version = "5.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "bidict" }, @@ -908,9 +908,9 @@ dependencies = [ { name = "xmltodict" }, { name = "zipremove" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fa/96/6eab6877560a587c7e2e40323f003d70d1f4ab0348d9836935c64407a4d2/comicbox-5.5.1.tar.gz", hash = "sha256:c20a985f602a95cdce08d4f55e445782016ab49f653a148356f32fa5e1d83431", size = 1366134, upload-time = "2026-11-02T01:29:17.432Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/05/3afb84dfa5f496ea2ae81ea7be7a7d65ac5a7475c4df996143e6aa0eda32/comicbox-5.6.0.tar.gz", hash = "sha256:e9cc46ca4fa2245919ee46b1c12d33bf6654308a70955b6ba2d9cdf04084f8b7", size = 1389160, upload-time = "2026-11-07T01:04:04.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/37/e0/8e042b9a1c23127540258783ab6448a1917ea052460e01d2b3555fd8c244/comicbox-5.5.1-py3-none-any.whl", hash = "sha256:10502eace85ed27021b5a6e7882b652e75c4601374d563a41ee216a219731a5d", size = 491934, upload-time = "2026-11-02T01:29:15.727Z" }, + { url = "https://files.pythonhosted.org/packages/28/98/5ab4436180015498dcefa3fd2340f419fb5b9b0d107a41fb4ea26bd51c01/comicbox-5.6.0-py3-none-any.whl", hash = "sha256:a4b4bc3d7e98d9b3dd81d61884e2883e58fe7584a85f08598019be7a0d742350", size = 492328, upload-time = "2026-11-07T01:04:02.207Z" }, ] [package.optional-dependencies] @@ -934,11 +934,11 @@ wheels = [ [[package]] name = "comicfn2dict" -version = "1.0.2" +version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/df/ccc9199723ce101b6b13de2d140ed273db0deef34db82bf9c2c48238a476/comicfn2dict-1.0.2.tar.gz", hash = "sha256:f6e66a5d3956ea8206dd58b59e5adf5fe324189d5ab2bd3ad3e1a5908b178aa3", size = 214008, upload-time = "2026-11-02T00:52:05.632Z" } +sdist = { url = "https://files.pythonhosted.org/packages/34/98/99250233f3a9fc8147b84302acfe072940c4ce7df50ade4b9dcf0e0eb870/comicfn2dict-1.1.0.tar.gz", hash = "sha256:bf717ba336dbb39b7c352601136afb4db0596a31962e949dc9fe0d78e7b49dec", size = 250346, upload-time = "2026-11-07T00:17:21.186Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/67/9346b527ba42c9b5e9d951f8e84b7ddc447adec05827daa740cf80c9299a/comicfn2dict-1.0.2-py3-none-any.whl", hash = "sha256:2566332d9ca3de003f5dffc18ef04aa5c0a5255b8f619931ce52a873e263d323", size = 14913, upload-time = "2026-11-02T00:52:04.673Z" }, + { url = "https://files.pythonhosted.org/packages/cc/55/5b49ca980d5f77541d8e87cb2a620c2b5bd89e6365ad273d4467bf50f0c3/comicfn2dict-1.1.0-py3-none-any.whl", hash = "sha256:5a0524bf6d8e2b7a75d5cf89349c65f5a503390d53aa6ca0f928038f5de6f00d", size = 19554, upload-time = "2026-11-07T00:17:19.98Z" }, ] [[package]] From b506c612ba0dd69ca96b3f15af25e90f0e8f6474 Mon Sep 17 00:00:00 2001 From: AJ Slater Date: Fri, 6 Nov 2026 17:17:04 -0800 Subject: [PATCH 2/3] chore(ty): rename unresolved-import ignores to import-not-found ty 0.0.99, already locked on develop, renamed the rule. The old name now raises renamed-rule-in-ignore-comment, which fails `make ty`. Co-Authored-By: Claude Opus 5.5 --- codex/settings/__init__.py | 2 +- tests/opds_schema.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/codex/settings/__init__.py b/codex/settings/__init__.py index 936f39bad..c3e675338 100644 --- a/codex/settings/__init__.py +++ b/codex/settings/__init__.py @@ -20,7 +20,7 @@ from comicbox.config import get_config from comicbox.config.settings import ComicboxSettings from comicbox.formats.comicbox.schema.yaml import ComicboxYamlSubSchema -from django.utils.csp import ( # pyright: ignore[reportMissingImports], # ty: ignore[unresolved-import] +from django.utils.csp import ( # pyright: ignore[reportMissingImports], # ty: ignore[import-not-found] CSP, ) from loguru import logger diff --git a/tests/opds_schema.py b/tests/opds_schema.py index a01e3dcac..2b142ac58 100644 --- a/tests/opds_schema.py +++ b/tests/opds_schema.py @@ -28,7 +28,7 @@ import rnc2rng from jsonschema import Draft7Validator from lxml import ( - etree, # ty: ignore[unresolved-import] # pyright: ignore[reportAttributeAccessIssue] + etree, # ty: ignore[import-not-found] # pyright: ignore[reportAttributeAccessIssue] ) from referencing import Registry, Resource from referencing.jsonschema import DRAFT7 From 32adc4ff524218a953600fd9d4a9a49bc4e32e36 Mon Sep 17 00:00:00 2001 From: AJ Slater Date: Fri, 6 Nov 2026 17:47:25 -0800 Subject: [PATCH 3/3] comicbox 5.6.1. --- pyproject.toml | 2 +- uv.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3eb905688..a4a60e5b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ dependencies = [ "asgiref~=3.12", "bidict~=0.23", "channels~=4.2", - "comicbox[pdf]~=5.6.0", + "comicbox[pdf]~=5.6.1", "cryptography>=48.0.0", "dateparser~=1.2", "django-allauth[socialaccount]~=65.13", diff --git a/uv.lock b/uv.lock index 019205863..f24eeec32 100644 --- a/uv.lock +++ b/uv.lock @@ -793,7 +793,7 @@ requires-dist = [ { name = "asgiref", specifier = "~=3.12" }, { name = "bidict", specifier = "~=0.23" }, { name = "channels", specifier = "~=4.2" }, - { name = "comicbox", extras = ["pdf"], specifier = "~=5.6.0" }, + { name = "comicbox", extras = ["pdf"], specifier = "~=5.6.1" }, { name = "cryptography", specifier = ">=48.0.0" }, { name = "dateparser", specifier = "~=1.2" }, { name = "django", specifier = "~=6.0" }, @@ -875,7 +875,7 @@ wheels = [ [[package]] name = "comicbox" -version = "5.6.0" +version = "5.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "bidict" }, @@ -908,9 +908,9 @@ dependencies = [ { name = "xmltodict" }, { name = "zipremove" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/05/3afb84dfa5f496ea2ae81ea7be7a7d65ac5a7475c4df996143e6aa0eda32/comicbox-5.6.0.tar.gz", hash = "sha256:e9cc46ca4fa2245919ee46b1c12d33bf6654308a70955b6ba2d9cdf04084f8b7", size = 1389160, upload-time = "2026-11-07T01:04:04.219Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/85/50a46d19caccf5fd2d46b92d3f03ef17581d42d465136834ba0f443dece0/comicbox-5.6.1.tar.gz", hash = "sha256:d18269e6ab6997aaafb8e5c0e77c408ab85c2d46dfae0a5f18a857b3d0a981b5", size = 1389243, upload-time = "2026-11-07T01:46:11.047Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/28/98/5ab4436180015498dcefa3fd2340f419fb5b9b0d107a41fb4ea26bd51c01/comicbox-5.6.0-py3-none-any.whl", hash = "sha256:a4b4bc3d7e98d9b3dd81d61884e2883e58fe7584a85f08598019be7a0d742350", size = 492328, upload-time = "2026-11-07T01:04:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/f0/0a/760450121ff5abda26640b50cd6fdca9ce6be7ea16250d3ccc5805a9f6b9/comicbox-5.6.1-py3-none-any.whl", hash = "sha256:58df6a4ffa7ff2a94a68bfaa45ec1e5c4e3d520ed1e87befebd1d64d4358fb45", size = 492331, upload-time = "2026-11-07T01:46:09.346Z" }, ] [package.optional-dependencies] @@ -934,11 +934,11 @@ wheels = [ [[package]] name = "comicfn2dict" -version = "1.1.0" +version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/34/98/99250233f3a9fc8147b84302acfe072940c4ce7df50ade4b9dcf0e0eb870/comicfn2dict-1.1.0.tar.gz", hash = "sha256:bf717ba336dbb39b7c352601136afb4db0596a31962e949dc9fe0d78e7b49dec", size = 250346, upload-time = "2026-11-07T00:17:21.186Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/43/ae305040f9796c7151a2e99cfa25dade3bd8e4a16904dc3de7ce45c60349/comicfn2dict-1.1.1.tar.gz", hash = "sha256:13d495d9578e48fdd8e9cd9d7d2873caa52a92cefe63d48428a78cb090733f53", size = 251402, upload-time = "2026-11-07T01:32:51.794Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/55/5b49ca980d5f77541d8e87cb2a620c2b5bd89e6365ad273d4467bf50f0c3/comicfn2dict-1.1.0-py3-none-any.whl", hash = "sha256:5a0524bf6d8e2b7a75d5cf89349c65f5a503390d53aa6ca0f928038f5de6f00d", size = 19554, upload-time = "2026-11-07T00:17:19.98Z" }, + { url = "https://files.pythonhosted.org/packages/41/0a/89342a360afe8b869544cbcc453b4cdf64fec4f8566ed0d34eab23423ec3/comicfn2dict-1.1.1-py3-none-any.whl", hash = "sha256:51d759436ee0140bfdca46b10e10af83b00e5f06bb6f17593f68a59f12d893a0", size = 19654, upload-time = "2026-11-07T01:32:50.678Z" }, ] [[package]]