Skip to main content

scalo

The runtime layer for Python control-plane services: config, logging, metrics, health probes, secrets and a service CLI, already wired together. Subclass one class and your service reads its config, logs in the right format for where it runs, and serves its health probes.

It is built for APIs, orchestrators, CLI tools and integration glue. For the hot path there is a Rust sister library, scalo-rs, with the same conventions and a different API.

What it gives you

  • A seven-layer config cascade, from CLI flags and env vars down to YAML and defaults, that reads the same in a laptop shell and a Kubernetes pod.
  • Structured logs, JSON in a container and readable text at a terminal. Credentials, tokens and keys are masked, and so are cards, IBANs, emails and phone numbers, and Australian ABN, ACN, TFN and Medicare numbers where a keyword names them. TRACE records skip the scrubber by default.
  • ServiceApp: subclass it and get run, version, config-check and generate-artefacts, with config and logging started for you, and metrics too once scalo[metrics] is installed.
  • /livez and /readyz on an observability port kept apart from your application's own.
  • With the metrics extra, Prometheus and OpenTelemetry metrics, process and container gauges included, scraped from /metrics on the same port. Without a metrics manager that path answers 404.
  • Secrets from OpenBao or Vault, AWS, GCP, Azure, Kubernetes and Ansible Vault, one extra per backend.
  • A deployment contract: return one from deployment_contract() and generate-artefacts writes your runtime Dockerfile and the contract the scalo-service Helm chart renders from.
  • Kafka, CEL expressions and an HTTP client with jittered retry, each behind its own extra.

Example

uv add scalo
from scalo.cli import ServiceApp, VersionInfo
from scalo.logger import logger


class Greeter(ServiceApp):
    name = "greeter"
    env_prefix = "GREETER"

    def version_info(self) -> VersionInfo:
        return VersionInfo(self.name, "1.0.0")

    def run_service(self, config) -> None:
        logger.info("hello", target=config.get("target", "world"))


if __name__ == "__main__":
    Greeter().cli()

GREETER_TARGET=team python greeter.py run logs hello with target=team, and python greeter.py config-check validates the config without starting anything.

Extras

Extra Adds
api FastAPI conventions: operation ids, ETag and If-Match, problem+json errors, pagination
cli A whole CLI generated from an OpenAPI spec
mcp MCP tools generated from a scalo.api app's spec, served on the same app
http An httpx client with jittered retry
metrics Prometheus and OTLP export, process and container gauges
opentelemetry The OpenTelemetry half of metrics on its own
expression CEL expressions
kafka Produce, consume and schema inference
deployment The deployment contract and its Dockerfile and manifest generators
secrets-vault, secrets-aws, secrets-gcp, secrets-azure, secrets-kubernetes, secrets-ansible-vault One secrets backend each
secrets Every secrets backend

Pick the secrets backend you use rather than secrets, since each backend brings its own cloud SDK.

Docs and source are at https://github.com/hyperi-io/scalo-py. Requires Python 3.14 or later. Licensed Apache-2.0: https://github.com/hyperi-io/scalo-py/blob/main/LICENSE.

Metadata

Release files for scalo 2.32.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scalo 2.32.4
File Size Uploaded Provenance Actions
scalo-2.32.4.tar.gz 548.1 kB Without provenance Details for scalo-2.32.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scalo 2.32.4
File Interpreter ABI Platform Actions
scalo-2.32.4-py3-none-any.whl Python 3 none any Details for scalo-2.32.4-py3-none-any.whl

Total release size: 1.2 MB

Release files / scalo-2.32.4.tar.gz

Download URL scalo-2.32.4.tar.gz
Size 548.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d5cc1c9dd5cd14c19dca996de6d564223669b067b80f2ecefb0de7f3e810c830
BLAKE2b-256 checksum
How to use checksums
40c30fd22195a16851d11368a090fe5a110c7e81fef2bc608b14df0eb2b9ba26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / scalo-2.32.4-py3-none-any.whl

Download URL scalo-2.32.4-py3-none-any.whl
Size 640.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc58c89f6814c629717f2fb9e22be650c38c94e3da656ae3522938e628e6019f
BLAKE2b-256 checksum
How to use checksums
8fbd311ad62baf5b09b616500434d89bbe7fc35a33eb0017a3ecd4f99a09d2cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for scalo 2.32.4

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.32.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page