1111 convert_types ,
1212 handle_in_app ,
1313 get_type_name ,
14- pop_hidden_keys ,
1514 Dsn ,
1615)
1716from .transport import Transport
@@ -83,12 +82,12 @@ def disabled(cls):
8382 """Creates a guarnateed to be disabled client."""
8483 return cls (NO_DSN )
8584
86- def _prepare_event (self , event , scope ):
85+ def _prepare_event (self , event , scope , hint = None ):
8786 if event .get ("timestamp" ) is None :
8887 event ["timestamp" ] = datetime .utcnow ()
8988
9089 if scope is not None :
91- event = scope .apply_to_event (event )
90+ event = scope .apply_to_event (event , hint )
9291 if event is None :
9392 return
9493
@@ -111,16 +110,14 @@ def _prepare_event(self, event, scope):
111110 event = before_send (event )
112111
113112 if event is not None :
114- pop_hidden_keys (event )
115113 event = flatten_metadata (event )
116114 event = convert_types (event )
117115
118116 return event
119117
120- def _is_ignored_error (self , event ):
121- exc_info = event .get ("__sentry_exc_info" )
122-
123- if not exc_info or exc_info [0 ] is None :
118+ def _is_ignored_error (self , event , hint = None ):
119+ exc_info = hint and hint .exc_info or None
120+ if exc_info is None :
124121 return False
125122
126123 type_name = get_type_name (exc_info [0 ])
@@ -138,27 +135,27 @@ def _is_ignored_error(self, event):
138135
139136 return False
140137
141- def _should_capture (self , event , scope = None ):
138+ def _should_capture (self , event , scope = None , hint = None ):
142139 if (
143140 self .options ["sample_rate" ] < 1.0
144141 and random .random () >= self .options ["sample_rate" ]
145142 ):
146143 return False
147144
148- if self ._is_ignored_error (event ):
145+ if self ._is_ignored_error (event , hint ):
149146 return False
150147
151148 return True
152149
153- def capture_event (self , event , scope = None ):
150+ def capture_event (self , event , scope = None , hint = None ):
154151 """Captures an event."""
155152 if self ._transport is None :
156153 return
157154 rv = event .get ("event_id" )
158155 if rv is None :
159156 event ["event_id" ] = rv = uuid .uuid4 ().hex
160- if self ._should_capture (event , scope ):
161- event = self ._prepare_event (event , scope )
157+ if self ._should_capture (event , scope , hint ):
158+ event = self ._prepare_event (event , scope , hint )
162159 if event is not None :
163160 self ._transport .capture_event (event )
164161 return True
0 commit comments