Energyworx Shareable Packages
Energyworx publishes four Python packages to Google Artifact Registry for customers and implementation partners. Pick the one that matches what you want to do:
| I want to⦠| Package | Python |
|---|---|---|
| Write custom rules in my IDE with type hints and unit-test them before uploading | ewx-public | 3.11 only |
| Move flows, rules and other configurations between namespaces, keep them in git, roll a release back | ewx-cli | 3.10 to 3.14 |
| Run Gherkin scenarios against a live environment, locally or from a pipeline | pytest-bdd-ewx (installs ewx-cli too) | 3.13 to 3.14 |
| Deploy the standard Energy Data Management packages (VEE, master data, billing, device control, energy communities) | standard-packages | 3.11 to 3.14 |
ewx-public is the only package that needs its own virtual environment, because it is pinned to the Python version the platform runs rules with. The other three can share one environment.
standard-packages is a paid add-on. It is published to a dedicated, access-restricted repository and access is granted only to organizations with a standard-packages agreement. See standard-packages.
Versioningβ
Package versions track the platform release: for platform release YY.MM the package version is YY.M.0, with the month not zero-padded. All four packages follow the same rule, so one platform release means one version to pin everywhere.
| Platform release | Package version |
|---|---|
| 26.02 | 26.2.0 |
26.08 (current examples) | 26.8.0 |
| 26.10 | 26.10.0 |
Pin to the version that matches the platform release your environment is on. The current release is shown in the bottom-left corner of the console and in the release notes; ask Service Desk if you are unsure. Older 2.x versions such as ewx-cli==2.11.0 are no longer published and fail with Could not find a version that satisfies the requirement.
Prerequisitesβ
The same three prerequisites apply to every package:
- Python (see the version range on this page)
- The gcloud CLI
- A Google Account with access to the
python-sharedrepository in theewx-globalArtifact Registry project. Ask Service Desk to grant it if you do not have it yet.
Authenticate once per machine:
gcloud auth application-default login
Each package page then gives the complete pip and uv installation for that package, for macOS/Linux and Windows.
Installation issuesβ
| Symptom | Cause and fix |
|---|---|
401/403 or Authorization error from pkg.dev | Your Google Account is not authenticated or has no access to the repository. Re-run gcloud auth application-default login; if it persists, ask Service Desk to check your access. With uv, re-export UV_INDEX_EWX_GLOBAL_PASSWORD, the token expires after an hour. |
No matching distribution or doesn't match any versions | pip is not looking at the Energyworx index (check --index-url) or the pinned version does not exist. Pins follow the platform release, see Versioning; 2.x versions are no longer published. |
keyring backend not found | Install keyring keyrings.google-artifactregistry-auth in the same environment before running pip install against the index. |
Activate.ps1 cannot be loaded (Windows) | Run Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned once and reopen PowerShell. |
| Plugin not loaded in pytest | Confirm pytest-bdd-ewx is installed in the active environment (pip show pytest-bdd-ewx). |
If the problem persists, contact Service Desk with the full command, the full error output, your Python version and whether you use pip or uv.