Feature Toggles
This repo provides functionality for feature toggles in python code.
What does this package do?
- It allows to access the configured toggles like
toggles.feature1
- It logs all uses of the toggle
- It logs a warning when toggles have exceeded their maximum lifetime
How to use
Configure the toggles
The toggles are configured in yaml.
feature1:
value: true
name: New Thing Toggler
description: This toggles the new thing on
jira: DAN-123
creation_date: 2020-10-12
max_lifetime: 14
Required fields:
value
: a boolean setting the value of the togglename
: a human readable name for the togglejira
: the JIRA ticket that this toggle is linked to.creation_date
: the date this toggle is introduced.
Optional fields:
description
: A description of the purpose and use of the togglemax_lifetime
: The number of days this toggle is supposed to be in the code.
A warning will be logged when this lifetime is exceeded. The default is 14 days.
Declare the toggles
To use the configured toggles they need to be declared in the code like this:
from featuretoggles import TogglesList
class ReleaseToggles(TogglesList):
feature1: bool
feature2: bool
toggles = ReleaseToggles('toggles.yaml')
The toggle can be used to gate particular bits of code like this:
if toggles.feature1:
print("Feature One Activated")
else:
print("Feature One Deactivated")
Demo
See demo for a working example