Skip to content

lijok/python-sdk

Repository files navigation

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).

About

Python Software Dev Kit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published