feat: promote powerio to a core dependency (closes #30)#43
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
[mcp,matrix]resolves tomcp+numpy(already core) +scipy(already transitive via pandapower)Changes (the issue's touch list)
powermcp/registry.py: add"powerio"toCORE; setextra=Noneon itsToolentrypyproject.toml: movepowerio[mcp,matrix]>=0.1.1into[project] dependencies; drop thepowerioextra and its entry in theopensourcegroupREADME.md: list PowerIO in the base install + wizard pre-selection; drop it from the opensource extra listtests/test_registry.py:COREset is{pandapower, pypsa, powerio}tests/test_powerio_server.py: assertextra is NoneThe 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