Skip to main content

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

unleash_django_util-0.4.4-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file unleash_django_util-0.4.4-py3-none-any.whl.

File metadata

File hashes

Hashes for unleash_django_util-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a9edf84aebeb9414936ad6fe05783a6aa73ea14aa9e2a1b8d55a9bb597fb4f60
MD5 fe768a351d778407511d48f56b72ad58
BLAKE2b-256 0b18c6882835c699ee3b787a75b967e0be82409512b5968172b0c4f1110a9519

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page