Uh oh!
There was an error while loading. Please reload this page.
gh-138122: Integrate live profiler TUI with _colorize theming system - #142360
Conversation
…ystem The Tachyon profiler's curses-based TUI now uses the centralized theming infrastructure in _colorize.py, enabling users to customize colors via the standard Python theming API. This adds a LiveProfiler theme section with two pre-configured themes: the default dark theme optimized for dark terminal backgrounds, and LiveProfilerLight for white/light backgrounds. Users can switch themes by calling _colorize.set_theme() in their PYTHONSTARTUP or sitecustomize.py. The table header rendering was also improved to draw a continuous background, eliminating visual gaps between columns when using reverse video styling.
f2753f1 to
b024e50Comparepicnixz
commented
Dec 7, 2025
I thought that this wasn't yet ready for public interface? should we really advertise this feature in the NEWS (cc @hugovk) |
Uh oh!
There was an error while loading. Please reload this page.
pablogsal
commented
Dec 7, 2025
Is not but eventually that will be the mechanism. I can change the news entry if you want |
picnixz
commented
Dec 7, 2025
Originally, I preferred not advertising this interface officially for now otherwise users could assume that they can freely use it as they want (and we don't know how we eventually want to document and expose it) but I saw that we had other NEWS entries that mentioned |
hugovk
commented
Dec 9, 2025
Yep, hopefully we'll have something public for 3.15. In the meantime we could say experimental. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
pablogsal
commented
Jan 1, 2026
Fixed merge conflicts |
pablogsal
commented
Jan 1, 2026
I think everything should be addressed by now. |
picnixz
left a comment
There was a problem hiding this comment.
LGTM. I like the mention about "experimental API" but this also makes me wonder whether we should have some "Experimental" section. Do we have APIs in mind that are experimental except _colorize? (C++ had, for a very long time, only experimental::filesystem as an experimental namespace, so having only 1 component in an experimental section would still makes sense IMO).
pablogsal
commented
Jan 1, 2026
pablogsal
commented
Jan 1, 2026
Thanks for the review @picnixz ❤️ |
Uh oh!
There was an error while loading. Please reload this page.
…ystem (python#142360) Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
The Tachyon profiler's curses-based TUI now uses the centralized theming
infrastructure in _colorize.py, enabling users to customize colors via
the standard Python theming API. This adds a LiveProfiler theme section
with two pre-configured themes: the default dark theme optimized for
dark terminal backgrounds, and LiveProfilerLight for white/light
backgrounds. Users can switch themes by calling _colorize.set_theme() in
their PYTHONSTARTUP or sitecustomize.py.
The table header rendering was also improved to draw a continuous
background, eliminating visual gaps between columns when using reverse
video styling.