Skip to main content

Python SDK for Flagr — OpenFeature-compatible

Project description

flagr-sdk

Python SDK for Flagr — OpenFeature-compatible feature flag client.

Connects to the Flagr Evaluation API via SSE, seeds a local in-memory cache from the initial snapshot, and applies real-time updates as flags change. Every flag evaluation is fully local — no network call per check.

Prerequisites

  • Python >= 3.9
  • An active Flagr account and an SDK key (sdk_live_...) from the dashboard

Install

pip install flagr-sdk

Quickstart

from flagr import FlagrProvider

provider = FlagrProvider(sdk_key="sdk_live_xxx")

enabled = provider.evaluate("new-checkout", tenant_id="a1b2c3d4-e5f6-7890-abcd-ef1234567890")

tenant_id is any entity identifier in your product — user ID, org ID, account ID, etc.

OpenFeature

If you use the OpenFeature standard, FlagrProvider is fully compatible:

from openfeature import api
from openfeature.evaluation_context import EvaluationContext
from flagr import FlagrProvider

api.set_provider(FlagrProvider(sdk_key="sdk_live_xxx"))
client = api.get_client()

enabled = client.get_boolean_value(
    "new-checkout",
    default_value=False,
    evaluation_context=EvaluationContext(targeting_key="a1b2c3d4-e5f6-7890-abcd-ef1234567890"),
)

Running locally

# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate

# Install the package with dev dependencies
pip install -e ".[dev]"

Running tests

# Unit tests (no server required)
pytest tests/test_provider.py -v

# Integration tests (requires a running Flagr API + valid SDK key)
FLAGR_SDK_KEY=sdk_live_xxx FLAGR_BASE_URL=http://localhost:8080 pytest tests/test_integration.py -v

# Run all tests
pytest -v

# Type-check
mypy src/

# Lint
ruff check src/ tests/

Releasing a new version

Releases are fully automated via GitLab CI using PyPI's OIDC trusted publishing — no API token required.

  1. Bump the version in pyproject.toml:

    [project]
    version = "0.1.4"
    
  2. Commit, tag, and push:

    git add pyproject.toml
    git commit -m "bump version to 0.1.4"
    git tag v0.1.4
    git push origin v0.1.4
    

    The tag must match the pattern v*.

  3. GitLab CI runs .gitlab-ci.yml, builds with hatch, and publishes to PyPI via trusted publishing. No credentials needed locally.

PyPI setup (one-time): The PyPI project must have trusted publishing configured for the GitLab repository and the pypi GitLab CI/CD environment. See PyPI trusted publishing docs.

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

flagr_sdk-0.1.4.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

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

flagr_sdk-0.1.4-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file flagr_sdk-0.1.4.tar.gz.

File metadata

  • Download URL: flagr_sdk-0.1.4.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for flagr_sdk-0.1.4.tar.gz
Algorithm Hash digest
SHA256 5885ee21649a096a9f15948f9e21d8f6b2bea3ceff225dd4ec45872b85aaf46d
MD5 8355bdaed5a7e83720d3ca1d97654c03
BLAKE2b-256 550a0c6d443aba9fb321eb67d41582f257b3d02a87b52d32c10b5b43ed7088ae

See more details on using hashes here.

File details

Details for the file flagr_sdk-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: flagr_sdk-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for flagr_sdk-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d5ccaa4a5eefd152e8ef6fc84aca82a1296583383835f5f840f330f1f05d8c57
MD5 112d808c89d6d00df9f0a21a30344c1d
BLAKE2b-256 6995bef28c46eb915a8196333b7e63e5d699f36aebc516688c5974eb5b5be09b

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