Unleash Django utility package
Project description
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
0.4.4
- add a variable for fake initialization
0.4.3
- set level of logging
0.4.1
- added
get_variant
function
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file unleash_django_util-0.4.4-py3-none-any.whl
.
File metadata
- Download URL: unleash_django_util-0.4.4-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9edf84aebeb9414936ad6fe05783a6aa73ea14aa9e2a1b8d55a9bb597fb4f60 |
|
MD5 | fe768a351d778407511d48f56b72ad58 |
|
BLAKE2b-256 | 0b18c6882835c699ee3b787a75b967e0be82409512b5968172b0c4f1110a9519 |