From 19fb8a15b1260809786eaaf7f1430052deb22119 Mon Sep 17 00:00:00 2001 From: Thor Whalen <1906276+thorwhalen@users.noreply.github.com> Date: Mon, 3 Aug 2026 23:54:45 +0100 Subject: [PATCH 1/3] test: widen testpaths so CI actually runs the package doctests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit wads CI runs `pytest --doctest-modules` with no path argument, so collection is driven entirely by `testpaths`. With `testpaths = ["tests"]` the package's own doctests were never collected — CI reported green while doctesting nothing in `flaskstream2py/`. Adding the package dir takes collection from 1 item to 2: the `FlaskRequestReader` class doctest is now actually executed (verified locally, passes). Claude-Session: https://claude.ai/code/session_01VipiLaG4xy7WctqY9w2475 --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 0419a30..32f216b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,6 +76,7 @@ convention = "google" minversion = "6.0" testpaths = [ "tests", + "flaskstream2py", ] doctest_optionflags = [ "NORMALIZE_WHITESPACE", From 75d553997fb747f3634fbc56157df71fe5911341 Mon Sep 17 00:00:00 2001 From: Thor Whalen <1906276+thorwhalen@users.noreply.github.com> Date: Mon, 3 Aug 2026 23:55:59 +0100 Subject: [PATCH 2/3] chore: modernize [project] packaging metadata - license: deprecated `[project.license] text = ...` table -> PEP 639 SPDX string `license = "Apache-2.0"` (matches the Apache 2.0 LICENSE file), plus `license-files = ["LICENSE"]` so the licence ships in the wheel. No `License :: OSI Approved :: ...` classifier is added: hatchling >= 1.27 rejects a licence classifier coexisting with an SPDX expression. - classifiers: added an accurate set. Development Status 3 - Alpha (README calls this a WIP library, version 0.1.6); Python 3.10-3.12 to match `requires-python` and the CI matrix (3.13 is not tested, so it is not claimed); Framework :: Flask and Topic :: Internet :: WWW/HTTP reflect what the package actually is. - keywords: derived from the README and the public API (FlaskRequestReader, a stream2py SourceReader over an incoming Flask request body). - project.urls: added Documentation (the live GitHub Pages site), Repository and Issues alongside the existing Homepage. description, requires-python and readme were already present and accurate. Validated: all 11 classifiers checked against trove-classifiers, sdist+wheel build clean, `twine check` passes both. Claude-Session: https://claude.ai/code/session_01VipiLaG4xy7WctqY9w2475 --- pyproject.toml | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 32f216b..9a92832 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,18 +10,43 @@ version = "0.1.6" description = "stream2py interface to flask" readme = "README.md" requires-python = ">=3.10" -keywords = [] +license = "Apache-2.0" +license-files = [ + "LICENSE", +] +keywords = [ + "flask", + "stream2py", + "streaming", + "http", + "source-reader", + "data-streams", + "edge-device", +] authors = [] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Framework :: Flask", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Software Development :: Libraries :: Python Modules", +] dependencies = [ "flask", "stream2py", ] -[project.license] -text = "Apache-2.0" - [project.urls] Homepage = "https://github.com/i2mint/flaskstream2py" +Documentation = "https://i2mint.github.io/flaskstream2py/" +Repository = "https://github.com/i2mint/flaskstream2py" +Issues = "https://github.com/i2mint/flaskstream2py/issues" [project.optional-dependencies] dev = [ From 981d664a13fd1c529d87729c92437f519db9784e Mon Sep 17 00:00:00 2001 From: Thor Whalen <1906276+thorwhalen@users.noreply.github.com> Date: Mon, 3 Aug 2026 23:56:17 +0100 Subject: [PATCH 3/3] chore: add standard .editorconfig Same file the wads templates ship and the rest of the fleet uses (copied verbatim from a healthy sibling repo). No existing files are reformatted. Claude-Session: https://claude.ai/code/session_01VipiLaG4xy7WctqY9w2475 --- .editorconfig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..88bf4d0 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{py,toml,yml,yaml}] +indent_style = space +indent_size = 4 + +[*.md] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab