Skip to content

Declare runtime dependencies so the CLI installs with pipx - #117

Merged
matthewhorridge merged 1 commit into
mainfrom
feat/pipx-installable
Jul 9, 2026
Merged

Declare runtime dependencies so the CLI installs with pipx#117
matthewhorridge merged 1 commit into
mainfrom
feat/pipx-installable

Conversation

@matthewhorridge

Copy link
Copy Markdown
Contributor

Summary

  • pyproject.toml declared no dependencies — they lived only in requirements.txt, which pipx (and plain pip install . into a fresh venv) never reads, so the installed harmonize entry point crashed on import
  • Declare the runtime set verified against actual imports in src: pandas, pint, pyyaml, fastapi, uvicorn, pydantic
  • Use >= bounds rather than == pins: exact pins stay in requirements.txt for the dev environment, while == pins in package metadata force failing source builds on Pythons newer than the pinned wheels (e.g. pydantic-core 2.27.2 has no CPython 3.14 wheels)
  • Document pipx install git+https://github.com/bmir-radx/harmonization-framework.git in the README installation section

Test plan

  • pipx install <repo> on Python 3.14.6: install succeeds, harmonize runs a YAML rule end to end with correct output, harmonization-sidecar starts and /health/ responds OK
  • pytest tests — 199 passed

🤖 Generated with Claude Code

pyproject.toml declared no dependencies; they lived only in
requirements.txt, which pipx (and plain 'pip install .' into a fresh
venv) never reads, so the installed 'harmonize' entry point crashed on
import. Declare the runtime set (pandas, pint, pyyaml, fastapi,
uvicorn, pydantic) as >= bounds: exact pins stay in requirements.txt
for the dev environment, while == pins in package metadata would force
source builds on Pythons newer than the pinned wheels (pydantic-core
2.27.2 has no 3.14 wheels).

Verified with pipx on Python 3.14: harmonize runs a YAML rule end to
end and the sidecar /health/ endpoint responds. Document the pipx
install in the README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@matthewhorridge
matthewhorridge merged commit 550d14f into main Jul 9, 2026
1 check passed
@matthewhorridge
matthewhorridge deleted the feat/pipx-installable branch July 9, 2026 17:30
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