%global _empty_manifest_terminate_build 0
Name: python-bullet-train
Version: 1.0.5
Release: 1
Summary: Bullet Train Python SDK
License: BSD3
URL: https://github.com/solidstategroup/bullet-train-python-client
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/01/ab/e14e7788f5980116556ca34df6594673e802b526d1741e6257e499e675c7/bullet-train-1.0.5.tar.gz
BuildArch: noarch
Requires: python3-requests
%description
# 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="")
if bt.has_feature("header", ''):
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", '')
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 projects@solidstategroup.com.
## 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)
%package -n python3-bullet-train
Summary: Bullet Train Python SDK
Provides: python-bullet-train
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-bullet-train
# 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="")
if bt.has_feature("header", ''):
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", '')
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 projects@solidstategroup.com.
## 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)
%package help
Summary: Development documents and examples for bullet-train
Provides: python3-bullet-train-doc
%description help
# 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="")
if bt.has_feature("header", ''):
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", '')
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 projects@solidstategroup.com.
## 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)
%prep
%autosetup -n bullet-train-1.0.5
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-bullet-train -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Thu May 18 2023 Python_Bot - 1.0.5-1
- Package Spec generated