Commit Graph
21 Commits
Author SHA1 Message Date
dtourolleandClaude Opus 5 767e4c135c build: consolidate packaging on pyproject.toml and correct the dependency set
The project carried three sets of packaging metadata — pyproject.toml
[project], setup.cfg [options] and setup.py kwargs — declaring different
dependencies. pyproject.toml wins under any modern backend, so the wheel
was correct, but the other two said "Pillow, numpy" and reading either
gave the wrong answer about what the library needs.

Reduce setup.cfg to its [flake8] section and setup.py to a setup() shim,
each pointing at pyproject.toml.

Correct the authoritative list while consolidating:

- flask was a runtime dependency but is imported only by the fixture HTTP
  server in tests. Every user was installing Flask, Jinja2, Werkzeug,
  click, itsdangerous and blinker for nothing.
- ebooklib was a runtime dependency and is never imported by the library;
  epub_reader.py uses zipfile + xml.etree directly. Only the tests use it,
  to build EPUB fixtures.
- requests was declared required but concrete/image.py imports it lazily
  and degrades gracefully when absent, so it belongs in an extra.
- requires-python said >=3.6, which cannot be true: the package uses
  dataclasses and `from __future__ import annotations`, both 3.7+, and CI
  tests 3.10/3.12/3.13.

Runtime install drops from 7 direct dependencies to 4. Adds test,
remote-images and dev extras, and a CI step that installs into an empty
venv with only the runtime deps and imports every subpackage — this class
of defect is only caught by installing what you ship.

Verified: runtime-only install imports all subpackages; `.[test]` runs the
full suite, 853 passed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 12:30:08 +02:00
dtourolle 73700baf87 CI fix
Python CI / test (3.10) (push) Successful in 7m50s
Python CI / test (3.12) (push) Successful in 8m34s
Python CI / test (3.13) (push) Successful in 8m9s
2025-11-09 09:16:10 +01:00
dtourolle 22d3505256 CI fix
Python CI / test (push) Successful in 46s
2025-06-07 19:38:29 +02:00
dtourolle 1becc146ae CI fix
Python CI / test (push) Failing after 49s
2025-06-07 19:30:50 +02:00
dtourolle 2c28cfb7e8 CI fix
Python CI / test (push) Failing after 47s
2025-06-07 19:27:25 +02:00
dtourolle bd49fe17d1 ci fix
Python CI / test (push) Failing after 45s
2025-06-07 19:21:32 +02:00
dtourolle 77b98e352e ci fix
Python CI / test (push) Failing after 45s
2025-06-07 19:19:12 +02:00
dtourolle 2b1170cac7 put badges in different branch
Python CI / test (push) Successful in 49s
2025-06-07 19:10:12 +02:00
dtourolle 8ebcca0d4a ci fix
Python CI / test (push) Successful in 47s
2025-06-07 18:32:59 +02:00
dtourolle 98cbe296a5 coverage improvmeents
Python CI / test (push) Failing after 41s
2025-06-07 18:01:31 +02:00
dtourolle f7c2933e54 yet another attempt
Python CI / test (push) Successful in 38s
2025-06-07 16:59:42 +02:00
dtourolle 099a1c9d5f different CI approach
Python CI / test (push) Failing after 35s
2025-06-07 16:55:03 +02:00
dtourolle a4accf4070 CI fix
Python CI / test (push) Successful in 38s
2025-06-07 16:28:03 +02:00
dtourolle 57c927efc5 ci test
Python CI / test (push) Successful in 38s
2025-06-07 16:15:33 +02:00
dtourolle 968661b3ce ci changes
Python CI / test (push) Failing after 39s
2025-06-07 15:55:46 +02:00
dtourolle 835ae7cad1 automation of badges
Python CI / test (push) Successful in 41s
2025-06-07 15:50:48 +02:00
dtourolle 0e10f51bff fix ci yml
Python CI / test (push) Successful in 1m14s
2025-06-07 15:42:37 +02:00
dtourolle 624f92b8f9 added doc and text coverage 2025-06-07 15:39:18 +02:00
dtourolle 81d85386c5 git ci test
Python CI / test (push) Failing after 1m23s
2025-06-06 21:17:46 +02:00
dtourolle 91b4dccc07 fix for ci
Python CI / test (push) Failing after 15m30s
2025-06-06 20:59:42 +02:00
dtourolle c0c366e9f4 Additional changes.
Python CI / test (push) Failing after 1m35s
2025-06-06 20:54:33 +02:00