Skip to content

feat: promote powerio to a core dependency (closes #30)#43

Merged
qian-harvard merged 1 commit into
mainfrom
feat/powerio-core-dep
Jun 14, 2026
Merged

feat: promote powerio to a core dependency (closes #30)#43
qian-harvard merged 1 commit into
mainfrom
feat/powerio-core-dep

Conversation

@qian-harvard

Copy link
Copy Markdown
Contributor

Closes #30.

powerio is the cross-server exchange substrate: the pandapower, Egret, PyPSA, and ANDES bridge tools all build on its JSON transport and otherwise degrade to an install hint. Promoting it to core is cheap and removes the "is powerio installed?" branch from docs and agent behavior.

Why it's cheap

  • abi3 wheels for five platforms (linux x86_64/aarch64, macOS x86_64/arm64, windows amd64)
  • zero required runtime dependencies
  • [mcp,matrix] resolves to mcp + numpy (already core) + scipy (already transitive via pandapower)

Changes (the issue's touch list)

  • powermcp/registry.py: add "powerio" to CORE; set extra=None on its Tool entry
  • pyproject.toml: move powerio[mcp,matrix]>=0.1.1 into [project] dependencies; drop the powerio extra and its entry in the opensource group
  • bridge tool docstrings (pandapower / Egret / PyPSA / ANDES): drop the "Requires the powerio extra" notes
  • README.md: list PowerIO in the base install + wizard pre-selection; drop it from the opensource extra list
  • tests/test_registry.py: CORE set is {pandapower, pypsa, powerio}
  • tests/test_powerio_server.py: assert extra is None

The graceful-degradation paths (_POWERIO_HINT, import guards) stay as insurance for any platform without a published wheel, per the issue's note.

Tests

89 passed, 3 skipped locally (registry, powerio server, runner, config, doctor, wizard).

🤖 Generated with Claude Code

powerio is the cross-server exchange substrate — the pandapower, Egret, PyPSA,
and ANDES bridge tools all build on its JSON transport and otherwise degrade to
an install hint. Making it core is cheap (abi3 wheels for five platforms, zero
required runtime deps, [mcp,matrix] resolving to numpy (core) + scipy
(transitive via pandapower)) and removes the "is powerio installed?" branch from
docs and agent behavior.

- registry.py: add "powerio" to CORE; set extra=None on its Tool entry
- pyproject.toml: move powerio[mcp,matrix]>=0.1.1 into core dependencies; drop
  the powerio extra and its entry in the opensource group
- bridge tool docstrings (pandapower/Egret/PyPSA/ANDES): drop "Requires the
  powerio extra" notes — it is always available now
- README: list PowerIO in the base install and the wizard pre-selection; drop it
  from the opensource extra list
- tests: CORE set is {pandapower, pypsa, powerio}; powerio registry extra is None

The graceful-degradation paths (_POWERIO_HINT, import guards) stay as insurance
for platforms without a published wheel.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@qian-harvard qian-harvard merged commit c128410 into main Jun 14, 2026
2 checks passed
@qian-harvard qian-harvard deleted the feat/powerio-core-dep branch June 14, 2026 18:39
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.

Promote powerio to a core dependency

1 participant