Skip to content

Commit 5205418

Browse files
committed
Do not require a DSN to be set to use the envelope pretty print transport
1 parent 1471ea2 commit 5205418

1 file changed

Lines changed: 27 additions & 14 deletions

File tree

sentry_sdk/transport.py

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,16 +1084,21 @@ def _make_pool(
10841084

10851085

10861086
class _EnvelopePrinterTransport(Transport):
1087-
"""Wraps another transport, printing envelope contents to the SDK debug logger before sending."""
1087+
"""Prints envelope contents to the SDK debug logger, optionally wrapping another transport."""
10881088

1089-
def __init__(self, transport: "Transport") -> None:
1090-
Transport.__init__(self, options=transport.options)
1089+
def __init__(self, transport: "Optional[Transport]" = None) -> None:
1090+
if transport is not None:
1091+
Transport.__init__(self, options=transport.options)
1092+
self.parsed_dsn = transport.parsed_dsn
1093+
else:
1094+
Transport.__init__(self)
10911095
self._inner = transport
1092-
self.parsed_dsn = transport.parsed_dsn
10931096

10941097
@property # type: ignore[misc]
10951098
def __class__(self) -> type:
1096-
return self._inner.__class__
1099+
if self._inner is not None:
1100+
return self._inner.__class__
1101+
return _EnvelopePrinterTransport
10971102

10981103
def capture_envelope(self, envelope: "Envelope") -> None:
10991104
try:
@@ -1122,17 +1127,20 @@ def capture_envelope(self, envelope: "Envelope") -> None:
11221127
except Exception:
11231128
pass
11241129

1125-
self._inner.capture_envelope(envelope)
1130+
if self._inner is not None:
1131+
self._inner.capture_envelope(envelope)
11261132

11271133
def flush(
11281134
self,
11291135
timeout: float,
11301136
callback: "Optional[Any]" = None,
11311137
) -> "Any":
1132-
return self._inner.flush(timeout, callback)
1138+
if self._inner is not None:
1139+
return self._inner.flush(timeout, callback)
11331140

11341141
def kill(self) -> "Any":
1135-
return self._inner.kill()
1142+
if self._inner is not None:
1143+
return self._inner.kill()
11361144

11371145
def record_lost_event(
11381146
self,
@@ -1142,13 +1150,20 @@ def record_lost_event(
11421150
*,
11431151
quantity: int = 1,
11441152
) -> None:
1145-
self._inner.record_lost_event(reason, data_category, item, quantity=quantity)
1153+
if self._inner is not None:
1154+
self._inner.record_lost_event(
1155+
reason, data_category, item, quantity=quantity
1156+
)
11461157

11471158
def is_healthy(self) -> bool:
1148-
return self._inner.is_healthy()
1159+
if self._inner is not None:
1160+
return self._inner.is_healthy()
1161+
return True
11491162

11501163
def __getattr__(self, name: str) -> "Any":
1151-
return getattr(self._inner, name)
1164+
if self._inner is not None:
1165+
return getattr(self._inner, name)
1166+
raise AttributeError(name)
11521167

11531168

11541169
class _FunctionTransport(Transport):
@@ -1237,9 +1252,7 @@ def make_transport(options: "Dict[str, Any]") -> "Optional[Transport]":
12371252
if transport is None and options["dsn"]:
12381253
transport = transport_cls(options)
12391254

1240-
if transport is not None and os.environ.get(
1241-
"SENTRY_PRINT_ENVELOPES", ""
1242-
).lower() in ("1", "true", "yes"):
1255+
if os.environ.get("SENTRY_PRINT_ENVELOPES", "").lower() in ("1", "true", "yes"):
12431256
transport = _EnvelopePrinterTransport(transport)
12441257

12451258
return transport

0 commit comments

Comments
 (0)