Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/sentry_sdk/integrations/dedupe.py: 41%
29 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1from sentry_sdk.hub import Hub
2from sentry_sdk.utils import ContextVar
3from sentry_sdk.integrations import Integration
4from sentry_sdk.scope import add_global_event_processor
6from sentry_sdk._types import MYPY
8if MYPY: 8 ↛ 9line 8 didn't jump to line 9, because the condition on line 8 was never true
9 from typing import Optional
11 from sentry_sdk._types import Event, Hint
14class DedupeIntegration(Integration):
15 identifier = "dedupe"
17 def __init__(self):
18 # type: () -> None
19 self._last_seen = ContextVar("last-seen")
21 @staticmethod
22 def setup_once():
23 # type: () -> None
24 @add_global_event_processor
25 def processor(event, hint):
26 # type: (Event, Optional[Hint]) -> Optional[Event]
27 if hint is None:
28 return event
30 integration = Hub.current.get_integration(DedupeIntegration)
32 if integration is None:
33 return event
35 exc_info = hint.get("exc_info", None)
36 if exc_info is None:
37 return event
39 exc = exc_info[1]
40 if integration._last_seen.get(None) is exc:
41 return None
42 integration._last_seen.set(exc)
43 return event