Skip to content

Commit 2555353

Browse files
chore(profiling): fix typing issues in stack_v2 (#15119)
## Description This updates the stubs in Stack V2 to fix some typing issues we had.
1 parent a551292 commit 2555353

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
import asyncio
2+
from types import FrameType
3+
from typing import Optional, Sequence, Union
24

35
def register_thread(id: int, native_id: int, name: str) -> None: ... # noqa: A002
46
def unregister_thread(name: str) -> None: ...
57
def track_asyncio_loop(thread_id: int, loop: asyncio.AbstractEventLoop) -> None: ...
68
def link_tasks(parent: asyncio.AbstractEventLoop, child: asyncio.Task) -> None: ...
9+
def init_asyncio(
10+
current_tasks: Sequence[asyncio.Task],
11+
scheduled_tasks: Sequence[asyncio.Task],
12+
eager_tasks: Optional[Sequence[asyncio.Task]],
13+
) -> None: ...
14+
def track_greenlet(greenlet_id: int, name: str, frame: Union[FrameType, bool, None]) -> None: ...
15+
def untrack_greenlet(greenlet_id: int) -> None: ...
16+
def link_greenlets(greenlet_id: int, parent_id: int) -> None: ...
17+
def update_greenlet_frame(greenlet_id: int, frame: Union[FrameType, bool, None]) -> None: ...
718

819
is_available: bool
920
failure_msg: str

ddtrace/profiling/_asyncio.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def _(f, args, kwargs):
9898
scheduled_tasks = asyncio.tasks._all_tasks.data
9999
eager_tasks = None
100100

101-
stack_v2.init_asyncio(asyncio.tasks._current_tasks, scheduled_tasks, eager_tasks) # type: ignore[attr-defined]
101+
stack_v2.init_asyncio(asyncio.tasks._current_tasks, scheduled_tasks, eager_tasks)
102102

103103

104104
def get_event_loop_for_thread(thread_id: int) -> typing.Union["asyncio.AbstractEventLoop", None]:

ddtrace/profiling/_gevent.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def track_gevent_greenlet(greenlet: _Greenlet) -> _Greenlet:
3838
frame: t.Union[FrameType, bool, None] = FRAME_NOT_SET
3939

4040
try:
41-
stack_v2.track_greenlet(greenlet_id, greenlet.name or type(greenlet).__qualname__, frame) # type: ignore[attr-defined]
41+
stack_v2.track_greenlet(greenlet_id, greenlet.name or type(greenlet).__qualname__, frame)
4242
except AttributeError as e:
4343
raise GreenletTrackingError("Cannot track greenlet with no name attribute") from e
4444
except Exception as e:
@@ -60,7 +60,7 @@ def track_gevent_greenlet(greenlet: _Greenlet) -> _Greenlet:
6060

6161
def update_greenlet_frame(greenlet_id: int, frame: t.Union[FrameType, bool, None]) -> None:
6262
_greenlet_frames[greenlet_id] = frame
63-
stack_v2.update_greenlet_frame(greenlet_id, frame) # type: ignore[attr-defined]
63+
stack_v2.update_greenlet_frame(greenlet_id, frame)
6464

6565

6666
def greenlet_tracer(event: str, args: t.Any) -> None:
@@ -106,7 +106,7 @@ def greenlet_tracer(event: str, args: t.Any) -> None:
106106

107107
def untrack_greenlet(greenlet: _Greenlet) -> None:
108108
greenlet_id = thread.get_ident(greenlet)
109-
stack_v2.untrack_greenlet(greenlet_id) # type: ignore[attr-defined]
109+
stack_v2.untrack_greenlet(greenlet_id)
110110
_greenlet_frames.pop(greenlet_id, None)
111111
_parent_greenlet_count.pop(greenlet_id, None)
112112
if (parent_id := _greenlet_parent_map.pop(greenlet_id, None)) is not None:
@@ -116,7 +116,7 @@ def untrack_greenlet(greenlet: _Greenlet) -> None:
116116

117117

118118
def link_greenlets(greenlet_id: int, parent_id: int) -> None:
119-
stack_v2.link_greenlets(greenlet_id, parent_id) # type: ignore[attr-defined]
119+
stack_v2.link_greenlets(greenlet_id, parent_id)
120120
_parent_greenlet_count[parent_id] = _parent_greenlet_count.get(parent_id, 0) + 1
121121
_greenlet_parent_map[greenlet_id] = parent_id
122122

@@ -159,7 +159,7 @@ def _(*args: t.Any, **kwargs: t.Any) -> _Greenlet:
159159
return _
160160

161161

162-
def joinall(greenlets: t.Iterable[_Greenlet], *args: t.Any, **kwargs: t.Any) -> None:
162+
def joinall(greenlets: t.Sequence[_Greenlet], *args: t.Any, **kwargs: t.Any) -> None:
163163
# This is a wrapper around gevent.joinall to track the greenlets
164164
# that are being joined.
165165
current_greenlet = gevent.getcurrent()

0 commit comments

Comments
 (0)