GitHub - ivanklee86/unleash-client-python: Python 3 client for unleash 💡💡💡

CircleCI Coverage Status Maintainability PyPI version License: MIT

This project has move to the Unleash orginization! Check it out at unleash/unleash-client-python! Contributions are always welcome. =)

(This repo will be archived for now!)

This is a Python client for Unleash. It implements Client Specifications 1.0 and checks compliance based on spec in unleash/client-specifications

What it supports:

  • Default activation strategies using 32-bit Murmerhash3
  • Custom strategies
  • Full client lifecycle:
    • Client registers with Unleash server
    • Client periodically fetches feature toggles and stores to on-disk cache
    • Client periodically sends metrics to Unleash Server

Check out the project documentation here.

Installation

Check out the package on Pypi!

pip install UnleashClient

Usage

Initialization

from UnleashClient import UnleashClient
client = UnleashClient("https://unleash.herokuapp.com", "My Program")
client.initialize_client()

To clean up gracefully:

Arguments

Argument Description Required? Type Default Value
url Unleash server URL Y String N/A
app_name Name of your program Y String N/A
instance_id Unique ID for your program N String unleash-client-python
refresh_interval How often the unleash client should check for configuration changes. N Integer 15
metrics_interval How often the unleash client should send metrics to server. N Integer 60
disable_metrics Disables sending metrics to Unleash server. N Boolean F
custom_headers Custom headers to send to Unleash. N Dictionary {}
custom_strategies Custom strategies you'd like UnleashClient to support. N Dictionary {}

Checking if a feature is enabled

A check of a simple toggle:

client.is_enabled("My Toggle")

Specifying a default value:

client.is_enabled("My Toggle", default_value=True)

Supplying application context:

app_context = {"userId": "test@email.com"}
client.is_enabled("User ID Toggle", app_context)