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_valueandfallback_functionare supplied, client will define the default value byORing 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.
Metadata
Release files for asen-UnleashClient 3.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| asen_UnleashClient-3.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Release files / asen_UnleashClient-3.4.3-py3-none-any.whl
| Download URL | asen_UnleashClient-3.4.3-py3-none-any.whl |
|---|---|
| Size | 51.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6967d6e4859012467ab989c320bbc77c178f3727635b15944f79701eb30eb88b
|
|
BLAKE2b-256 checksum How to use checksums |
087acc6539ea8efab9a6678f3b432d6081891bc170eb657e4f588f7987201d40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5
|