Skip to main content

Service agnostic featureflag client

Project description

featureflagclient

Allows you to use feature flags in your code, works with any JSON feature flag service.

Features:

  • Extremely light-weight.
  • Feature flag service agnostic.

Created by featureflag.tech.

Get started

You can install this via pip from the package index as

pip install featureflagclient

If you have a JSON file in the cloud like this one:

featureflag.tech/node/exampleflag.json

You can access it like so

from featureflagclient.client import Featureflagclient

f2c = Featureflagclient("https://featureflag.tech/node/exampleflag.json")

if (f2c.get( "trueBoolean" )) {
	// do some python
}

A great way to use feature flags is to use the values from your flag source but override them in specific contexts. For example with a web application, you can have a feature disabled by default in your live production, but then override the value using a cookie or parameter in the request.

For example:

from featureflagclient.client import Featureflagclient

f2c = Featureflagclient(
	"https://featureflag.tech/node/exampleflag.json",
	{
		"falseBoolean": req.param("falseBooleanOverride") or None
	}
)

if (f2c.get( "trueBoolean" )) {
	// do some python
}

Developing

Setting up from scratch

Project uses the following Python libs:

  • Python 3.6
  • pyenv for managing the version of Python
  • pipenv for managing dependencies and the Python env
  • pytest for unit testing
  • mypy for static typing (not yet true)
  • flake8 for code linting (not yet true)

pyenv - python version manager

brew install pyenv

Add this to .bash_profile

eval "$(pyenv init -)"

reload terminal session.

python 3.6.5

pyenv install 3.6.5

Setup env with dependencies

cd [repo directory]
pipenv install
pipenv shell

Run the tests

pytest -v

Release new version

  1. Bump the version number in setup.py

  2. Delete all the contents of the dist dir

  3. Create distribution files:

python setup.py sdist bdist_wheel
  1. Push to pypi:
twine upload dist/*
  1. Check the deployment at:
https://pypi.org/manage/project/featureflagclient/releases/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

featureflagclient-0.4.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

featureflagclient-0.4-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file featureflagclient-0.4.tar.gz.

File metadata

File hashes

Hashes for featureflagclient-0.4.tar.gz
Algorithm Hash digest
SHA256 149b2cafb34436f62c007c6c24bbfc02efad5049a3076c4fac34022f951d7c3d
MD5 8551da8435c3e1677701edfb7d9f9825
BLAKE2b-256 af5f3808d0b2d00161b1bf0f45921296b435004496b93cb4f1413af33da09391

See more details on using hashes here.

File details

Details for the file featureflagclient-0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for featureflagclient-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a10b300e6c6ca617b537d4d2fdb09c2f19e4116b0390a24abba620fe08d53895
MD5 366807d33b012a06c50fa5ca1a5e3fd0
BLAKE2b-256 6c707049c62e4d31d8ee59cac1cc178637120841ebac68de3a4621fa59ede7ba

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