aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/unleash.py
diff options
context:
space:
mode:
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.py34
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