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.2.2.tar.gz (36.0 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.2.2-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for figchain-0.2.2.tar.gz
Algorithm Hash digest
SHA256 2398e7524eb115c7f11a879f0c96a988e5ec0dfbd438ad20ccd3a31a9c324b84
MD5 0d23e0a790cf543bf5932a3c53f02bd3
BLAKE2b-256 835c803435dbf5ca85d04218c082bc2f4685b4a284faf7ff02a8a0ad606d22cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: figchain-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 33.3 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.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d3e6eb6a618ce3227f137eabc98882f26e9d14b9399c48b514d1eff21e666fc
MD5 048f9419299a10fd18a7fae2aef624be
BLAKE2b-256 9792afb452f133ffbf0ec11fce86224e04e6586346e54da76430554265823f62

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