* hooks: Implementation of hooks for python Open Feature Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Fix tests broken as a result of providing hook support Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Add api level evaluation context support Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Change typing on iterables to be compatible with python 3.8 Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Add docstring for evaluate_flag_details method Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Add docstring for evaluate_flag_details method Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: docstring change requested in review Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: add docstrings and comments to Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Use correct exception in error hooks in the client Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * hooks: Set empty evaluation context in no op provider to None Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * pypi-packaging: package the main branch and deploy on pypi Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * pypi-packaging: package the main branch and deploy on pypi Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> * pypi-packaging: use set package directory in pypi distribution Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com> |
||
|---|---|---|
| .github/workflows | ||
| open_feature | ||
| tests | ||
| .env.template | ||
| .flake8 | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| LICENSE | ||
| pyproject.toml | ||
| readme.md | ||
| requirements-dev.in | ||
| requirements-dev.txt | ||
| requirements.in | ||
| requirements.txt | ||
readme.md
Open Feature 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)
number_result = open_feature_client.get_number_value(key=flag_key)
string_result = open_feature_client.get_string_value(key=flag_key)
object_result = open_feature_client.get_object_value(key=flag_key)
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 python-open-feature-sdk==0.0.1
requirements.txt
python-open-feature-sdk==0.0.1
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.