Python Packages
Stout implements the PEP 503 Simple Repository API
for Python packages. Serves wheels and sdists — pip install just works.
Configure Your Client
Point pip at your Stout instance:
# One-off install
pip install my-package --index-url https://registry.stout.io/pypi/simple/
# Local development
pip install my-package --index-url http://localhost:7888/pypi/simple/ Or set it permanently in pip.conf:
# ~/.config/pip/pip.conf (Linux/macOS)
[global]
index-url = https://registry.stout.io/pypi/simple/
extra-index-url = https://pypi.org/simple/ For uv:
uv pip install my-package --index-url https://registry.stout.io/pypi/simple/ Install a Package
pip install my-package==1.2.0 Publish a Package
Stout builds from source. Submit a build via the API:
curl -X POST https://registry.stout.io/api/v1/builds \
-H "Authorization: Bearer $STOUT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format": "pypi",
"repo": "https://github.com/myorg/my-package",
"version": "1.2.0"
}' Authentication
For private packages, embed credentials in the URL or use keyring:
# pip.conf with token
[global]
index-url = https://token:${STOUT_TOKEN}@registry.stout.io/pypi/simple/ Or set the environment variable:
export PIP_INDEX_URL=https://token:$STOUT_TOKEN@registry.stout.io/pypi/simple/ Endpoints
| Method | Path | Description |
|---|---|---|
GET | /pypi/simple/ | Package listing |
GET | /pypi/simple/{package}/ | Version listing with download links |
GET | /pypi/packages/{file} | Download wheel or sdist |