Skip to main content

Feature guards, observability, and security response in a single import. Evaluated locally with zero network overhead per check

Project description

Liteguard Python SDK

Python SDK PyPI

Installation

pip install liteguard

Requires Python 3.9+.

Quick Start

from liteguard import ClientOptions, LiteguardClient

client = LiteguardClient(
    "pct-...",
    ClientOptions(environment="env-production"),
)
client.start()

scope = client.create_scope({"user_id": "user-123", "plan": "pro"})

if scope.is_open("payments.checkout"):
    ...

client.shutdown()

Primary API

  • LiteguardClient(project_client_token, options) creates a client.
  • client.start() fetches the initial bundle and starts refresh and flush workers.
  • client.create_scope(properties=None) creates an immutable request scope.
  • scope.is_open(name, options=None) evaluates a guard locally.
  • scope.evaluate(name, options=None) returns a GuardDecision with the full evaluation result.
  • scope.execute_if_open(name, fn, options=None) measures guarded execution.
  • scope.start_execution() creates an execution correlation handle.
  • scope.bind_protected_context(protected_context) returns a derived protected scope.
  • scope.get_properties() returns the current property bag for transport.
  • client.flush_signals() flushes buffered telemetry.
  • client.shutdown() flushes and stops background workers.

Convenience helpers

For server applications that want request-scoped context propagation:

  • client.run_with_scope(scope, fn) runs fn with scope as the active scope, propagated across async boundaries via contextvars.
  • client.get_active_scope() returns the scope bound to the current request.
  • client.with_properties(properties, fn) derives and activates a scope with additional properties.
  • client.with_protected_context(protected_context, fn) derives and activates a protected scope.

Notes

  • Guard evaluation is fully local after the initial fetch.
  • Scopes are immutable and request-scoped.
  • contextvars keep overlapping async request scopes isolated.
  • Unadopted guards default open and emit no signals.
  • The convenience helpers above also serve as infrastructure for auto-instrumentation of third-party dependencies. See the Liteguard CLI for build-time instrumentation.

Development

make test-python

License

Apache 2.0 see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

liteguard-0.6.20260405.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

liteguard-0.6.20260405-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file liteguard-0.6.20260405.tar.gz.

File metadata

  • Download URL: liteguard-0.6.20260405.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for liteguard-0.6.20260405.tar.gz
Algorithm Hash digest
SHA256 b069148b041c24e299149d48a5bc224857677b82175ea083397391fcd3e6b16e
MD5 a1c05d32f3ee0258433dbb428ea2cf0f
BLAKE2b-256 ee182eb8d6a50930963cb755467ac0668b2c0d1376545963f6269488e38c76e3

See more details on using hashes here.

File details

Details for the file liteguard-0.6.20260405-py3-none-any.whl.

File metadata

File hashes

Hashes for liteguard-0.6.20260405-py3-none-any.whl
Algorithm Hash digest
SHA256 be5ac9317c8e658e978b11f495256b2a9646f1f6845adee54ef2a855a0c567bd
MD5 26386b33e7d765ab24e0ea7558d3eb7d
BLAKE2b-256 396df59d19ec2a2d963a88ad996af275af7ea2377df25e8913d3f86f59c35b14

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page