Skip to main content

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_variant function

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)

Source distribution for unleash-django-util 1.0.0
File Size Uploaded
unleash_django_util-1.0.0.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unleash-django-util 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page