Feature FlagsΒΆ
Runtime configurable feature flags.
Define flags in code either in a code block:
if feature_flags.get("MY-FLAG"):
pass
Or as an A/B switch:
instance = feature_flags.a_or_b("MY-FLAG", option_a="foo", option_b="bar")
Tip
option_a
and option_b
parameters can also be callables.
Or by using as a decorator:
@feature_flags.if_enabled("MY-FLAG", default=True)
def my_feature(arg):
pass
Define flags in the applications default_settings
:
FEATURE_FLAGS = {
"MY-FLAG": True,
"OTHER-FLAG": False,
}
The flag can then be enabled/disabled in the environment:
PYAPP_FLAG_MY_FLAG = yes
PYAPP_FLAG_OTHER_FLAG = off
Note
The flag name is translated into upper-case with underscores
Or from the command line:
my_app --enable-flag MY-FLAG --disable-flag OTHER-FLAG