Python Provider
Get Started
An OpenFeature Provider is a pluggable integration layer that connects the OpenFeature SDK to a specific feature flag management system (e.g., VWO or custom in-house solutions). OpenFeature is an open-source standard for feature flagging, designed to provide a vendor-agnostic approach, enabling organizations to switch between feature flagging tools without rewriting application code.
This VWO Openfeature Provider for Python helps you integrate feature management and experimentation systems within your Python based server applications.
Resource | Link |
---|---|
GitHub repository | https://github.com/wingify/vwo-openfeature-provider-python |
Published on | https://pypi.org/project/vwo-openfeature-provider-python/ |
Openfeature Java docs | <https://openfeature.dev/docs/reference/technologies/server/java> |
Please Note
This library is intended to be used in server-side contexts and has not been evaluated for use on mobile devices.
Requirements
Python: 3.8+
SDK Installation
It's recommended you use virtualenv to create isolated Python environments.
pip install vwo-openfeature-provider-python
Usage
from openfeature import api
from vwo_provider import VWOProvider
from openfeature.evaluation_context import EvaluationContext
from vwo import init
options = {
'sdk_key': '32-alpha-numeric-sdk-key', # SDK Key
'account_id': '123456' # VWO Account ID
}
# Initialize the VWO client
vwo_client = init(options)
# Initialize the VWO provider
vwo_provider = VWOProvider(vwo_client)
# Registering the default provider
api.set_provider(vwo_provider)
# A client bound to the default provider
default_client = api.get_client()
def start():
print('BOOL', default_client.get_boolean_value('unique_feature_key', False, EvaluationContext(attributes={'id': 'user_id', 'key': 'boolean_variable'})))
print('STRING', default_client.get_string_value('unique_feature_key', '', EvaluationContext(attributes={'id': 'user_id', 'key': 'string_variable'})))
print('INTEGER', default_client.get_integer_value('unique_feature_key', 10, EvaluationContext(attributes={'id': 'user_id', 'key': 'number_variable'})))
print('FLOAT', default_client.get_float_value('unique_feature_key', 10.0, EvaluationContext(attributes={'id': 'user_id', 'key': 'float_variable'})))
print('OBJECT', default_client.get_object_value('unique_feature_key', {}, EvaluationContext(attributes={'id': 'user_id', 'key': 'json-variable'})))
start()
Updated about 18 hours ago