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.1.tar.gz (35.3 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.1-py3-none-any.whl (32.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: figchain-0.2.1.tar.gz
  • Upload date:
  • Size: 35.3 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.1.tar.gz
Algorithm Hash digest
SHA256 e6e453bafa78dec340460ebcaa2f23adf498f017a4c336e105bb49ef9ff839a4
MD5 2a49433f3d20a4f6f18aeb7128707ead
BLAKE2b-256 9bacfea3a43af4ae2ccdce799bd7477c7d6dbc588d7e964ec27dbb13f6bf8dd1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: figchain-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 32.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e1bb268e27acd6c91df90d47f6e5459c2906b6920b19a443d09efa77c5a4a8ac
MD5 ea5f856dc6165035ecf2e379e9440a19
BLAKE2b-256 bfe7b792a8208fb947fa39bf5c055bc9723d483573cb818bb6aac3f03e5a0db0

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