REDROOM
PHP 8.3.31
Path:
Logout
Edit File
Size: 2.07 KB
Close
/opt/hc_python/lib64/python3.12/site-packages/sentry_sdk/integrations/openai_agents/patches/error_tracing.py
Text
Base64
from functools import wraps from typing import TYPE_CHECKING import sentry_sdk from sentry_sdk.consts import SPANSTATUS if TYPE_CHECKING: from typing import Any def _patch_error_tracing() -> None: """ Patches agents error tracing function to inject our span error logic when a tool execution fails. In newer versions, the function is at: agents.util._error_tracing.attach_error_to_current_span In older versions, it was at: agents._utils.attach_error_to_current_span This works even when the module or function doesn't exist. """ error_tracing_module = None # Try newer location first (agents.util._error_tracing) try: from agents.util import _error_tracing error_tracing_module = _error_tracing except (ImportError, AttributeError): pass # Try older location (agents._utils) if error_tracing_module is None: try: import agents._utils error_tracing_module = agents._utils except (ImportError, AttributeError): # Module doesn't exist in either location, nothing to patch return # Check if the function exists if not hasattr(error_tracing_module, "attach_error_to_current_span"): return original_attach_error = error_tracing_module.attach_error_to_current_span @wraps(original_attach_error) def sentry_attach_error_to_current_span( error: "Any", *args: "Any", **kwargs: "Any" ) -> "Any": """ Wraps agents' error attachment to also set Sentry span status to error. This allows us to properly track tool execution errors even though the agents library swallows exceptions. """ # Set the current Sentry span to errored current_span = sentry_sdk.get_current_span() if current_span is not None: current_span.set_status(SPANSTATUS.INTERNAL_ERROR) # Call the original function return original_attach_error(error, *args, **kwargs) error_tracing_module.attach_error_to_current_span = ( sentry_attach_error_to_current_span )
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 6
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__pycache__
DIR
-
drwxr-xr-x
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
agent_run.py
11.66 KB
lrw-r--r--
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
error_tracing.py
2.07 KB
lrw-r--r--
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
models.py
6.95 KB
lrw-r--r--
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
runner.py
7.81 KB
lrw-r--r--
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
tools.py
2.76 KB
lrw-r--r--
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
425 B
lrw-r--r--
2026-06-11 06:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).