Skip to content
Merged
1 change: 1 addition & 0 deletions stdlib/VERSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,7 @@ sunau: 2.7-
symbol: 2.7-3.9
symtable: 2.7-
sys: 2.7-
sys._monitoring: 3.12- # N.B. actually a pseudo-module namespace at runtime
sysconfig: 2.7-
syslog: 2.7-
tabnanny: 2.7-
Expand Down
4 changes: 4 additions & 0 deletions stdlib/sys.pyi → stdlib/sys/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -370,3 +370,7 @@ if sys.version_info >= (3, 12):
def activate_stack_trampoline(__backend: str) -> None: ...
else:
def activate_stack_trampoline(__backend: str) -> NoReturn: ...

from . import _monitoring

monitoring = _monitoring
46 changes: 46 additions & 0 deletions stdlib/sys/_monitoring.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
from collections.abc import Callable
from types import CodeType
from typing import Any

DEBUGGER_ID: int
COVERAGE_ID: int
PROFILER_ID: int
OPTIMIZER_ID: int

def use_tool_id(__id: int, __name: str) -> None: ...
def free_tool_id(__id: int) -> None: ...
def get_tool(__id: int) -> str | None: ...

events: _events

class _events:
BRANCH: int
CALL: int
C_RAISE: int
C_RETURN: int
EXCEPTION_HANDLED: int
INSTRUCTION: int
JUMP: int
LINE: int
NO_EVENTS: int
PY_RESUME: int
PY_RETURN: int
PY_START: int
PY_THROW: int
PY_UNWIND: int
PY_YIELD: int
RAISE: int
RERAISE: int
STOP_ITERATION: int

def get_events(__tool_id: int) -> int: ...
def set_events(__tool_id: int, __event_set: int) -> None: ...
def get_local_events(__tool_id: int, __code: CodeType) -> int: ...
def set_local_events(__tool_id: int, __code: CodeType, __event_set: int) -> int: ...
def restart_events() -> None: ... # undocumented
def _all_events() -> dict[str, int]: ... # undocumented

DISABLE: object
MISSING: object

def register_callback(__tool_id: int, __event: int, __func: Callable[..., Any] | None) -> Callable[..., Any] | None: ...
1 change: 1 addition & 0 deletions tests/stubtest_allowlists/py312.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ os.PathLike.__class_getitem__ # PathLike is a protocol; we don't expect all Pat
types.GenericAlias.__call__ # Would be complicated to fix properly, Any could silence problems. #6392
types.GenericAlias.__getattr__
types.GenericAlias.__mro_entries__
sys._monitoring # Doesn't really exist
weakref.ProxyType.__reversed__ # Doesn't really exist

# C signature is broader than what is actually accepted
Expand Down