Skip to content

Make requirements install on Python 3.13 and 3.14 - #131

Merged
vl3c merged 2 commits into
mainfrom
claude/kokoro-python-313-install
Oct 30, 2026
Merged

vl3c merged 2 commits into
mainfrom
claude/kokoro-python-313-install

Conversation

@vl3c

@vl3c vl3c commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Requested by V

Summary

pip install -r requirements.txt fails on Python 3.13 and 3.14, because kokoro and misaki declare Requires-Python <3.13. No newer release lifts that cap, so a machine with only a recent Python cannot install MatHud at all.

  • requirements.txt and pyproject.toml: install kokoro only below Python 3.13, so the install succeeds. The app already starts without it.
  • requirements-tts.txt and README.md: add a separate install step that keeps text-to-speech working on 3.13 and 3.14. It pins spaCy to 3.8.18 because 3.8.11 fails on 3.14 with unable to infer type for attribute "REGEX", and an unpinned install backtracks into a build failure.
  • static/app_manager.py, static/routes.py, static/client/tts_controller.py: the "not available" messages suggested pip install kokoro, which fails on 3.13+, so they now point at the README and also cover a failed load.

Python 3.11 and 3.12 installs are unchanged. CI is unaffected: it installs requirements-ci.txt, which has no kokoro, and still runs on 3.11.

Testing

On Windows with Python 3.14.10:

  • Fresh venv: pip install -r requirements.txt succeeds and skips kokoro. The README command (pip install --ignore-requires-python -r requirements-tts.txt -c requirements.txt) then installs it, and TTSManager.generate_speech produced real audio.
  • Server tests: 3 failed, 4247 passed. The same 3 golden value tests fail on unmodified main (test_compiled_expression_golden.py x2, test_expression_function_tables.py).
  • Client tests: 4059 run, 0 failures.
  • Scenario replay: 94 of 95. FN-10 also fails on unmodified main.
  • ruff check . passes. mypy reports the same 2 errors as main (RLIMIT_AS and setrlimit in static/sympy_cas.py).

On Python 3.13.17 both install steps pass a binary-only dry run.

The python_version < "3.13" branch was not installed for real, since this machine no longer has an older Python. Python 3.15 is out of scope: numpy 2.4.6 and curated-tokenizers have no 3.15 wheels.

🤖 Generated with Claude Code

kokoro and misaki declare Requires-Python <3.13, so pip install -r
requirements.txt fails on any machine with only a newer Python. Skip kokoro
there with an environment marker, document the extra install step that
keeps text-to-speech working, and point the "not available" messages at it.
@vl3c vl3c self-assigned this Oct 30, 2026
Keep the versions in one file, install them against the requirements.txt
pins, and scope the README to Python 3.13 and 3.14: numpy 2.4.6 and
curated-tokenizers have no 3.15 wheels. The 503 message now also covers a
Kokoro that is installed but failed to load.
@vl3c vl3c changed the title Make requirements install on Python 3.13 and newer Make requirements install on Python 3.13 and 3.14 Oct 30, 2026
@vl3c
vl3c enabled auto-merge October 30, 2026 22:28
@vl3c
vl3c merged commit e48d593 into main Oct 30, 2026
5 checks passed
@vl3c
vl3c deleted the claude/kokoro-python-313-install branch October 30, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant