Python SDK for OpenFeature
Go to file
Tom Carrio 9276d35798
feat: defaults to NoOpProvider (#66)
* feat: defaults to NoOpProvider

ensures a provider will always be returned

Signed-off-by: Tom Carrio <tom@carrio.dev>

* test: update for default provider being safe with default

Signed-off-by: Tom Carrio <tom@carrio.dev>

* chore: fix misspelling in test case

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Tom Carrio <tom@carrio.dev>

Signed-off-by: Tom Carrio <tom@carrio.dev>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2022-12-27 21:40:20 -05:00
.github/workflows feat: process flag evaluation options in client (#31) 2022-12-02 08:07:39 -05:00
open_feature feat: defaults to NoOpProvider (#66) 2022-12-27 21:40:20 -05:00
tests feat: defaults to NoOpProvider (#66) 2022-12-27 21:40:20 -05:00
.env.template python-sdk: Move exceptions to a single file 2022-06-16 14:47:30 +04:00
.flake8 Restructure modules (#3) 2022-06-30 21:35:41 +04:00
.gitignore feat: process flag evaluation options in client (#31) 2022-12-02 08:07:39 -05:00
.pre-commit-config.yaml python-sdk: Fix issues raised in code review to match a more pythonic style 2022-05-30 15:13:10 +04:00
.release-please-manifest.json chore(main): release 0.0.7 (#65) 2022-12-19 13:59:40 -05:00
CHANGELOG.md chore(main): release 0.0.7 (#65) 2022-12-19 13:59:40 -05:00
CONTRIBUTING.md feat: process flag evaluation options in client (#31) 2022-12-02 08:07:39 -05:00
LICENSE python-sdk: Work in progress initial commit of a python sdk 2022-05-12 16:11:40 +04:00
Makefile feat: process flag evaluation options in client (#31) 2022-12-02 08:07:39 -05:00
pyproject.toml chore(main): release 0.0.7 (#65) 2022-12-19 13:59:40 -05:00
readme.md chore(main): release 0.0.7 (#65) 2022-12-19 13:59:40 -05:00
release-please-config.json chore: updated release please readme config 2022-11-22 08:25:38 -05:00
renovate.json chore(deps): add renovate.json (#29) 2022-11-02 12:21:34 +04:00
requirements-dev.in Pypi publish (#22) 2022-10-13 15:39:47 +04:00
requirements-dev.txt chore: Security upgrade setuptools from 39.0.1 to 65.5.1 (#46) 2022-11-21 17:39:59 -05:00
requirements.in python-sdk: Remove dependency on provider 2022-06-09 16:59:20 +04:00
requirements.txt Pypi publish (#22) 2022-10-13 15:39:47 +04:00

readme.md

OpenFeature SDK for Python

PyPI version Python 3.8+ Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. Specification on-merge codecov

This is the Python implementation of OpenFeature, a vendor-agnostic abstraction library for evaluating feature flags.

We support multiple data types for flags (numbers, strings, booleans, objects) as well as hooks, which can alter the lifecycle of a flag evaluation.

This library is intended to be used in server-side contexts and has not been evaluated for use in mobile devices.

Usage

While Boolean provides the simplest introduction, we offer a variety of flag types.

# Depending on the flag type, use one of the methods below
flag_key = "PROVIDER_FLAG"
boolean_result = open_feature_client.get_boolean_value(key=flag_key,default_value=False)
integer_result = open_feature_client.get_integer_value(key=flag_key,default_value=-1)
float_result = open_feature_client.get_float_value(key=flag_key,default_value=-1)
string_result = open_feature_client.get_string_value(key=flag_key,default_value="")
object_result = open_feature_client.get_object_value(key=flag_key,default_value={})

Each provider class may have further setup required i.e. secret keys, environment variables etc

Requirements

  • Python 3.8+

Installation

Add it to your build

Pip install

pip install openfeature-sdk==0.0.7

requirements.txt

openfeature-sdk==0.0.7
pip install requirements.txt

Configure it

In order to use the sdk there is some minor configuration. Follow the script below:

from open_feature import open_feature_api

open_feature_api.set_provider(NoOpProvider())
open_feature_client = open_feature_api.get_client()

Contacting us

We hold regular meetings which you can see here.

We are also present on the #openfeature channel in the CNCF slack.

Contributors

Thanks so much to our contributors.

Made with contrib.rocks.

Development

If you would like to contribute to the project, please see our contributing documentation!