See
# This is more or less an arbitrary large-ish value for now, so that we allow
# pretty long strings (like LLM prompts), but still have *some* upper limit
# until we verify that removing the trimming completely is safe.
DEFAULT_MAX_VALUE_LENGTH = 100_000
which is used in
def strip_string (value , max_length = None ):
# type: (str, Optional[int]) -> Union[AnnotatedValue, str]
if not value :
return value
if max_length is None :
max_length = DEFAULT_MAX_VALUE_LENGTH
byte_size = _get_size_in_bytes (value )
text_size = len (value )
if byte_size is not None and byte_size > max_length :
# truncate to max_length bytes, preserving code points
truncated_value = _truncate_by_bytes (value , max_length )
elif text_size is not None and text_size > max_length :
# fallback to truncating by string length
truncated_value = value [: max_length - 3 ] + "..."
else :
return value
return AnnotatedValue (
value = truncated_value ,
metadata = {
"len" : byte_size or text_size ,
"rem" : [["!limit" , "x" , max_length - 3 , max_length ]],
},
)
The strip_string() function is called in
sentry_sdk.utils.get_lines_from_file() for obtaining pre- and post context source lines; and
sentry_sdk.serializer.serialize(), which is used to serialize events.
Reactions are currently unavailable
See
sentry-python/sentry_sdk/consts.py
Lines 6 to 9 in e9738f6
which is used in
sentry-python/sentry_sdk/utils.py
Lines 1208 to 1234 in 2d49b74
The
strip_string()function is called insentry_sdk.utils.get_lines_from_file()for obtaining pre- and post context source lines; andsentry_sdk.serializer.serialize(), which is used to serialize events.