| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
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:
Check out the project documentation and the changelog.
Check out the package on Pypi!
pip install UnleashClient
from UnleashClient import UnleashClient
client = UnleashClient(
url="https://unleash.herokuapp.com",
app_name="my-python-app",
custom_headers={'Authorization': '<API token>'})
client.initialize_client()
To clean up gracefully:
client.destroy()
| 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 | {} |
| cache_directory | Location of the cache directory. When unset, FCache will determine the location | N | Str | Unset |
| project_name | Unleash project Id to load feature flags from | N | Str | "" |
| verbose_log_level | Numerical log level (https://docs.python.org/3/library/logging.html#logging-levels) for cases where checking a feature flag fails. | N | Integer | 30 (Warning) |
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)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 Variant documentation.
| Back | FazBrowse Home | New Git URL |