rich/CHANGELOG.md

22 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[9.5.0] - Unreleased

Changed

  • If file is not specified on Console then the Console.file will return the current sys.stdout

Added

  • Added stderr parameter to Console
  • Added rich.reconfigure

[9.4.0] - 2020-12-12

### Added

  • Added rich.live https://github.com/willmcgugan/rich/pull/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

[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

[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

[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

[9.0.1] - 2020-10-19

Fixed

[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 https://github.com/willmcgugan/rich/pull/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) https://github.com/willmcgugan/rich/issues/385
  • Table with row_styles will extend background color between cells if the box has no vertical dividerhttps://github.com/willmcgugan/rich/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.

[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

[7.1.0] - 2020-09-26

Added

### 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

[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

[6.2.0] - 2020-09-13

Added

  • Added inline code highlighting to Markdown

[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

[6.1.1] - 2020-09-07

Changed

  • Restored "def" in inspect signature

[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

[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 of characters
  • Optimized Syntax.from_path to avoid searching all lexers, which also speeds up tracebacks

Added

  • Added soft_wrap flag to Console.print

[5.2.1] - 2020-08-19

Fixed

[5.2.0] - 2020-08-14

Changed

[5.1.2] - 2020-08-10

Fixed

  • Further optimized pretty printing ~5X.

[5.1.1] - 2020-08-09

Fixed

  • Optimized pretty printing ~3X faster

[5.1.0] - 2020-08-08

Added

Fixed

Changed

  • Implemented pretty printing, and removed pprintpp from dependencies
  • Optimized Text.join

[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 be foo\[bar]

[4.2.2] - 2020-07-30

Changed

  • Added thread to automatically call update() in progress.track(). Replacing previous adaptive algorithm.
  • Second attempt at working around https://bugs.python.org/issue37871

[4.2.1] - 2020-07-29

Added

Fixed

Changed

[4.2.0] - 2020-07-27

Fixed

[4.1.0] - 2020-07-26

Changed

  • Optimized progress.track for very quick iterations
  • Force default size of 80x25 if get_terminal_size reports size of 0,0

[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

Changed

  • Change signature of Text.stylize to accept style first
  • Remove Text.stylize_all which is no longer necessary

Fixed

[3.4.1] - 2020-07-22

Fixed

  • Fixed incorrect default of expand in Table.grid

[3.4.0] - 2020-07-22

Added

  • Added stream parameter to Console.input
  • Added password parameter to Console.input
  • Added description parameter to Progress.update
  • Added rich.prompt
  • Added detecting 'dumb' terminals
  • Added Text.styled alternative constructor

Fixes

  • Fixed progress bars so that they are readable when color is disabled

[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

[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

[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

[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)

[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

[3.0.5] - 2020-07-07

Fixed

  • Fixed Windows version number require for truecolor

[3.0.4] - 2020-07-07

Changed

[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

[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

[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

[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

[2.3.1] - 2020-06-26

Fixed

[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 for highlight_regex to be a callable that returns a style

Added

  • Added optional highlighter parameter to RichHandler

[2.2.6] - 2020-06-24

Changed

[2.2.5] - 2020-06-23

Fixed

[2.2.4] - 2020-06-21

Added

  • Added enable_link_path to RichHandler
  • Added legacy_windows switch to Console constructor

[2.2.3] - 2020-06-15

Fixed

  • Fixed console.log hyperlink not containing full path

Changed

  • Used random number for hyperlink id

[2.2.2] - 2020-06-14

Changed

  • Exposed RichHandler highlighter as a class var

[2.2.1] - 2020-06-14

Changed

  • Linked path in log render to file

[2.2.0] - 2020-06-14

Added

  • Added redirect_stdout and redirect_stderr to Progress

Changed

  • printing to console with an active Progress doesn't break visuals

[2.1.0] - 2020-06-11

Added

  • Added 'transient' option to Progress

### Changed

  • Truncated overly long text in Rule with ellipsis overflow

[2.0.1] - 2020-06-10

Added

  • Added expand option to Padding

Changed

  • Some minor optimizations in Text

Fixed

  • Fixed broken rule with CJK text

[2.0.0] - 2020-06-06

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

[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

[1.3.0] - 2020-05-31

Added

  • Added rich.get_console() function to get global console instance.
  • Added Columns class

Changed

  • Updated markdown.Heading.create() to work with subclassing.
  • Console now transparently works with Jupyter

Fixed

  • Fixed issue with broken table with show_edge=False and a non-None box arg

[1.2.3] - 2020-05-24

Added

  • Added padding parameter to Panel
  • Added 'indeterminate' state when progress bars aren't started

Fixed

Changed

  • Auto-detect "truecolor" color system when in Windows Terminal

[1.2.2] - 2020-05-22

Fixed

  • Issue with right aligned wrapped text adding extra spaces

[1.2.1] - 2020-05-22

Fixed

  • Issue with sum and Style

[1.2.0] - 2020-05-22

Added

  • Support for double underline, framed, encircled, and overlined attributes

Changed

  • Optimized Style
  • Changed methods __console__ to __rich_console__, and __measure__ to __rich_measure__

[1.1.9] - 2020-05-20

Fixed

  • Exception when BarColumn.bar_width == None

[1.1.8] - 2020-05-20

Changed

  • Optimizations for Segment, Console and Table

### Added

  • Added Console.clear method
  • Added exporting of links to HTML

[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

[1.1.5] - 2020-05-15

Changed

  • Changed progress bars to write to stdout on terminal and hide on non-terminal

[1.1.4] - 2020-05-15

Fixed

  • Fixed incorrect file and link in progress.log
  • Fixes for legacy windows: Bar, Panel, and Rule now use ASCII characters
  • show_cursor is now a no-op on legacy windows

### Added

  • Added Console.input

Changed

  • Disable progress bars when not writing to a terminal

[1.1.3] - 2020-05-14

Fixed

  • Issue with progress of one line`

[1.1.2] - 2020-05-14

Added

  • Added -p switch to python -m rich.markdown to page output
  • Added Console.control to output control codes

Changed

  • Changed Console log_time_format to no longer require a space at the end
  • Added print and log to Progress to render terminal output when progress is active

[1.1.1] - 2020-05-12

Changed

  • Stripped cursor moving control codes from text

[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

[1.0.2] - 2020-05-08

Fixed

[1.0.1] - 2020-05-08

Changed

  • Applied console markup after highlighting
  • Documented highlighting
  • Changed Markup parser to handle overlapping styles
  • Relaxed dependency on colorama
  • Allowed Theme to accept values as style definitions (str) as well as Style instances
  • Added a panel to emphasize code in Markdown

Added

  • Added markup.escape
  • Added python -m rich.theme command
  • Added python -m rich.markdown command
  • Added rendering of images in Readme (links only)

Fixed

[1.0.0] - 2020-05-03

Changed

  • Improvements to repr highlighter to highlight URLs

[0.8.13] - 2020-04-28

Fixed

  • Fixed incorrect markdown rendering for quotes and changed style

[0.8.12] - 2020-04-21

Fixed

  • Removed debug print from rich.progress

[0.8.11] - 2020-04-14

Added

  • Added Table.show_lines to render lines between rows

Changed

  • Added markup escape with double square brackets

[0.8.10] - 2020-04-12

Fixed

  • Fix row_styles applying to header

[0.8.9] - 2020-04-12

Changed

  • Added force_terminal option to Console.__init__

Added

  • Added Table.row_styles to enable zebra striping.

[0.8.8] - 2020-03-31

Fixed

  • Fixed background in Syntax

[0.8.7] - 2020-03-31

Fixed

  • Broken wrapping of long lines
  • Fixed wrapping in Syntax

Changed

  • Added word_wrap option to Syntax, which defaults to False.
  • Added word_wrap option to Traceback.

[0.8.6] - 2020-03-29

Added

  • Experimental Jupyter notebook support: from rich.jupyter import print

[0.8.5] - 2020-03-29

Changed

  • Smarter number parsing regex for repr highlighter

Added

  • uuid highlighter for repr

[0.8.4] - 2020-03-28

Added

  • Added 'test card', run python -m rich

Changed

  • Detected windows terminal, defaulting to colorama support

Fixed

  • Fixed table scaling issue

[0.8.3] - 2020-03-27

Fixed

  • CJK right align

[0.8.2] - 2020-03-27

Changed

  • Fixed issue with 0 speed resulting in zero division error
  • Changed signature of Progress.update
  • Made calling start() a second time a no-op

[0.8.1] - 2020-03-22

Added

  • Added progress.DownloadColumn

[0.8.0] - 2020-03-17

Added

  • CJK support
  • Console level highlight flag
  • Added encoding argument to Syntax.from_path

Changed

[0.7.2] - 2020-03-15

Fixed

  • KeyError for missing pygments style

[0.7.1] - 2020-03-13

Fixed

  • Issue with control codes being used in length calculation

Changed

  • Remove current_style concept, which wasn't really used and was problematic for concurrency

[0.7.0] - 2020-03-12

Changed

  • Added width option to Panel
  • Change special method __render_width__ to __measure__
  • Dropped the "markdown style" syntax in console markup
  • Optimized style rendering

Added

  • Added Console.show_cursor method
  • Added Progress bars

Fixed

  • Fixed wrapping when a single word was too large to fit in a line

[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

[0.5.0] - 2020-02-23

Changed

  • Replaced __console_str__ with __rich__

[0.4.1] - 2020-02-22

Fixed

  • Readme links in Pypi

[0.4.0] - 2020-02-22

Added

  • Added Traceback rendering and handler
  • Added rich.constrain
  • Added rich.rule

Fixed

  • Fixed unnecessary padding

[0.3.3] - 2020-02-04

Fixed

[0.3.2] - 2020-01-26

Added

  • Added rich.logging

[0.3.1] - 2020-01-22

Added

  • Added colorama for Windows support

[0.3.0] - 2020-01-19

Added

  • First official release, API still to be stabilized