Metadata-Version: 2.1
Name: bullet-train
Version: 1.0.5
Summary: Bullet Train Python SDK
Home-page: https://github.com/solidstategroup/bullet-train-python-client
Author: Solid State Group
Author-email: bullettrain@solidstategroup.com
License: BSD3
Description: <img width="100%" src="https://raw.githubusercontent.com/SolidStateGroup/bullet-train-frontend/master/hero.png"/>
        
        # Bullet Train Client
        
        The SDK clients for Python [https://bullet-train.io/](https://www.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](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](https://www.bullet-train.io/).
        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](https://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](https://gist.github.com/kyle-ssg/c36a03aebe492e45cbd3eefb21cb0486) 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 <a href="mailto:projects@solidstategroup.com">projects@solidstategroup.com</a>.
        
        ## Useful links
        
        [Website](https://bullet-train.io)
        
        [Documentation](https://docs.bullet-train.io/)
        
        [Code Examples](https://github.com/SolidStateGroup/bullet-train-docs)
        
        [Youtube Tutorials](https://www.youtube.com/channel/UCki7GZrOdZZcsV9rAIRchCw)
        
Keywords: feature,flag,bullet,train,remote,config
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
