8000 ref: Remove fast_serialize experiment (#543) · etherscan-io/sentry-python@e1b55a1 · GitHub
[go: up one dir, main page]

Skip to content

Commit e1b55a1

Browse files
authored
ref: Remove fast_serialize experiment (getsentry#543)
* ref: Remove fast_serialize experiment * fix: Fix CI
1 parent ad23d1c commit e1b55a1

File tree

21 files changed

+99
-243
lines changed

21 files changed

+99
-243
lines changed

sentry_sdk/client.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
disable_capture_event,
1414
logger,
1515
)
16-
from sentry_sdk.serializer import serialize, partial_serialize
16+
from sentry_sdk.serializer import serialize
1717
from sentry_sdk.transport import make_transport
1818
from sentry_sdk.consts import DEFAULT_OPTIONS, SDK_INFO, ClientConstructor
1919
from sentry_sdk.integrations import setup_integrations
@@ -124,12 +124,8 @@ def _prepare_event(
124124
):
125125
# type: (...) -> Optional[Event]
126126

127-
client = self # type: Client # type: ignore
128-
129127
if event.get("timestamp") is None:
130-
event["timestamp"] = partial_serialize(
131-
client, datetime.utcnow(), is_databag=False, should_repr_strings=False
132-
)
128+
event["timestamp"] = datetime.utcnow()
133129

134130
hint = dict(hint or ()) # type: Hint
135131

@@ -175,9 +171,7 @@ def _prepare_event(
175171

176172
# Postprocess the event here so that annotated types do
177173
# generally not surface in before_send
178-
if event is not None and not self.options["_experiments"].get(
179-
"fast_serialize", False
180-
):
174+
if event is not None:
181175
event = serialize(event)
182176

183177
before_send = self.options["before_send"]

sentry_sdk/hub.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from sentry_sdk.scope import Scope
1010
from sentry_sdk.client import Client
1111
from sentry_sdk.tracing import Span
12-
from sentry_sdk.serializer import partial_serialize
1312
from sentry_sdk.utils import (
1413
exc_info_from_error,
1514
event_from_exception,
@@ -281,8 +280,6 @@ def bind_client(
281280
"""Binds a new client to the hub."""
282281
top = self._stack[-1]
283282
self._stack[-1] = (new, top[1])
284-
if not new or new.options["_experiments"].get("fast_serialize", False):
285-
top[1].clear_breadcrumbs()
286283

287284
def capture_event(
288285
self,
@@ -315,14 +312,7 @@ def capture_message(
315312
return None
316313
if level is None:
317314
level = "info"
318-
return self.capture_event(
319-
{
320-
"message": partial_serialize(
321-
self.client, message, should_repr_strings=False
322-
),
323-
"level": level,
324-
}
325-
)
315+
return self.capture_event({"message": message, "level": level})
326316

327317
def capture_exception(
328318
self, error=None # type: Optional[Union[BaseException, ExcInfo]]
@@ -394,8 +384,6 @@ def add_breadcrumb(
394384
if crumb.get("type") is None:
395385
crumb["type"] = "default"
396386

397-
crumb = partial_serialize(client, crumb, should_repr_strings=False)
398-
399387
if client.options["before_breadcrumb"] is not None:
400388
new_crumb = client.options["before_breadcrumb"](crumb, hint)
401389
else:

sentry_sdk/integrations/_wsgi_common.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import json
22

3-
from sentry_sdk.serializer import partial_serialize
43
from sentry_sdk.hub import Hub, _should_send_default_pii
54
from sentry_sdk.utils import AnnotatedValue
65
from sentry_sdk._compat import text_type, iteritems
@@ -83,9 +82,7 @@ def extract_into_event(self, event):
8382
if data is not None:
8483
request_info["data"] = data
8584

86-
event["request"] = partial_serialize(
87-
client, request_info, should_repr_strings=False
88-
)
85+
event["request"] = request_info
8986

9087
def content_length(self):
9188
# type: () -> int

sentry_sdk/integrations/aiohttp.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
_filter_headers,
1010
request_body_within_bounds,
1111
)
12-
from sentry_sdk.serializer import partial_serialize
1312
from sentry_sdk.tracing import Span
1413
from sentry_sdk.utils import (
1514
capture_internal_exceptions,
@@ -141,11 +140,7 @@ def aiohttp_processor(
141140
request_info["env"] = {"REMOTE_ADDR": request.remote}
142141

143142
hub = Hub.current
144-
request_info["headers"] = partial_serialize(
145-
hub.client,
146-
_filter_headers(dict(request.headers)),
147-
should_repr_strings=False,
148-
)
143+
request_info["headers"] = _filter_headers(dict(request.headers))
149144

150145
# Just attach raw data here if it is within bounds, if available.
151146
# Unfortunately there's no way to get structured data from aiohttp

sentry_sdk/integrations/asgi.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from sentry_sdk._types import MYPY
1111
from sentry_sdk.hub import Hub, _should_send_default_pii
1212
from sentry_sdk.integrations._wsgi_common import _filter_headers
13-
from sentry_sdk.serializer import partial_serialize
1413
from sentry_sdk.utils import ContextVar, event_from_exception, transaction_from_function
1514
from sentry_sdk.tracing import Span
1615

@@ -114,9 +113,7 @@ def event_processor(self, event, hi EED3 nt, asgi_scope):
114113
# an endpoint, overwrite our path-based transaction name.
115114
event["transaction"] = self.get_transaction(asgi_scope)
116115

117-
event["request"] = partial_serialize(
118-
Hub.current.client, request_info, should_repr_strings=False
119-
)
116+
event["request"] = request_info
120117

121118
return event
122119

sentry_sdk/integrations/aws_lambda.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
from sentry_sdk.hub import Hub, _should_send_default_pii
44
from sentry_sdk._compat import reraise
5-
from sentry_sdk.serializer import partial_serialize
65
from sentry_sdk.utils import (
76
AnnotatedValue,
87
capture_internal_exceptions,
@@ -199,9 +198,7 @@ def event_processor(event, hint):
199198
if ip is not None:
200199
user_info["ip_address"] = ip
201200

202-
event["request"] = partial_serialize(
203-
Hub.current.client, request, should_repr_strings=False
204-
)
201+
event["request"] = request
205202

206203
return event
207204

sentry_sdk/integrations/celery.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
)
1212

1313
from sentry_sdk.hub import Hub
14-
from sentry_sdk.serializer import partial_serialize
1514
from sentry_sdk.utils import capture_internal_exceptions, event_from_exception
1615
from sentry_sdk.tracing import Span
1716
from sentry_sdk._compat import reraise
@@ -161,27 +160,22 @@ def _make_event_processor(task, uuid, args, kwargs, request=None):
161160
# type: (Any, Any, Any, Any, Optional[Any]) -> EventProcessor
162161
def event_processor(event, hint):
163162
# type: (Event, Hint) -> Optional[Event]
164-
client = Hub.current.client
165163

166164
with capture_internal_exceptions():
167165
extra = event.setdefault("extra", {})
168-
extra["celery-job"] = partial_serialize(
169-
client,
170-
{"task_name": task.name, "args": args, "kwargs": kwargs},
171-
should_repr_strings=False,
172-
)
166+
extra["celery-job"] = {
167+
"task_name": task.name,
168+
"args": args,
169+
"kwargs": kwargs,
170+
}
173171

174172
if "exc_info" in hint:
175173
with capture_internal_exceptions():
176174
if issubclass(hint["exc_info"][0], SoftTimeLimitExceeded):
177175
event["fingerprint"] = [
178176
"celery",
179177
"SoftTimeLimitExceeded",
180-
partial_serialize(
181-
client,
182-
getattr(task, "name", task),
183-
should_repr_strings=False,
184-
),
178+
getattr(task, "name", task),
185179
]
186180

187181
return event

sentry_sdk/integrations/logging.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import datetime
55

66
from sentry_sdk.hub import Hub
7-
from sentry_sdk.serializer import partial_serialize
87
from sentry_sdk.utils import (
98
to_string,
109
event_from_exception,
@@ -202,17 +201,10 @@ def _emit(self, record):
202201

203202
hint["log_record"] = record
204203

205-
client = Hub.current.client
206-
207204
event["level"] = _logging_to_event_level(record.levelname)
208205
event["logger"] = record.name
209-
event["logentry"] = {
210-
"message": to_string(record.msg),
211-
"params": partial_serialize(client, record.args, should_repr_strings=False),
212-
}
213-
event["extra"] = partial_serialize(
214-
client, _extra_from_record(record), should_repr_strings=False
215-
)
206+
event["logentry"] = {"message": to_string(record.msg), "params": record.args}
207+
event["extra"] = _extra_from_record(record)
216208

217209
hub.capture_event(event, hint=hint)
218210

sentry_sdk/integrations/rq.py

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from sentry_sdk.hub import Hub
66
from sentry_sdk.integrations import Integration
77
from sentry_sdk.tracing import Span
8-
from sentry_sdk.serializer import partial_serialize
98
from sentry_sdk.utils import capture_internal_exceptions, event_from_exception
109

1110
from rq.timeouts import JobTimeoutException
@@ -102,17 +101,13 @@ def event_processor(event, hint):
102101
if job is not None:
103102
with capture_internal_exceptions():
104103
extra = event.setdefault("extra", {})
105-
extra["rq-job"] = partial_serialize(
106-
Hub.current.client,
107-
{
108-
"job_id": job.id,
109-
"func": job.func_name,
110-
"args": job.args,
111-
"kwargs": job.kwargs,
112-
"description": job.description,
113-
},
114-
should_repr_strings=False,
115-
)
104+
extra["rq-job"] = {
105+
"job_id": job.id,
106+
"func": job.func_name,
107+
"args": job.args,
108+
"kwargs": job.kwargs,
109+
"description": job.description,
110+
}
116111

117112
if "exc_info" in hint:
118113
with capture_internal_exceptions():

sentry_sdk/integrations/tornado.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from inspect import iscoroutinefunction
33

44
from sentry_sdk.hub import Hub, _should_send_default_pii
5-
from sentry_sdk.serializer import partial_serialize
65
from sentry_sdk.utils import (
76
HAS_REAL_CONTEXTVARS,
87
event_from_exception,
@@ -152,9 +151,7 @@ def tornado_processor(event, hint):
152151
request.path,
153152
)
154153

155-
request_info["query_string"] = partial_serialize(
156-
Hub.current.client, request.query, should_repr_strings=False
157-
)
154+
request_info["query_string"] = request.query
158155
request_info["method"] = request.method
159156
request_info["env"] = {"REMOTE_ADDR": request.remote_ip}
160157
request_info["headers"] = _filter_headers(dict(request.headers))

sentry_sdk/scope.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@
33
from functools import wraps
44
from itertools import chain
55

6-
import sentry_sdk
7-
86
from sentry_sdk.utils import logger, capture_internal_exceptions
9-
from sentry_sdk.serializer import partial_serialize
10-
11-
127
from sentry_sdk._types import MYPY
138

149
if MYPY:
@@ -176,9 +171,7 @@ def set_tag(
176171
):
177172
# type: (...) -> None
178173
"""Sets a tag for a key to a specific value."""
179-
self._tags[key] = partial_serialize(
180-
sentry_sdk.Hub.current.client, value, should_repr_strings=False
181-
)
174+
self._tags[key] = value
182175

183176
def remove_tag(
184177
self, key # type: str
@@ -194,9 +187,7 @@ def set_context(
194187
):
195188
# type: (...) -> None
196189
"""Binds a context at a certain key to a specific value."""
197-
self._contexts[key] = partial_serialize(
198-
sentry_sdk.Hub.current.client, value, should_repr_strings=False
199-
)
190+
self._contexts[key] = value
200191

201192
def remove_context(
202193
self, key # type: str
@@ -212,9 +203,7 @@ def set_extra(
212203
):
213204
# type: (...) -> None
214205
"""Sets an extra key to a specific value."""
215-
self._extras[key] = partial_serialize(
216-
sentry_sdk.Hub.current.client, value, should_repr_strings=False
217-
)
206+
self._extras[key] = value
218207

219208
def remove_extra(
220209
self, key # type: str

sentry_sdk/serializer.py

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
if MYPY:
1818
from types import TracebackType
1919

20-
import sentry_sdk
21-
2220
from typing import Any
2321
from typing import Dict
2422
from typing import List
@@ -330,24 +328,3 @@ def _serialize_node_impl(
330328
return rv
331329
finally:
332330
disable_capture_event.set(False)
333-
334-
335-
def partial_serialize(client, data, should_repr_strings=True, is_databag=True):
336-
# type: (Optional[sentry_sdk.Client], Any, bool, bool) -> Any
337-
is_recursive = disable_capture_event.get(None)
338-
if is_recursive:
339-
return CYCLE_MARKER
340-
341-
if client is not None and client.options["_experiments"].get(
342-
"fast_serialize", False
343-
):
344-
data = serialize(
345-
data, should_repr_strings=should_repr_strings, is_databag=is_databag
346-
)
347-
348-
if isinstance(data, dict):
349-
# TODO: Bring back _meta annotations
350-
data.pop("_meta", None)
351-
return data
352-
353-
return data

0 commit comments

Comments
 (0)
0