lower the python floor to 3.12

Fixes #26.

`requires-python` was `>=3.14`. On anything older poetry declines to create an
environment, and it says so on stderr while leaving stdout empty. The README
tells the user to run `iex (poetry env activate)`, `iex` only sees stdout, and
PowerShell reports

    Invoke-Expression : Cannot bind argument to parameter 'Command' because it
    is null.

which points at `iex` rather than at the install that never happened. The
first reply on the issue guessed the reporter was missing `iex`, which is a
built-in alias, so the error is actively misleading.

3.14 looks stricter than anything the code needs. Every file in src/ compiles
on 3.10, no 3.13 or 3.14 only syntax appears anywhere in the tree, and the
full task set was run end to end on 3.12.10 against a live account with all
six tasks completing. The dependency graph agrees: numpy is the highest floor
in the lock at >=3.12, so 3.12 is where the real constraint sits.

Verified after the change on 3.12.10: `poetry install` creates the
environment, `poetry env activate` emits a real activation command instead of
nothing, `iex (poetry env activate)` activates in PowerShell, and every
dependency plus every module under src/ imports.

The lock is regenerated rather than left stale, since `requires-python` feeds
its content hash. The only substantive change is a typing_extensions marker
for python_version < 3.13; the package set is unchanged at 203. Regenerated
with poetry 2.4.1 to match the version that wrote the existing file.

The README gains the version bump and a short note on the failure, so anyone
who hits it while running an older Python can recognise it.
This commit is contained in:
Ethan Stoner
2026-08-26 12:18:09 -07:00
parent e2a06275f3
commit e3a15aa9cd
3 changed files with 7 additions and 4 deletions
Generated
+3 -2
View File
@@ -26,6 +26,7 @@ files = [
[package.dependencies]
idna = ">=2.8"
typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[package.extras]
trio = ["trio (>=0.32.0)"]
@@ -5043,5 +5044,5 @@ h11 = ">=0.16.0,<1"
[metadata]
lock-version = "2.1"
python-versions = ">=3.14"
content-hash = "bea6193c41f407cdf51a6cb49dbc4c9ebd63b5e4bdf8ccc3be13cf218ff6f376"
python-versions = ">=3.12"
content-hash = "fd4eaf67a2a0849a8ce66dfd1ac2be20276da3d8a1454ef9d991214912a51d61"