Skip to content

Commit c45aa01

Browse files
committed
make everything work together and remove annotateddeque
1 parent 06216d8 commit c45aa01

File tree

4 files changed

+7
-70
lines changed

4 files changed

+7
-70
lines changed

sentry_sdk/_types.py

Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import TYPE_CHECKING, Deque, TypeVar, Union
1+
from typing import TYPE_CHECKING, TypeVar, Union
22

33

44
# Re-exported for compat, since code out there in the wild might use this variable.
@@ -34,7 +34,7 @@ def __str__(self):
3434
return str({"value": str(self.value), "metadata": str(self.metadata)})
3535

3636
def __repr__(self):
37-
return str(self)
37+
return self
3838

3939
def __len__(self):
4040
return len(self.value)
@@ -95,52 +95,6 @@ def substituted_because_contains_sensitive_data(cls):
9595
Annotated = Union[AnnotatedValue, T]
9696

9797

98-
class AnnotatedDeque(AnnotatedValue):
99-
"""
100-
Meta information for a data field in the event payload.
101-
This is to tell Relay that we have tampered with the fields value.
102-
See:
103-
https://github.com/getsentry/relay/blob/be12cd49a0f06ea932ed9b9f93a655de5d6ad6d1/relay-general/src/types/meta.rs#L407-L423
104-
"""
105-
106-
__slots__ = ("value", "metadata")
107-
108-
def __init__(self, value, metadata):
109-
# type: (Deque[Any], Dict[str, Any]) -> None
110-
self.value = value
111-
self.metadata = metadata
112-
113-
def __eq__(self, other):
114-
# type: (Any) -> bool
115-
if not isinstance(other, AnnotatedValue):
116-
return False
117-
118-
return self.value == other.value and self.metadata == other.metadata
119-
120-
def append(self, other):
121-
# type: (Any) -> None
122-
self.value.append(other)
123-
124-
def extend(self, other):
125-
# type: (Any) -> None
126-
self.value.extend(other)
127-
128-
def popleft(self):
129-
self.value.popleft()
130-
131-
def __len__(self):
132-
return len(self.value)
133-
134-
@classmethod
135-
def truncated(cls, value, n_truncated):
136-
# type: (Deque[Any], int) -> AnnotatedValue
137-
"""Data was removed because the number of elements exceeded the maximum limit."""
138-
return AnnotatedDeque(
139-
value=value,
140-
metadata={"len": [n_truncated]}, # Remark
141-
)
142-
143-
14498
if TYPE_CHECKING:
14599
from collections.abc import Container, MutableMapping, Sequence
146100

sentry_sdk/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,8 +530,9 @@ def _prepare_event(
530530
previous_total_spans = spans_before + dropped_spans
531531
if scope._n_breadcrumbs_truncated > 0:
532532
previous_total_breadcrumbs = (
533-
len(event["breadcrumbs"]) + scope._n_breadcrumbs_truncated
533+
len(event["breadcrumbs"]["values"]) + scope._n_breadcrumbs_truncated
534534
)
535+
logging.debug(previous_total_breadcrumbs)
535536

536537
if (
537538
self.options["attach_stacktrace"]

sentry_sdk/scope.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from functools import wraps
1111
from itertools import chain
1212

13-
from sentry_sdk._types import AnnotatedValue
1413
from sentry_sdk.attachments import Attachment
1514
from sentry_sdk.consts import DEFAULT_MAX_BREADCRUMBS, FALSE_VALUES, INSTRUMENTER
1615
from sentry_sdk.feature_flags import FlagBuffer, DEFAULT_FLAG_CAPACITY
@@ -1394,22 +1393,6 @@ def _apply_breadcrumbs_to_event(self, event, hint, options):
13941393
logger.debug("Error when sorting breadcrumbs", exc_info=err)
13951394
pass
13961395

1397-
# Add annotation that breadcrumbs were truncated
1398-
logging.debug(
1399-
f"i am here outside of the truncated thing, {self._n_breadcrumbs_truncated} and {len(self._breadcrumbs)}"
1400-
)
1401-
if self._n_breadcrumbs_truncated:
1402-
logging.debug("i am here in the truncated thing")
1403-
original_length = (
1404-
len(event["breadcrumbs"]["values"]) + self._n_breadcrumbs_truncated
1405-
)
1406-
logging.debug(
1407-
f"in the truncated thing, the original_lenght is {original_length}"
1408-
)
1409-
event["breadcrumbs"] = AnnotatedValue(
1410-
event.get("breadcrumbs", []), {"len": original_length}
1411-
)
1412-
14131396
def _apply_user_to_event(self, event, hint, options):
14141397
# type: (Event, Hint, Optional[Dict[str, Any]]) -> None
14151398
if event.get("user") is None and self._user is not None:

tests/test_scrubber.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,13 @@ def test_stack_var_scrubbing(sentry_init, capture_events):
120120

121121
def test_breadcrumb_extra_scrubbing(sentry_init, capture_events):
122122
sentry_init(max_breadcrumbs=2)
123-
breakpoint()
123+
# breakpoint()
124124
events = capture_events()
125125
logger.info("breadcrumb 1", extra=dict(foo=1, password="secret"))
126126
logger.info("breadcrumb 2", extra=dict(bar=2, auth="secret"))
127127
logger.info("breadcrumb 3", extra=dict(foobar=3, password="secret"))
128128
logger.critical("whoops", extra=dict(bar=69, auth="secret"))
129129

130-
print(events)
131130
(event,) = events
132131

133132
assert event["extra"]["bar"] == 69
@@ -139,11 +138,11 @@ def test_breadcrumb_extra_scrubbing(sentry_init, capture_events):
139138

140139
assert event["_meta"]["extra"]["auth"] == {"": {"rem": [["!config", "s"]]}}
141140
assert event["_meta"]["breadcrumbs"] == {
141+
"": {"len": 3},
142142
"values": {
143-
"": {"len": [4]},
144143
"0": {"data": {"auth": {"": {"rem": [["!config", "s"]]}}}},
145144
"1": {"data": {"password": {"": {"rem": [["!config", "s"]]}}}},
146-
}
145+
},
147146
}
148147

149148

0 commit comments

Comments
 (0)