Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 2.93 KB

README.md

File metadata and controls

63 lines (46 loc) · 2.93 KB

python-sdk

Software Development Kit for Python, otherwise known as a Microservice Chassis, which handles cross-cutting concerns such as:

  • Logging
  • Metrics
  • Tracing
  • Configuration
  • Secrets
  • Versioning
  • Health checks

WARNING

This library is still in development and does not have stable interfaces. While it is in use by some internal projects, it is not yet recommended for any productions workloads.

Requirements

Python 3.10+

Installation

pip install pythonsdk

# If using AWS functionality
pip install pythonsdk[aws]

# If using CLI functionality
pip install pythonsdk[cli]

# If using `testing` package
pip install pythonsdk[testing]

Packages

Below is an abstract of the functionality provided by this library. See docs for more information.

The bin package provides utilities for invoking processes while streaming, capturing and manipulating their output.

The config package provides a declarative mechanism for defining your application config, with support for multiple configuration sources (environment variables, remote HTTP endpoints, S3 objects, etc.) validation, secrets injection, hot-reloading, documentation, etc.

The encoding package provides some encoding utils commonly used when authoring networked APIs.

The locks package contains a distributed locking mechanism backed by multiple different providers.

The log package contains an externally configurable logging interface which supports structured logging and hot reloading.

The secrets package provides a simple interface for reading in secrets stored in secrets stores such as AWS Secrets Manager.

The service package provides a uvicorn-like service component for running non-webapp services (workers).

The testing package provides a highly opinionated acceptance test suite for enforcing code quality.

The versioning package provides language-agnostic application versioning strategies.

Interfaces

CLI

The cli python-sdk provides dev-time utilities such as a highly opinionated formatter (python-sdk fmt).