|
29 | 29 | from ddtrace.trace import Tracer |
30 | 30 |
|
31 | 31 |
|
| 32 | +ACQUIRE_RELEASE_CO_NAMES: List[str] = ["_acquire", "_release"] |
| 33 | +ENTER_EXIT_CO_NAMES: List[str] = ["acquire", "release", "__enter__", "__exit__", "__aenter__", "__aexit__"] |
| 34 | + |
| 35 | + |
32 | 36 | def _current_thread() -> Tuple[int, str]: |
33 | 37 | thread_id: int = _thread.get_ident() |
34 | 38 | return thread_id, _threading.get_thread_name(thread_id) |
@@ -233,26 +237,16 @@ def _maybe_update_self_name(self) -> None: |
233 | 237 | # 3: caller frame |
234 | 238 | if config.enable_asserts: |
235 | 239 | frame: FrameType = sys._getframe(1) |
236 | | - # TODO: replace dict with list |
237 | | - if frame.f_code.co_name not in {"_acquire", "_release"}: |
| 240 | + if frame.f_code.co_name not in ACQUIRE_RELEASE_CO_NAMES: |
238 | 241 | raise AssertionError("Unexpected frame %s" % frame.f_code.co_name) |
| 242 | + |
239 | 243 | frame = sys._getframe(2) |
240 | | - if frame.f_code.co_name not in { |
241 | | - "acquire", |
242 | | - "release", |
243 | | - "__enter__", |
244 | | - "__exit__", |
245 | | - "__aenter__", |
246 | | - "__aexit__", |
247 | | - }: |
| 244 | + if frame.f_code.co_name not in ENTER_EXIT_CO_NAMES: |
248 | 245 | raise AssertionError("Unexpected frame %s" % frame.f_code.co_name) |
249 | | - frame = sys._getframe(3) |
250 | 246 |
|
251 | 247 | # First, look at the local variables of the caller frame, and then the global variables |
252 | | - self._self_name = self._find_self_name(frame.f_locals) or self._find_self_name(frame.f_globals) |
253 | | - |
254 | | - if not self._self_name: |
255 | | - self._self_name = "" |
| 248 | + frame = sys._getframe(3) |
| 249 | + self._self_name = self._find_self_name(frame.f_locals) or self._find_self_name(frame.f_globals) or "" |
256 | 250 |
|
257 | 251 |
|
258 | 252 | class FunctionWrapper(wrapt.FunctionWrapper): |
|
0 commit comments