diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/sentry_sdk/integrations/unleash.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/sentry_sdk/integrations/unleash.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/unleash.py b/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/unleash.py new file mode 100644 index 00000000..873f36c6 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/unleash.py @@ -0,0 +1,34 @@ +from functools import wraps +from typing import Any + +import sentry_sdk +from sentry_sdk.integrations import Integration, DidNotEnable + +try: + from UnleashClient import UnleashClient +except ImportError: + raise DidNotEnable("UnleashClient is not installed") + + +class UnleashIntegration(Integration): + identifier = "unleash" + + @staticmethod + def setup_once(): + # type: () -> None + # Wrap and patch evaluation methods (class methods) + old_is_enabled = UnleashClient.is_enabled + + @wraps(old_is_enabled) + def sentry_is_enabled(self, feature, *args, **kwargs): + # type: (UnleashClient, str, *Any, **Any) -> Any + enabled = old_is_enabled(self, feature, *args, **kwargs) + + # We have no way of knowing what type of unleash feature this is, so we have to treat + # it as a boolean / toggle feature. + flags = sentry_sdk.get_current_scope().flags + flags.set(feature, enabled) + + return enabled + + UnleashClient.is_enabled = sentry_is_enabled # type: ignore |