Standard
A modular Python utility library with predictable behavior and agent-first guidance.
The project and PyPI distribution are named standard; the Python import package and command are named std. Install core by itself or add FastAPI, AWS, HTTP, Redis cache, or relational database support through an extra. All six distributions share one release version; see the publishing guide for the current release. Standard is an alpha library; the documentation site has the guides, API contracts, examples, and release instructions.
Documentation map
- Get started — installation and first configuration examples.
- API reference — supported modules, classes, and CLI behavior.
- Architecture decisions — module boundaries, configuration lifecycle, and deferred design questions.
- Configuration contract — merge, interpolation, source priority, and error behavior.
- Logging guide — environment defaults, console/JSON formats, and custom options.
- HTTP client guide — async requests, authentication, retries, and response models.
- Redis cache guide — cache helpers, decorators, and distributed locks.
- Relational database guide — async SQLAlchemy sessions for SQLite, PostgreSQL, and MySQL.
- Testing and benchmarks — local checks, Testcontainers, parity, and measurement limits.
- Changelog — user-visible changes by release.
- FastAPI app template — a copyable, feature-first layout with co-located module code, YAML settings, startup injection, and lifecycle wiring.
- FastAPI consumer sample — an independently assembled app installed from the published package, with a fresh-agent evaluation report.
- Contributing · Support · Security policy · MIT license.
Install from PyPI
python -m pip install standard
python -m pip install 'standard[fastapi]'
python -m pip install 'standard[aws]'
python -m pip install 'standard[http]'
python -m pip install 'standard[cache]'
python -m pip install 'standard[rdbms]'
python -m pip install 'standard[fastapi,aws,http,cache,rdbms]'
The core provides YAML/TOML configuration, Pydantic Settings sources, immutable snapshots, recursive mapping helpers, atomic text writes, environment-aware logging, async service lifecycle management, and the std CLI. FastAPI, AWS, HTTP, cache, and RDBMS are separately installable distributions. The standard[fastapi], standard[aws], standard[http], standard[cache], and standard[rdbms] extras select those providers. All six distributions share the same release version; see the publishing guide for the current status and tag workflow.
Install from this checkout
Run these commands from the repository root. The integration source projects are installed alongside core in editable mode.
| Need | Command | Import path |
|---|---|---|
| Core only | python -m pip install -e . |
std |
| FastAPI | python -m pip install -e . -e packages/standard-fastapi |
std.fastapi |
| AWS | python -m pip install -e . -e packages/standard-aws |
std.aws |
| HTTP | python -m pip install -e . -e packages/standard-http |
std.http |
| Redis cache | python -m pip install -e . -e packages/standard-cache |
std.cache |
| Relational databases | python -m pip install -e . -e packages/standard-rdbms |
std.rdbms |
| All providers | python -m pip install -e . -e packages/standard-fastapi -e packages/standard-aws -e packages/standard-http -e packages/standard-cache -e packages/standard-rdbms |
All provider modules |
The editable installs above are for developing this checkout. For an application, install the released package and only the integration extras it uses; core does not import or install optional providers by default.
First use
Create config/settings.yaml:
database:
host: localhost
Then load a value from it:
from std.config import ConfigManager
config = ConfigManager.from_file("config/settings.yaml")
host = config.snapshot.get_path("database.host", "localhost")
For Pydantic Settings, create config/app.yaml:
host: localhost
port: 8080
Define a Pydantic Settings model in core/settings.py:
from std.config import YamlSettings
class Settings(YamlSettings):
std_config_file = "config/app.yaml"
host: str
port: int = 8080
In main.py, construct the model once and use it to build the application:
from app.core.settings import Settings
def main() -> None:
settings = Settings()
# Build the application and inject its validated settings here.
if __name__ == "__main__":
main()
Call Settings() only from the application entry point. By default, Pydantic Settings resolves values in this order: constructor values, Standard config files, process environment, dotenv, and file secrets. Callers can change the order through Pydantic's settings_customise_sources hook.
Agent guidance
std guide
std guide --format json
std skill show
std skill install
std guide summarizes the supported library surface for coding agents. std guide --format json emits schema-versioned install, module, command, and documentation data. std skill show prints the packaged idiomatic-Python skill. std skill install writes it to .agents/skills/standard-idiomatic-python/SKILL.md and refuses to overwrite an existing file unless you pass --force.
The source repository contains the development checks, end-to-end tests, and full documentation site. The published distribution is intended to contain only the working library, its CLI, and the required package metadata, README, and license.
For usage questions, bug reports, and feature requests, see Support. Report security issues privately using the process in SECURITY.md.
Metadata
Release files for standard 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| standard-0.2.4.tar.gz | 24.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| standard-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.7 kB
Release files / standard-0.2.4.tar.gz
| Download URL | standard-0.2.4.tar.gz |
|---|---|
| Size | 24.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2d1408ba6f1ddf8d21031ae94bf6e6805c0be977e622b7f803867f479f6780e
|
|
BLAKE2b-256 checksum How to use checksums |
7c74d835392bdc302b9b08d1e1dfbb9ca3d6b00c2527d012acdb87b73b09ad62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / standard-0.2.4-py3-none-any.whl
| Download URL | standard-0.2.4-py3-none-any.whl |
|---|---|
| Size | 29.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
120a604c8723f92a16660114cc2df9b0feb8f92311183990fb32f1d6c718f918
|
|
BLAKE2b-256 checksum How to use checksums |
91f57ab1e5610063645dfdaff6092bd75700ba86ab800d0b2b8272c01df06e67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency log