Skip to main content

FigChain Python Client

Project description

FigChain Python Client

Official Python client library for FigChain configuration management.

Features

  • Real-time configuration updates - Subscribe to configuration changes with background polling
  • Rule-based rollouts - Evaluate feature flags and configurations based on user context
  • Type-safe models - Avro-based serialization for efficient data transfer with Python dataclasses
  • Flexible storage - Thread-safe in-memory storage
  • Python 3.7+ - Support for modern Python versions

Installation

Install using pip:

pip install figchain

Quick Start

from figchain import FigChainClient, Context

# Your generated config class (see "Generating Models")
from my_app.models import MyConfig

# Initialize the client
client = FigChainClient(
    base_url="https://api.figchain.io",
    client_secret="your-client-secret",
    environment_id="your-environment-id",
    namespaces={"default"}
)

# Define context for evaluation (e.g., user properties for traffic splitting)
context: Context = {
    "userId": "user123",
    "plan": "premium"
}

# Fetch configuration safely
# returns Optional[MyConfig]
config = client.get_fig("your-fig-key", MyConfig, context=context)

if config:
    if config.enabled:
        print(f"Feature enabled with color: {config.backgroundColor}")
    else:
        print("Feature disabled")

# Clean up resources when done
client.close()

Generating Models

The Python client uses Avro schemas to generate type-safe dataclasses. You can use the included script to generate these models from your .avsc files:

# If installed from source in venv:
python3 scripts/generate_models.py path/to/schema.avsc path/to/output_models.py

Development

  1. Setup Environment:

    python3 -m venv venv
    . venv/bin/activate
    pip install -e .[dev]
    
  2. Run Tests:

    pytest
    

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Support

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

figchain-0.3.0.tar.gz (39.5 kB view details)

Uploaded Source

Built Distribution

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

figchain-0.3.0-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

Details for the file figchain-0.3.0.tar.gz.

File metadata

  • Download URL: figchain-0.3.0.tar.gz
  • Upload date:
  • Size: 39.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for figchain-0.3.0.tar.gz
Algorithm Hash digest
SHA256 db90ec4bda455410d9ee589a1c65e2e9346df8512ae752560508d8be46b4bfff
MD5 bea145f7626a764a45efee32d8401ce4
BLAKE2b-256 f9b9490db04efc3c04c6e0369d7ca898680729a4f98fd7cbe4a81bbfc9d468ba

See more details on using hashes here.

File details

Details for the file figchain-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: figchain-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for figchain-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 630b99dc54d33c494491619fe1ef1ba0f1f5377d64dedb0c693c3b6fdb70d92f
MD5 7985a74056ec985dceec8486d3641ef4
BLAKE2b-256 c93641f62379b45d962bd73a340a6f7ca0b0ff2e414e38c190e2b8b8cf5f0ed7

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