Add extension point for stylizing console output #687
+442
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change provides two noteworthy APIs:
Style
class can be imported in other colcon packages to annotate their console output.Some example use cases:
This PR contains a sort of "smoke test" implementation for ANSI color codes. I intend to remove that implementation prior to merging this PR. It is only there to demonstrate behavior, and I'm not interested in debating what colors are appropriate or what the "default" behavior should be. We can consider adding lightweight stylizers directly to
colcon_core
at a later date - this PR is about getting the framework in-place.To see a demo of what the styles look like without performing actual operations, run
python3 -m colcon_core.output_style
.For now, the interface only allows you to select a single output style extension. It may be desirable in the future to differentiate between "primary" extensions of which only a single one should be used, and "secondary" extensions which overlay the primary one.