* 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> |
||
|---|---|---|
| .github/workflows | ||
| open_feature | ||
| tests | ||
| .env.template | ||
| .flake8 | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .release-please-manifest.json | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| readme.md | ||
| release-please-config.json | ||
| renovate.json | ||
| requirements-dev.in | ||
| requirements-dev.txt | ||
| requirements.in | ||
| requirements.txt | ||
readme.md
OpenFeature SDK for Python
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!