unleash-django
This library is a wrapper for Unleash.io's python
It can wrap views and methods to run if only feature is enabled and return a fallback function otherwise.
Installation
$ pip install unleash-django-util
Setting:
set following values in your settings:
* UNLEASH_API_TOKEN = 'your project token',default is 'default:development. unleash-insecure-api-token'
* UNLEASH_URL = 'the project url', default is 'https://app.unleash-hosted.com/demo/api/'
* UNLEASH_APP_NAME = 'the app name', default is 'miare'
Use in Test Env:
set UNLEASH_FAKE_INITIALIZE = True in settings if no initialization is needed. By doing so no request is sent to Unleash server, neither for fetching flag status nor submitting metrics.
Wrappers:
Using view wrapper:
from unleash_django.decorators.view_flag import view_flag
def fallback_func(self):
"""some code goes here"""
@view_flag('feature_name', fallback_func)
def get(self):
"""some code here"""
Using method wrapper:
from unleash_django.decorators.method_flag import method_flag
def fallback_func():
""" some code goes here """
@method_flag('feature_name', user_id=123)
def method():
""" some code goes here """
if a method feature flag is going to have a user based strategy, user_id should be provided
Methods:
is_enabled:
from unleash_django.api.method import is_enabled
is_enabled('feature_name', context={'userId': '123'})
if feature flag is on, True will be returned, otherwise False unless default is set to
True.
get_variant:
from unleash_django.api.method import get_variant
get_variant('feature_name', context={'userId': '123'})
the result should be like:
{
"name": "variant1",
"payload": {
"type": "string",
"value": "val1"
},
"enabled": True
}
with_feature_flag:
from unleash_django.api.method import with_feature_flag
def enabled_func():
"""some code goes here"""
def disabled_func():
"""some code goes here"""
with_feature_flag('feature_name', enabled_function=enabled_func, disabled_function=disabled_func)
It runs enabled_function if feature is on, otherwise disabled_function unless default
value is set to True
it is possible to pass functions with args and kwargs using tuple, dict or FlagFunction
Change Log
1.0.0
- BREAKING CHANGE: bump dependencies, this version requires
UnleashClient>=6.4.0
0.4.4
- add a variable for fake initialization
0.4.3
- set level of logging
0.4.1
- added
get_variantfunction
Metadata
Release files for unleash-django-util 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unleash_django_util-1.0.0.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unleash_django_util-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.9 kB
Release files / unleash_django_util-1.0.0.tar.gz
| Download URL | unleash_django_util-1.0.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d157059b18514b0f20559c9ffeba8277ea46526dede0276da92bd175759f06f7
|
|
BLAKE2b-256 checksum How to use checksums |
3d706947a5bcce4d0af8a62b0cfc8368cced339828085de6889a25107f5aad60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / unleash_django_util-1.0.0-py3-none-any.whl
| Download URL | unleash_django_util-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ebfa7115007da69885c9ec13da25acaf1f329e137d9be9bc997709b1eaa081fd
|
|
BLAKE2b-256 checksum How to use checksums |
55f76ee3389529f243ca08423a4d21673163eff01262f9ea95b10b39c022d607
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|