1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
unleash.unleash/website/docs/sdks/python.md

2.6 KiB

id title
python_sdk Python SDK

You will need your API URL and your API token in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. Read more

from UnleashClient import UnleashClient

client = UnleashClient(
    url="<API url>",
    app_name="my-python-app",
    custom_headers={'Authorization': '<API token>'})

client.initialize_client()

client.is_enabled("unleash.beta.variants")

Checking if a feature is enabled

Check a feature's status:

client.is_enabled("my_toggle")

To supply application context, use the second positional argument:

app_context = {"userId": "test@email.com"}
client.is_enabled("user_id_toggle", app_context)

Fallback function and default values

You can specify a fallback function for cases where the client doesn't recognize the toggle by using the fallback_function keyword argument:

def custom_fallback(feature_name: str, context: dict) -> bool:
    return True

client.is_enabled("my_toggle", fallback_function=custom_fallback)

You can also use the fallback_function argument to replace the obsolete default_value keyword argument by using a lambda that ignores its inputs. Whatever the lambda returns will be used as the default value.

client.is_enabled("my_toggle", fallback_function=lambda feature_name, context: True)

The fallback function must accept the feature name and context as positional arguments in that order.

The client will evaluate the fallback function only if an exception occurs when calling the is_enabled() method. This happens when the client can't find the feature flag. The client may also throw other, general exceptions.

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("my_variant_toggle", context)

print(variant)
> {
>    "name": "variant1",
>    "payload": {
>        "type": "string",
>        "value": "val1"
>        },
>    "enabled": True
> }

Read more at github.com/Unleash/unleash-client-python