| Viewing file:  dedupe.py (1.16 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
from sentry_sdk.hub import Hubfrom sentry_sdk.utils import ContextVar
 from sentry_sdk.integrations import Integration
 from sentry_sdk.scope import add_global_event_processor
 
 from sentry_sdk._types import TYPE_CHECKING
 
 if TYPE_CHECKING:
 from typing import Optional
 
 from sentry_sdk._types import Event, Hint
 
 
 class DedupeIntegration(Integration):
 identifier = "dedupe"
 
 def __init__(self):
 # type: () -> None
 self._last_seen = ContextVar("last-seen")
 
 @staticmethod
 def setup_once():
 # type: () -> None
 @add_global_event_processor
 def processor(event, hint):
 # type: (Event, Optional[Hint]) -> Optional[Event]
 if hint is None:
 return event
 
 integration = Hub.current.get_integration(DedupeIntegration)
 
 if integration is None:
 return event
 
 exc_info = hint.get("exc_info", None)
 if exc_info is None:
 return event
 
 exc = exc_info[1]
 if integration._last_seen.get(None) is exc:
 return None
 integration._last_seen.set(exc)
 return event
 
 |