Rich是一个Python库,用于在终端中显示富文本和精美格式
Rich is a Python library for rich text and beautiful formatting in the terminal. willmcgugan released this
[9.12.4] - 2021-03-01
Fixed
- Fixed custom formatters with rich tracebacks in RichHandler #1079
Changed
- Allow highly compressed table cells to go to 0 width
- Optimization to remove empty styles in various places
Assets
2
A optimization to the Padding class. This is unlikely to impact anyone unless you are printing very large tables.
[9.12.3] - 2021-02-28
Changed
- Optimized Padding
Assets
2
willmcgugan released this
Mostly fixes in this update. Plus a change of behaviour for tables with no columns, and an added height parameter to Panel.
[9.12.0] - 2021-02-24
Fixed
- Fixed issue with Syntax and missing lines in Layout #1050
- Fixed issue with nested markdown elements #1036
- Fixed new lines not invoking render hooks #1052
- Fixed Align setting height to child #1057
Changed
- Printing a table with no columns now result in a blank line #1044
Added
- Added height to Panel
Assets
2
willmcgugan released this
[9.11.1] - 2021-02-20
Fixed
- Fixed table with expand=False not expanding when justify="center"
- Fixed single renderable in Layout not respecting height
- Fixed COLUMNS and LINES env var #1019
- Layout now respects minimum_size when fixes sizes are greater than available space
- HTML export now changes link underline score to match terminal #1009
Changed
- python -m rich.markdown and rich.syntax show usage with no file
Added
- Added height parameter to Layout
- Added python -m rich.segment
Assets
2
willmcgugan released this
The highlight of this release is the new Layout system which can be used to produce htop like terminal dashboards.
[9.11.0] - 2021-02-15
Fixed
### Added
- Added cheeky sponsorship request to test card
- Added
quiet
argument to Console constructor - Added support for a callback function to format timestamps (allows presentation of milliseconds)
- Added Console.set_alt_screen and Console.screen
- Added height to ConsoleOptions
- Added
vertical
parameter to Align - Added Layout class
Changed
- Pretty.overflow now defaults to None
- Panel now respects options.height
- Traceback lexer defaults to Python if no extension on source
- Added ConsoleDimensions size attribute to ConsoleOptions so that size can't change mid-render
Assets
2
willmcgugan released this
[9.10.0] - 2021-01-27
Changed
- Some optimizations for Text
- Further optimized Tracebacks by not tokenizing code more that necessary
- Table Column.header_style and Column.footer_style are now added to Table header/footer style
Assets
2
willmcgugan released this
[9.9.0] - 2021-01-23
Changed
- Extended Windows palette to 16 colors
- Modified windows palette to Windows 10 colors
- Change regex for attrib_name to be more performant
- Optimized traceback generation
Fixed
- Fix double line tree guides on Windows
- Fixed Tracebacks ignoring initial blank lines
- Partial fix for tracebacks not finding source after chdir
Added
- Added post_style argument to Segment.apply_style
Assets
2
willmcgugan released this
Assets
2
[9.8.1] - 2021-01-13
Fixed
- Fixed rich.inspect failing with attributes that claim to be callable but aren't #916
Assets
2
willmcgugan released this
A few fixes and minor enhancements.
[9.8.0] - 2021-01-11
### Added
- Added rich_measure for tree
- Added rich.align.VerticalCenter
Changed
- The
style
argument on Align now applies to background only - Changed display of progress bars in no_color mode for clarity
- Console property
size
will fall back to getting the terminal size of stdout it stdin fails, this allows size to be correctly determined when piping
Fixed
- Fixed panel cropping when shrunk too bar
- Allow passing markdown over STDIN when using
python -m rich.markdown
- Fix printing MagicMock.mock_calls #903
Assets
2
willmcgugan released this
The highlight of this release is the new Tree renderable.
In addition there is also a no_color
flag which removes color from the output but preserves style (bold, italic etc). Previously Rich respected the NO_COLOR env var but it also remove style.
[9.7.0] - 2021-01-09
Added
- Added rich.tree
- Added no_color argument to Console
Assets
2
willmcgugan released this
[9.6.2] - 2021-01-07
Fixed
- Fixed markup escaping edge case #878
- Double tag escape, i.e.
"\\[foo]"
results in a backslash plus[foo]
tag
Assets
2
willmcgugan released this
[9.6.1] - 2020-12-31
Fixed
- Fixed encoding error on Windows when loading code for Tracebacks
Assets
2
This version adds IPython support to rich.pretty and some enhancements to rich.inspect
[9.6.0] - 2020-12-30
Changed
- MarkupError exception raise from None to omit internal exception
- Factored out RichHandler.render and RichHandler.render_message for easier extending
- Display pretty printed value in rich.inspect
Added
- Added Progress.TimeElapsedColumn
- Added IPython support to pretty.install
Fixed
- Fixed display of locals in Traceback for stdin
Assets
2
willmcgugan released this
This release was a hotfix for broken terminal size detection on Windows
[9.5.1] - 2020-12-19
Fixed
- Fixed terminal size detection on Windows #836
- Fixed hex number highlighting
Assets
2
willmcgugan released this
This release adds a new rich.live interface which can display continually updated renderable, which you can use to create animated "dashboards".
Also in this release we have 'spinner' animations via a new Console.status method, or a SpinnerColumn in progress bars.
[9.4.0] - 2020-12-12
### Added
- Added rich.live #382
- Added algin parameter to Rule and Console.rule
- Added rich.Status class and Console.status
- Added getitem to Text
- Added style parameter to Console.log
- Added rich.diagnose command
### Changed
- Table.add_row style argument now applies to entire line and not just cells
- Added end_section parameter to Table.add_row to force a line underneath row
Fixed
- Fixed suppressed traceback context #468
Assets
2
willmcgugan released this
[9.3.0] - 2020-12-1
### Added
- Added get_datetime parameter to Console, to allow for repeatable tests
- Added get_time parameter to Console
- Added rich.abc.RichRenderable
- Added expand_all to rich.pretty.install()
- Added locals_max_length, and locals_max_string to Traceback and logging.RichHandler
- Set defaults of max_length and max_string for Traceback to 10 and 80
- Added disable argument to Progress
Changed
- Reformatted test card (python -m rich)
Fixed
Assets
2
[9.2.0] - 2020-11-08
Added
- Added tracebacks_show_locals parameter to RichHandler
- Added max_string to Pretty
- Added rich.ansi.AnsiDecoder
- Added decoding of ansi codes to captured stdout in Progress
- Added expand_all to rich.pretty.pprint
Changed
- Applied dim=True to indent guide styles
- Factored out RichHandler.get_style_and_level to allow for overriding in subclasses
- Hid progress bars from html export
- rich.pretty.pprint now soft wraps
Assets
2
willmcgugan released this
The highlight of this version is the new option to render 'indent guides' in Syntax and pretty printing.
I've also added a max_length
argument to pretty printing which will truncate containers longer than a certain length.
[9.1.0] - 2020-10-23
Added
- Added Text.with_indentation_guide
- Added Text.detect_indentation
- Added Pretty.indent_guides
- Added Syntax.indent_guides
- Added indent_guides parameter on pretty.install
- Added rich.pretty.pprint
- Added max_length to Pretty
Changed
- Enabled indent guides on Tracebacks
Fixed
- Fixed negative time remaining in Progress bars #378
Assets
2
Assets
2
willmcgugan released this
The highlights of Rich 9.0.0 would be a new pager method which will pipe any console output in to the system 'pager'. See this tweet for an example. There's also a new Bar
renderable you could use to display a chart in a table. See bars.py for an example of how to use it.
Note this is a major version release so there are some breaking changes to the API -- these are unlikely to impact many people, but please check the changelog below.
[9.0.0] - 2020-10-18
Fixed
- Progress download column now displays decimal units
Added
- Support for Python 3.9
- Added legacy_windows to ConsoleOptions
- Added ascii_only to ConsoleOptions
- Added box.SQUARE_DOUBLE_HEAD
- Added highlighting of EUI-48 and EUI-64 (MAC addresses)
- Added Console.pager
- Added Console.out
- Added binary_units in progress download column
- Added Progress.reset
- Added Style.background_style property
- Added Bar renderable #361
- Added Table.min_width
- Added table.Column.min_width and table.Column.max_width, and same to Table.add_column
Changed
- Dropped box.get_safe_box function in favor of Box.substitute
- Changed default padding in Panel from 0 to (0, 1) #385
- Table with row_styles will extend background color between cells if the box has no vertical dividerhttps://github.com//issues/383
- Changed default of fit kwarg in render_group() from False to True
- Renamed rich.bar to rich.progress_bar, and Bar class to ProgressBar, rich.bar is now the new solid bar class
Fixed
- Fixed typo in
Style.transparent_background
method name.
Assets
2
willmcgugan released this
The highlight of this release is the option to show local variables in tracebacks.
[8.0.0] - 2020-10-03
### Added
- Added Console.bell method
- Added Set to types that Console.print will automatically pretty print
- Added show_locals to Traceback
- Added theme stack mechanism, see Console.push_theme and Console.pop_theme
Changed
- Changed Style.empty to Style.null to better reflect what it does
- Optimized combining styles involving a null style
- Change error messages in Style.parse to read better
Fixed
- Fixed Table.__rich_measure__
- Fixed incorrect calculation of fixed width columns
Assets
2
The highlight of this release is some improvements to Rich tracebacks. The traceback display makes better use of space and handle long paths better. Rich tracebacks can also be rendered in Rich's logging handler which is much easier to read (thanks to @taliraj for his PR for this feature).
[7.1.0] - 2020-09-26
Added
- Added Console.begin_capture, Console.end_capture and Console.capture
- Added Table.title_justify and Table.caption_justify #301
### Changed
- Improved formatting of exceptions
- Enabled Rich exceptions in logging https://github.com/taliraj
- UTF-8 encoding is now mentioned in HTML head section
Removed
- Removed line_numbers argument from traceback.install, which was undocumented and did nothing
Assets
2
The main feature of this release was a way of display syntax highlighting with only standard colors (i.e. the colors you can configure in the terminal), which you can do by setting the theme to "ansi_dark" or "ansi_light". The other themes are generally prettier (IMHO) but use colors defined by the theme, and not by the user's settings.
When testing the above I also made some optimizations which benefit all the Rich output. You may only notice this if you are syntax highlighting large XML files, but its faster now.
This is a major release as there were a small number of signature changes. Most people won't be impacted, but please review the release notes below.
[7.0.0] - 2020-09-18
Added
- New ansi_dark and ansi_light themes
- Added Text.append_tokens for fast appending of string + Style pairs
- Added Text.remove_suffix
- Added Text.append_tokens
### Changed
- Text.tabs_to_spaces was renamed to Text.expand_tabs, which works in place rather than returning a new instance
- Renamed Column.index to Column._index
- Optimized Style.combine and Style.chain
- Optimized text rendering by fixing internal cache mechanism
- Optimized hash generation for Styles
Assets
2
willmcgugan released this
Assets
2
willmcgugan released this
[6.1.2] - 2020-09-11
Added
- Added ipv4 and ipv6 to ReprHighlighter
Changed
- The
#
sign is included in url highlighting
Fixed
- Fixed force-color switch in rich.syntax and rich.markdown commands
Assets
2
A tiny change to 6.1.0
Inspect now adds def
to signature of methods. Not strictly necessary, but I think it helps distinguish methods from data.
[6.1.1] - 2020-09-07
Changed
- Restored "def" in inspect signature
Assets
2
willmcgugan released this
This release adds a function called inspect
which uses rich to display the data / methods / docs for any Python object.
I think this is a fantastic debug aid, and I'm looking forward to using it in other projects.
[6.1.0] - 2020-09-07
Added
- New inspect module
- Added os._Environ to pretty print
Fixed
- Prevented recursive renderables from getting stuck
Changed
- force_terminal and force_jupyter can now be used to force the disabled state, or left as None to auto-detect.
- Panel now expands to fit title if supplied
Assets
2
willmcgugan released this
Headline of this release is a better pretty print. The previous version could expand lines prematurely. This version fits containers and is faster to boot. It also support defaultdict, Counter, and array.
Breaking change is because the signature of Pretty and pretty_repr has changed, and the character
argument to rule was dropped. This is unlikely to impact many people.
[6.0.0] - 2020-08-25
Fixed
- Fixed use of
__rich__
cast
Changed
- New algorithm to pretty print which fits more on a line if possible
- Deprecated
character
parameter in Rule and Console.rule, in favor ofcharacters
- Optimized Syntax.from_path to avoid searching all lexers, which also speeds up tracebacks
Added
- Added soft_wrap flag to Console.print
Assets
2
willmcgugan released this
[5.2.1] - 2020-08-19
- Fixed underscore with display hook #235
Assets
2
willmcgugan released this
Version 5.20 adds the ability to disable cropping to the console width, in effect allowing the terminal to soft wrap lines.
Also in 5.20 is the ability to specify multiple characters in a Rule.
[5.2.0] - 2020-08-14
- Added crop argument to Console.print
- Added "ignore" overflow method
- Added multiple characters per rule @hedythedev #207
Assets
2
[5.1.2] - 2020-08-10
Fixed
- Further optimized pretty printing ~5X.
[5.1.1] - 2020-08-09
Fixed
- Optimized pretty printing ~3X faster
Assets
2
willmcgugan released this
This release adds a home grown pretty print formatter, and removes the pprintpp dependancy. The new formatter is better integrated with Rich and will be a more flexible solution, but its not as battle tested as pprintpp. Please report any bugs!
Also in 5.1.0 is a 'display hook' which allows for integration of Rich in to the REPL, so all your data will be pretty. It's kind of fun to use.
The following will install the display hook.
>>> from rich import pretty
>>> pretty.install()
[5.1.0] - 2020-08-08
Added
- Added Text.cell_len
- Added helpful message regarding unicode decoding errors #212
- Added display hook with pretty.install()
Fixed
- Fixed deprecation warnings re backslash #210
- Fixed repr highlighting of scientific notation, e.g. 1e100
Changed
- Implemented pretty printing, and removed pprintpp from dependencies
- Optimized Text.join
Assets
2
willmcgugan released this
Console markup syntax has been tweaked to not overlap with Python data structures.
Prior to 5.0.0 if you stringified a list it would typically be removed from the output as Rich would interpret it as a markup tag. This surprised people when printing lists in an f-string.
For instance, prior to 5.0.0 the following would not print as you might expect:
>>> my_list = [1,2,3]
>>> print(f"my_list={my_list}")
my_list=
With 5.0.0 it prints this following::
my_list = [1, 2, 3]
Which is less astonishing.
This change required some changes to the console markup syntax, which is the reason for the major version bump.
You can no longer use a number between 0 and 255 to provide a color, now it must be wrapped with color(NUMBER)
. So "[4]Red[/]"
becomes "[color(4)]Red[/]"
. From an extensive search of Github, most people never used this syntax anyway and would prefer to use friendly color names.
Additionally escaping has changed. Prior to 5.0.0 you could escape square brackets by doubling them up. From 5.0.0 you can escape a tag with backslash.
[5.0.0] - 2020-08-02
Changed
- Change to console markup syntax to not parse Python structures as markup, i.e.
[1,2,3]
is treated as a literal, not a tag. - Standard color numbers syntax has changed to
"color(<number>)"
so that[5]
(for example) is considered a literal. - Markup escape method has changed from double brackets to preceding with a backslash, so
foo[[]]
would befoo\[bar]
Assets
2
willmcgugan released this
[4.2.1] - 2020-07-29
Added
- Added show_time and show_level parameters to RichHandler #182
Fixed
- Fixed progress.track iterator exiting early #189
- Added workaround for Python bug https://bugs.python.org/issue37871, fixing #186
Changed
- Set overflow=fold for log messages #190
Assets
2
[4.2.0] - 2020-07-27
Fixed
Assets
2
willmcgugan released this
[4.1.0] - 2020-07-26
Changed
- Optimized progress.track for very quick iterations #176
- Force default size of 80x25 if get_terminal_size reports size of 0,0
Assets
2
willmcgugan released this
[4.0.0] - 2020-07-23
Major version bump for a breaking change to Text.stylize
signature, which corrects a minor but irritating API wart. The style now comes first and the start
and end
offsets default to the entire text. This allows for text.stylize_all(style)
to be replaced with text.stylize(style)
. The start
and end
offsets now support negative indexing, so text.stylize("bold", -1)
makes the last character bold.
Added
- Added markup switch to RichHandler #171
Changed
- Change signature of Text.stylize to accept style first
- Remove Text.stylize_all which is no longer necessary
Fixed
- Fixed rendering of Confirm prompt #170
Assets
2
willmcgugan released this
[3.4.1] - 2020-07-22
Fixed
- Fixed incorrect default of expand in Table.grid
Assets
2
willmcgugan released this
[3.3.2] - 2020-07-14
Changed
- Optimized Text.pad
Added
- Added rich.scope
- Change log_locals to use scope.render_scope
- Added title parameter to Columns
Assets
2
willmcgugan released this
[3.3.1] - 2020-07-13
Added
- box.ASCII_DOUBLE_HEAD
### Changed
- Removed replace of -- --- ... from Markdown, as it made it impossible to include CLI info
Assets
2
[3.3.0] - 2020-07-12
Added
- Added title and title_align options to Panel
- Added pad and width parameters to Align
- Added end parameter to Rule
- Added Text.pad and Text.align methods
- Added leading parameter to Table
Assets
2
willmcgugan released this
[3.2.0] - 2020-07-10
Added
- Added Align.left Align.center Align.right shortcuts
- Added Panel.fit shortcut
- Added align parameter to Columns
Fixed
- Align class now pads to the right, like Text
- ipywidgets added as an optional dependency
- Issue with Panel and background color
- Fixed missing
__bool__
on Segment
Changed
- Added
border_style
argument to Panel (note,style
now applies to interior of the panel)
Assets
2
willmcgugan released this
[3.1.0] - 2020-07-09
Changed
- Progress bars now work in Jupyter
Added
- Added refresh_per_second to progress.track
- Added styles to BarColumn and progress.track
Assets
2
[3.0.5] - 2020-07-07
Fixed
- Fixed Windows version number require for truecolor
Assets
2
willmcgugan released this
[3.0.3] - 2020-07-03
Fixed
- Fixed edge case with wrapped and overflowed text
Changed
- New algorithm for compressing table that priorities smaller columns
Added
- Added safe_box parameter to Console constructor
Assets
2
willmcgugan released this
[3.0.2] - 2020-07-02
### Added
- Added rich.styled.Styled class to apply styles to renderable
- Table.add_row now has an optional style parameter
- Added table_movie.py to examples
Changed
- Modified box options to use half line characters at edges
- Non no_wrap columns will now shrink below minimum width if table is compressed
Assets
2
[3.0.1] - 2020-06-30
Added
- Added box.ASCII2
- Added markup argument to logging extra
Changed
- Setting a non-None width now implies expand=True
Assets
2
willmcgugan released this
A new major version due to changes to Rule and Panel constructor, and Table.add_column
method. This is unlikely to break anyones code but semver mandates a major version bump.
Otherwise, the highlight of this release is that legacy Windows supports a greater range of box characters for Table / Panel etc.
[3.0.0] - 2020-06-28
Changed
- Enabled supported box chars for legacy Windows, and introduce
safe_box
flag - Disable hyperlinks on legacy Windows
- Constructors for Rule and Panel now have keyword only arguments (reason for major version bump)
- Table.add_colum added keyword only arguments
Fixed
- Fixed Table measure
Assets
2
willmcgugan released this
[2.3.1] - 2020-06-26
Fixed
- Disabled legacy_windows if jupyter is detected
Assets
2
willmcgugan released this
[2.3.0] - 2020-06-26
Fixed
- Fixed highlighting of paths / filenames
- Corrected docs for RichHandler which erroneously said default console writes to stderr
Changed
- Allowed
style
parameter forhighlight_regex
to be a callable that returns a style
Added
- Added optional highlighter parameter to RichHandler
Assets
2
willmcgugan released this
Assets
2
willmcgugan released this
[2.2.4] - 2020-06-21
Added
- Added enable_link_path to RichHandler
- Added legacy_windows switch to Console constructor
Assets
2
willmcgugan released this
[2.2.3] - 2020-06-15
Fixed
- Fixed console.log hyperlink not containing full path
Changed
- Used random number for hyperlink id
Assets
2
[2.1.0] - 2020-06-11
Added
- Added 'transient' option to Progress
### Changed
- Truncated overly long text in Rule with ellipsis overflow
Assets
2
willmcgugan released this
A new major version due to some backwards incompatible changes. A name change of JustifyValues to JustifyMethod, and the introduction of some keyword only arguments. Most code using an earlier version will require no changes.
[2.0.0] - 2020-07-07
Added
- Added overflow methods
- Added no_wrap option to print()
- Added width option to print
- Improved handling of compressed tables
Fixed
- Fixed erroneous space at end of log
- Fixed erroneous space at end of progress bar
Changed
- Renamed _ratio.ratio_divide to _ratio.ratio_distribute
- Renamed JustifyValues to JustifyMethod (backwards incompatible)
- Optimized _trim_spans
- Enforced keyword args in Console / Text interfaces (backwards incompatible)
- Return self from text.append
Assets
2
[1.3.1] - 2020-06-01
Changed
- Changed defaults of Table.grid
- Polished listdir.py example
Added
- Added width argument to Columns
Fixed
- Fixed for
columns_first
argument in Columns - Fixed incorrect padding in columns with fixed width
Assets
2
willmcgugan released this
[1.2.3] - 2020-05-24
Added
- Added
padding
parameter to Panel - Added 'indeterminate' state when progress bars aren't started
Fixed
- Fixed Progress deadlock #90
Changed
- Auto-detect "truecolor" color system when in Windows Terminal
Assets
2
willmcgugan released this
[1.2.2] - 2020-05-22
Fixed
- Issue with right aligned wrapped text adding extra spaces
Assets
2
[1.1.7] - 2020-05-19
Added
- Added collapse_padding option to Table.
Changed
- Some style attributes may be abbreviated (b for bold, i for italic etc). Previously abbreviations worked in console markup but only one at a time, i.e. "[b]Hello[/]" but not "[b i]Hello[/]" -- now they work everywhere.
- Renamed 'text' property on Text to 'plain'. i.e. text.plain returns a string version of the Text instance.
Fixed
- Fixed zero division if total is 0 in progress bar
[1.1.6] - 2020-05-17
### Added
- Added rich.align.Align class
- Added justify argument to Console.print and console.log
Assets
2
[1.1.5] - 2020-05-15
Changed
- Changed progress bars to write to stdout on terminal and hide on non-terminal
Assets
2
willmcgugan released this
[1.1.1] - 2020-05-12
Changed
- Stripped cursor moving control codes from text
Assets
2
[1.1.0] - 2020-05-10
Added
- Added hyperlinks to Style and markup
- Added justify and code theme switches to markdown command
[1.0.3] - 2020-05-08
Added
- Added
python -m rich.syntax
command
Assets
2
willmcgugan released this
[1.0.3] - 2020-05-08
Added
- Added
python -m rich.syntax
command
Assets
2
willmcgugan released this
[1.0.0] - 2020-05-03
Changed
- Improvements to repr highlighter to highlight URLs
Assets
2
willmcgugan released this
[0.8.12] - 2020-04-21
Fixed
- Removed debug print from rich.progress
Assets
2
willmcgugan released this
[0.8.11] - 2020-04-14
Added
- Added Table.show_lines to render lines between rows
Changed
- Added markup escape with double square brackets
Assets
2
[0.8.8] - 2020-03-31
Fixed
- Fixed background in Syntax
Assets
2
[0.8.0] - 2020-03-17
Added
- CJK support
- Console level highlight flag
- Added encoding argument to Syntax.from_path
Changed
- Dropped support for Windows command prompt (try https://www.microsoft.com/en-gb/p/windows-terminal-preview/)
- Added task_id to Progress.track
Assets
2
[0.7.2] - 2020-03-15
Fixed
- KeyError for missing pygments style
Assets
2
willmcgugan released this
[0.6.0] - 2020-03-03
Added
- Added tab_size to Console and Text
- Added protocol.is_renderable for runtime check
- Added emoji switch to Console
- Added inherit boolean to Theme
- Made Console thread safe, with a thread local buffer
Changed
- Console.markup attribute now effects Table
- SeparatedConsoleRenderable and RichCast types
Fixed
- Fixed tabs breaking rendering by converting to spaces
Assets
2
[0.3.3] - 2020-02-04
Fixed
- Fixed Windows color support
- Fixed line width on windows issue (#7)
- Fixed Pretty print on Windows
Assets
2
willmcgugan released this
[0.3.2] - 2020-01-26
Added
- Added rich.logging
Assets
2
Watchers:479 |
Star:23909 |
Fork:709 |
创建时间: 2019-11-10 23:28:09 |
最后Commits: 3小时前 |
许可协议:MIT |
c3d0e35
Compare
Verified
The highlight of this release is that pretty printing now supports dataclasses, which can now collapse just like other data structures. Here's an example:
[9.13.0] - 2021-03-06
Added
Fixed
Changed