1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-01 00:08:27 +01:00
unleash.unleash/website/docs/sdks/python.md
sellinjaanus 04fb065df4
Added missing archivedAt to featureSchema (#1779)
* Added missing archivedAt to featureSchema

* Added archivedAt to feature toggle.
Added archived_at to db

* Add test

* Add test

* Bug fix

* Bug fix

* update archivedAt to date-time

* Code refactoring done

* Conver to static and remove unused methods

* Add tests

* Fixes

* Fix

* Removed docker file from linting

* Fix segment test

* Fix failing test

* Make fixes

Co-authored-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: andreas-unleash <104830839+andreas-unleash@users.noreply.github.com>
2022-07-01 11:51:26 +00:00

78 lines
2.6 KiB
Markdown

---
id: python_sdk
title: 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](../user_guide/api-token)
```python
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 {#checking-if-a-feature-is-enabled}
Check a feature's status:
```Python title="Check whether a feature is enabled"
client.is_enabled("my_toggle")
```
To supply application context, use the second positional argument:
```Python title="Check whether a feature is enabled for the given context"
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:
```Python title="Check a feature status, using a fallback if the feature is unrecognized."
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.
```Python title="Use fallback_function to provide a 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 {#getting-a-variant}
Checking for a variant:
```python
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](https://github.com/Unleash/unleash-client-python)