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
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
Built Distribution
Hashes for bullet_train-1.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 223a9c9f51a55f01de4ac0d2a60b04f0b7ab830b0bd1881593f7be5de0c1e0bb |
|
MD5 | 2dcbe5e62d6858e68f2041b1c6a3979f |
|
BLAKE2b-256 | eaccb4ad0d6336e94fa00ab37463359391229c90aa6ad72ea58b9147c1e4ce11 |