djblets.features.checkers¶
-
class
BaseFeatureChecker
[source]¶ Bases:
object
Base class for a feature checker.
Subclasses are responsible for overriding
is_feature_enabled()
and returning a suitable result for any given feature.-
min_enabled_level
[source]¶ The minimum feature level to enable by default.
If
settings.MIN_ENABLED_FEATURE_LEVEL
is set, that value will be used.If
settings.DEBUG
isTrue
, then anythingBETA
or higher will be enabled by default.If
settings.DEBUG
isFalse
, then anythingSTABLE
or higher will be enabled by default.Subclasses can override this to provide custom logic.
-
-
class
SettingsFeatureChecker
[source]¶ Bases:
djblets.features.checkers.BaseFeatureChecker
Feature checker that checks against a SiteConfiguration.
This feature checker will check if a feature is enabled by checking the the
settings.ENABLED_FEATURES
dictionary. This key can be changed by subclassing and modifyingsettings_key
.
-
class
SiteConfigFeatureChecker
[source]¶ Bases:
djblets.features.checkers.SettingsFeatureChecker
Feature checker that checks against a SiteConfiguration.
This feature checker will check two places to see if a feature is enabled:
- The
enabled_features
dictionary in aSiteConfiguration
settings. - The
settings.ENABLED_FEATURES
dictionary.
These keys can be changed by subclassing and modifying
siteconfig_key
andsettings_key
.-
is_feature_enabled
(feature_id, **kwargs)[source]¶ Return whether a feature is enabled for a given ID.
The feature will be enabled if its feature ID is set to
True
in either theenabled_features
key in aSiteConfiguration
or in asettings.ENABLED_FEATURES
dictionary.Parameters: Returns: A boolean value indicating if the feature is enabled.
Return type:
- The
-
set_feature_checker
(feature_checker)[source]¶ Set the feature checker to use for all features.
This can be called to manually configure a feature checker, or to unset the feature checker in order to recompute it.
Parameters: feature_checker (BaseFeatureChecker) – The new feature checker to set, or None
to unset.
-
get_feature_checker
()[source]¶ Return the configured feature checker instance.
The class to use is configured through the
settings.FEATURE_CHECKER
setting, which must be a full module and class path. If not specified,SettingsFeatureChecker
will be used.The same feature checker instance will be returned each time this is called.
Returns: A feature checker instance. Return type: BaseFeatureChecker Raises: django.core.exceptions.ImproperlyConfigured
– There was an error either in thesettings.FEATURE_CHECKER
value or in instantiating the feature checker.