asen-UnleashClient 3.4.3

Creator: railscoder56

Last updated:

Add to Cart

Description:

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": "test@email.com"}
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.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.