Skip to content
Merged
Prev Previous commit
Next Next commit
fixup! gh-138122: Refactor the CLI of profile.sampling into subcommands
  • Loading branch information
pablogsal committed Nov 21, 2025
commit d6ca1b3f2756490c2627f45fe6e0dc1cbec32d4e
2 changes: 2 additions & 0 deletions Lib/profiling/sampling/sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
from .gecko_collector import GeckoCollector
from .constants import (
PROFILING_MODE_WALL,
PROFILING_MODE_CPU,
PROFILING_MODE_GIL,
PROFILING_MODE_ALL,
)
try:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -444,10 +444,11 @@ def test_mode_constants_are_defined(self):

def test_parse_mode_function(self):
"""Test the _parse_mode function with all valid modes."""
self.assertEqual(profiling.sampling.sample._parse_mode("wall"), 0)
self.assertEqual(profiling.sampling.sample._parse_mode("cpu"), 1)
self.assertEqual(profiling.sampling.sample._parse_mode("gil"), 2)
from profiling.sampling.cli import _parse_mode
self.assertEqual(_parse_mode("wall"), 0)
self.assertEqual(_parse_mode("cpu"), 1)
self.assertEqual(_parse_mode("gil"), 2)

# Test invalid mode raises KeyError
with self.assertRaises(KeyError):
profiling.sampling.sample._parse_mode("invalid")
_parse_mode("invalid")
2 changes: 1 addition & 1 deletion Misc/NEWS.d/3.15.0a2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ Add :func:`os.reload_environ` to ``os.__all__``.
.. nonce: L13UCV
.. section: Library

Fix :func:`profiling.sampling.sample` incorrectly handling a
Fix ``profiling.sampling.sample()`` incorrectly handling a
:exc:`FileNotFoundError` or :exc:`PermissionError`.

..
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Add a new ``--live`` mode to the tachyon profiler in
:mod:`profiling.sampling` module. This mode consist of a live TUI that
:mod:`!profiling.sampling` module. This mode consist of a live TUI that
displays real-time profiling statistics as the target application runs,
similar to ``top``. Patch by Pablo Galindo
Loading