Python SDK for OpenFeature
Go to file
Andrew Helsby f3dcad2e81
Pypi packaging (#12)
* 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>
2022-09-12 16:32:08 +04:00
.github/workflows Pypi packaging (#12) 2022-09-12 16:32:08 +04:00
open_feature hooks: Implementation of hooks for python OpenFeature (#6) 2022-09-02 12:23:15 +04:00
tests hooks: Implementation of hooks for python OpenFeature (#6) 2022-09-02 12:23:15 +04: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 python-sdk: Work in progress initial commit of a python sdk 2022-05-12 16:11:40 +04: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
LICENSE python-sdk: Work in progress initial commit of a python sdk 2022-05-12 16:11:40 +04:00
pyproject.toml Restructure modules (#3) 2022-06-30 21:35:41 +04:00
readme.md Restructure modules (#3) 2022-06-30 21:35:41 +04:00
requirements-dev.in Restructure modules (#3) 2022-06-30 21:35:41 +04:00
requirements-dev.txt python-sdk: Work in progress initial commit of a python sdk 2022-05-12 16:11:40 +04:00
requirements.in python-sdk: Remove dependency on provider 2022-06-09 16:59:20 +04:00
requirements.txt python-sdk: Remove dependency on provider 2022-06-09 16:59:20 +04:00

readme.md

Open Feature SDK for Python

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.

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.