Last updated:
0 purchases
asenUnleashClient 3.4.3
unleash-client-python
This is the Python client for Unleash. It implements Client Specifications 1.0 and checks compliance based on spec in unleash/client-specifications
What it supports:
Default activation strategies using 32-bit Murmerhash3
Custom strategies
Full client lifecycle:
Client registers with Unleash server
Client periodically fetches feature toggles and stores to on-disk cache
Client periodically sends metrics to Unleash Server
Tested on Linux (Ubuntu), OSX, and Windows
Check out the project documentation and the changelog.
Installation
Check out the package on Pypi!
pip install UnleashClient
Usage
Initialization
from UnleashClient import UnleashClient
client = UnleashClient("https://unleash.herokuapp.com/api", "My Program")
client.initialize_client()
To clean up gracefully:
client.destroy()
Arguments
Argument
Description
Required?
Type
Default Value
url
Unleash server URL
Y
String
N/A
app_name
Name of your program
Y
String
N/A
environment
Name of current environment
N
String
default
instance_id
Unique ID for your program
N
String
unleash-client-python
refresh_interval
How often the unleash client should check for configuration changes.
N
Integer
15
metrics_interval
How often the unleash client should send metrics to server.
N
Integer
60
disable_metrics
Disables sending metrics to Unleash server.
N
Boolean
F
disable_registration
Disables registration with Unleash server.
N
Boolean
F
custom_headers
Custom headers to send to Unleash.
N
Dictionary
{}
custom_strategies
Custom strategies you'd like UnleashClient to support.
N
Dictionary
{}
Checking if a feature is enabled
A check of a simple toggle:
client.is_enabled("My Toggle")
Specifying a default value:
client.is_enabled("My Toggle", default_value=True)
Supplying application context:
app_context = {"userId": "[email protected]"}
client.is_enabled("User ID Toggle", app_context)
Supplying a fallback function:
def custom_fallback(feature_name: str, context: dict) -> bool:
return True
client.is_enabled("My Toggle", fallback_function=custom_fallback)
Must accept the fature name and context as an argument.
Client will evaluate the fallback function only if exception occurs when calling the is_enabled() method i.e. feature flag not found or other general exception.
If both a default_value and fallback_function are supplied, client will define the default value by ORing the default value and the output of the fallback function.
Getting a variant
Checking for a variant:
context = {'userId': '2'} # Context must have userId, sessionId, or remoteAddr. If none are present, distribution will be random.
variant = client.get_variant("MyvariantToggle", context)
print(variant)
> {
> "name": "variant1",
> "payload": {
> "type": "string",
> "value": "val1"
> },
> "enabled": True
> }
For more information about variants, see the Beta feature documentation.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.