gh-138122: Integrate live profiler TUI with _colorize theming system#142360
gh-138122: Integrate live profiler TUI with _colorize theming system#142360pablogsal merged 11 commits intopython:mainfrom
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
b024e50
Compare
I thought that this wasn't yet ready for public interface? should we really advertise this feature in the NEWS (cc @hugovk) |
Is not but eventually that will be the mechanism. I can change the news entry if you want |
|
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 |
|
Yep, hopefully we'll have something public for 3.15. In the meantime we could say experimental. |
Misc/NEWS.d/next/Library/2025-12-06-19-49-20.gh-issue-138122.m3EF9E.rst
Outdated
Show resolved
Hide resolved
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>
|
Fixed merge conflicts |
|
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).
|
Thanks for the review @picnixz ❤️ |
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.