Skip to content

Conversation

@pablogsal
Copy link
Member

@pablogsal pablogsal commented Dec 6, 2025

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.

…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.
@picnixz
Copy link
Member

picnixz commented Dec 7, 2025

Users can switch themes by calling _colorize.set_theme() in their PYTHONSTARTUP or sitecustomize.py.

I thought that this wasn't yet ready for public interface? should we really advertise this feature in the NEWS (cc @hugovk)

@pablogsal
Copy link
Member Author

Users can switch themes by calling _colorize.set_theme() in their PYTHONSTARTUP or sitecustomize.py.

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

@picnixz
Copy link
Member

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 _colorize so... maybe just say that changing this should be at their own risk?

@hugovk
Copy link
Member

hugovk commented Dec 9, 2025

Yep, hopefully we'll have something public for 3.15. In the meantime we could say experimental.

pablogsal and others added 5 commits December 9, 2025 14:55
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>
@pablogsal pablogsal requested review from hugovk and picnixz December 28, 2025 15:08
@pablogsal
Copy link
Member Author

Fixed merge conflicts

@pablogsal
Copy link
Member Author

I think everything should be addressed by now.

Copy link
Member

@picnixz picnixz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Member Author

Do we have APIs in mind that are experimental except _colorize?

That's pending for @hugovk and @ambv. My understanding is that they plan to expose something in 3.15

@pablogsal
Copy link
Member Author

Thanks for the review @picnixz ❤️

@pablogsal pablogsal merged commit e5ad7b7 into python:main Jan 1, 2026
59 checks passed
@pablogsal pablogsal deleted the gh-138122-colors branch January 1, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants