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

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 

5 

6from sentry_sdk._types import MYPY 

7 

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 

10 

11 from sentry_sdk._types import Event, Hint 

12 

13 

14class DedupeIntegration(Integration): 

15 identifier = "dedupe" 

16 

17 def __init__(self): 

18 # type: () -> None 

19 self._last_seen = ContextVar("last-seen") 

20 

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 

29 

30 integration = Hub.current.get_integration(DedupeIntegration) 

31 

32 if integration is None: 

33 return event 

34 

35 exc_info = hint.get("exc_info", None) 

36 if exc_info is None: 

37 return event 

38 

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