eai-configgy
Opinionated YAML + environment configuration loader for Extensibility AI services.
Load a committed config.yaml with EnvYAML interpolation, then select the block for CONFIG_ENV (default, staging, or prod).
Install
uv add eai-configgy
Or with pip:
pip install eai-configgy
Usage
from eai_configgy import Config, ConfigEnv
cfg = Config(section="myapp", env=ConfigEnv.DEFAULT)
Development
Use uv for dependency management:
uv sync --extra dev
uv run pytest
Publish
Tagged releases (v*) publish to public PyPI via .github/workflows/publish-pypi.yml (Trusted Publishing, GitHub Environment pypi) and also to Artifact Registry via .github/workflows/deploy.yml for internal indexes.
Repository: ExtensibilityAI/eai-configgy
First public release (maintainers)
Do these after this repo’s rename PR is on main, before tagging v0.3.0. A pending publisher does not reserve the name until the first successful upload.
-
Rename the GitHub repo to
eai-configgy(Settings → General → Repository name). Keep GitHub’s redirect. Locally:git remote set-url origin git@github.com:ExtensibilityAI/eai-configgy.git. -
Create GitHub Environment
pypi: required reviewers; deployment branches/tags restricted tov*. No secrets (OIDC). Optional: Environmenttestpypifor dry-runs. -
PyPI account: register at https://pypi.org (2FA required). Prefer a PyPI organization (e.g.
extensibility-ai) so the project is not personal-owned. Confirm https://pypi.org/project/eai-configgy/ is unused (404). -
Pending Trusted Publisher (PyPI Account → Publishing, not a project page):
Field Value PyPI project name eai-configgyOwner ExtensibilityAIRepository eai-configgyWorkflow name publish-pypi.ymlEnvironment pypi -
GAR WIF after the GitHub rename: set
github.repo: ExtensibilityAI/eai-configgyininfrastructure-core-gcp/pulumi/python_package/configgy/Pulumi.{staging,prod}.yaml, thenpulumi upthose stacks (only with explicit approval). -
Tag and approve:
git tag v0.3.0 && git push origin v0.3.0. Approve thepypienvironment. Confirm https://pypi.org/project/eai-configgy/0.3.0/. -
Optional: make the GitHub repository public after LICENSE and SECURITY.md are on
main.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eai_configgy-0.3.0.tar.gz.
File metadata
- Download URL: eai_configgy-0.3.0.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a8c686af701849a95879c6c083f3b843fea8ebc0d539034481aced1126f26eb
|
|
| MD5 |
0b60b87db4b4d9637c38934c901972d4
|
|
| BLAKE2b-256 |
2f3f9c66eb4232f08714b78a6ecc65a9809d1ec709eee0d217d8ccb3d0ab7938
|
Provenance
The following attestation bundles were made for eai_configgy-0.3.0.tar.gz:
Publisher:
publish-pypi.yml on ExtensibilityAI/eai-configgy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eai_configgy-0.3.0.tar.gz -
Subject digest:
4a8c686af701849a95879c6c083f3b843fea8ebc0d539034481aced1126f26eb - Sigstore transparency entry: 2716718327
- Sigstore integration time:
-
Permalink:
ExtensibilityAI/eai-configgy@23c60c718121bddfc8e7ab04b3f503f9b11a0db7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ExtensibilityAI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@23c60c718121bddfc8e7ab04b3f503f9b11a0db7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file eai_configgy-0.3.0-py3-none-any.whl.
File metadata
- Download URL: eai_configgy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec9943b7cf5794062d7a0636f0c9801c2c9401599dbeb209518aa71f4747af0f
|
|
| MD5 |
62786289b681c3a2fd97b46fa80a8ab1
|
|
| BLAKE2b-256 |
f4c5a8b88883bf862666891d13ea771ded82680a4cfb2d904ab431de63a3416b
|
Provenance
The following attestation bundles were made for eai_configgy-0.3.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on ExtensibilityAI/eai-configgy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eai_configgy-0.3.0-py3-none-any.whl -
Subject digest:
ec9943b7cf5794062d7a0636f0c9801c2c9401599dbeb209518aa71f4747af0f - Sigstore transparency entry: 2716718838
- Sigstore integration time:
-
Permalink:
ExtensibilityAI/eai-configgy@23c60c718121bddfc8e7ab04b3f503f9b11a0db7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ExtensibilityAI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@23c60c718121bddfc8e7ab04b3f503f9b11a0db7 -
Trigger Event:
push
-
Statement type: