Skip to main content

Bullet Train Python SDK

Project description

Bullet Train Client

The SDK clients for Python https://bullet-train.io/. Bullet Train allows you to manage feature flags and remote config across multiple projects, environments and organisations.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See running in production for notes on how to deploy the project on a live system.

Installing

VIA pip

pip install bullet-train

Usage

Retrieving feature flags for your project

For full documentation visit https://docs.bullet-train.io

from bullet_train import BulletTrain;

bt = BulletTrain(environment_id="<YOUR_ENVIRONMENT_KEY>")

if bt.has_feature("header", '<My User Id>'):
  if bt.feature_enabled("header"):
    # Show my awesome cool new feature to the world

if bt.has_feature("header"):
  if bt.feature_enabled("header"):
    # Show my awesome cool new feature to the world

value = bt.get_value("header", '<My User Id>')

value = bt.get_value("header")

bt.set_trait("accept-cookies", "true", "ben@bullet-train.io"))
bt.get_trait("accept-cookies", "ben@bullet-train.io"))

Available Options

Property Description Required Default Value
environment_id Defines which project environment you wish to get flags for. example ACME Project - Staging. YES None
api Use this property to define where you're getting feature flags from, e.g. if you're self hosting. NO https://api.bullet-train.io/api/

Available Functions

Function Description
has_feature(key) Get the value of a particular feature e.g. bt.has_feature("powerUserFeature") // true
has_feature(key, user_id) Get the value of a particular feature for a user e.g. bt.has_feature("powerUserFeature", 1234) // true
get_value(key) Get the value of a particular feature e.g. bt.get_value("font_size") // 10
get_value(key, userId) Get the value of a particular feature for a specified user e.g. bt.get_value("font_size", 1234) // 15
get_flags() Trigger a manual fetch of the environment features, returns a list of flag objects, see below for returned data
get_flags_for_user(1234) Trigger a manual fetch of the environment features with a given user id, returns a list of flag objects, see below for returned data

Identifying users

Identifying users allows you to target specific users from the Bullet Train dashboard. You can include an optional user identifier as part of the has_feature and get_value methods to retrieve unique user flags and variables.

Flags data structure

Field Description Type
id Internal id of feature state Integer
enabled Whether feature is enabled or not Boolean
environment Internal ID of environment Integer
feature_state_value Value of the feature Any - determined based on data input on bullet-train.io.
feature Feature object - see below for details Object

Feature data structure

Field Description Type
id Internal id of feature Integer
name Name of the feature (sometimes referred to as key or ID) String
description Description of the feature String
type Feature Type. Can be FLAG or CONFIG String
created_date Date feature was created Datetime
inital_value The initial / default value set for all feature states on creation String
project Internal ID of the associated project Integer

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Getting Help

If you encounter a bug or feature request we would like to hear about it. Before you submit an issue please search existing issues in order to prevent duplicates.

Get in touch

If you have any questions about our projects you can email projects@solidstategroup.com.

Useful links

Website

Documentation

Code Examples

Youtube Tutorials

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

bullet-train-1.0.4.tar.gz (4.8 kB view details)

Uploaded Source

Built Distributions

bullet_train-1.0.4-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

bullet_train-1.0.4-py2-none-any.whl (5.2 kB view details)

Uploaded Python 2

File details

Details for the file bullet-train-1.0.4.tar.gz.

File metadata

  • Download URL: bullet-train-1.0.4.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for bullet-train-1.0.4.tar.gz
Algorithm Hash digest
SHA256 7b588a8d7b29675f1a14287f2db1fd3765e8cd75158a2f81b2444884a5801ec3
MD5 b36720ffd20d193022e65fb23f3e9843
BLAKE2b-256 016dca74ee7df923755323af68e580eebf6febff1c1cdb10a99f1507d3835ded

See more details on using hashes here.

File details

Details for the file bullet_train-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: bullet_train-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for bullet_train-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5e449189ce3f44517013df013f3fd67277db517804d493d73ffe561aba76906c
MD5 df5091dd4c8d60517beb05e226cc3aa1
BLAKE2b-256 f42ae7049e8834952a5f17e953a45be91ffd5eeb890894bf33a79f40854b3f28

See more details on using hashes here.

File details

Details for the file bullet_train-1.0.4-py2-none-any.whl.

File metadata

  • Download URL: bullet_train-1.0.4-py2-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for bullet_train-1.0.4-py2-none-any.whl
Algorithm Hash digest
SHA256 82ffee1edf0790b35eba3f0e145a6afc562d4d40840e5c2f70c29d5367f4ebc8
MD5 32eba826c89465510ebebfb503d8197f
BLAKE2b-256 90aa37a82d79c3cea716372ee8431c765d572d548392b47cd0ca8b5cde0d4117

See more details on using hashes here.

Supported by

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