Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/sentry_sdk/integrations/modules.py: 38%
35 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 __future__ import absolute_import
3from sentry_sdk.hub import Hub
4from sentry_sdk.integrations import Integration
5from sentry_sdk.scope import add_global_event_processor
7from sentry_sdk._types import MYPY
9if MYPY: 9 ↛ 10line 9 didn't jump to line 10, because the condition on line 9 was never true
10 from typing import Any
11 from typing import Dict
12 from typing import Tuple
13 from typing import Iterator
15 from sentry_sdk._types import Event
18_installed_modules = None
21def _generate_installed_modules():
22 # type: () -> Iterator[Tuple[str, str]]
23 try:
24 import pkg_resources
25 except ImportError:
26 return
28 for info in pkg_resources.working_set:
29 yield info.key, info.version
32def _get_installed_modules():
33 # type: () -> Dict[str, str]
34 global _installed_modules
35 if _installed_modules is None:
36 _installed_modules = dict(_generate_installed_modules())
37 return _installed_modules
40class ModulesIntegration(Integration):
41 identifier = "modules"
43 @staticmethod
44 def setup_once():
45 # type: () -> None
46 @add_global_event_processor
47 def processor(event, hint):
48 # type: (Event, Any) -> Dict[str, Any]
49 if event.get("type") == "transaction":
50 return event
52 if Hub.current.get_integration(ModulesIntegration) is None:
53 return event
55 event["modules"] = _get_installed_modules()
56 return event