Skip to content

Releases: jquast/wcwidth

0.8.1: Improved corrections tables

08 Jun 05:57

Choose a tag to compare

Full Changelog: 0.8.0...0.8.1

0.8.0: new terminal-aware wcstwidth() function

05 Jun 21:07

Choose a tag to compare

  • New support for Variation Selector 15 Emojis as narrow, #211.
  • New argument, term_program for wcstwidth(), width(), clip(), wrap(), ljust(), rjust(), and center(). False disables corrections; True auto-detects by TERM_PROGRAM or TERM; string values accept canonical names matching list_term_programs(). wcstwidth()_ defaults to True; all other functions default to False.
  • Improved performance on Python 3.15 using standard library iter_graphemes() #206.
  • Improved memory usage and import time for Python 3.15 using lazy imports #221.
  • Bugfix Invisible_Stacker viramas now form conjuncts (Burmese, Khmer, etc.) and change some Virama width calculations to match jacobsandlund/uucode_ (ghostty) #223.
  • Updated graphemes width maximum now 2, matching Ghostty, foot, and Windows Terminal #224.

Full Changelog: 0.7.0...0.8.0

0.7.0

02 May 16:01

Choose a tag to compare

  • New support for kitty text sizing protocol (OSC 66) in width() and clip().
  • New clip() parameter control_codes='parse', 'ignore', and 'strict'. clip()
    is now able to clip OSC 8 hyperlinks and OSC 66 text sizing sequences.
  • Improved clip() and width() to support horizontal cursor sequences (cub, cuf,
    hpa). Cursor-left (cub) or backspace (\b) now overwrites text. column_address
    (hpa) and carriage return (\r) are now parsed, and more values conditionally raise
    ValueError when control_codes='strict'.

PR's

  • Remove docs, add utils by @jquast in #209
  • Bump requests from 2.32.5 to 2.33.0 in /docs by @dependabot[bot] in #210
  • Bump pygments from 2.19.2 to 2.20.0 in /docs by @dependabot[bot] in #212
  • dependabot nonsense by @jquast in #215
  • Expand terminal escape sequence for three more ECMA-48 "families" by @jquast in #214
  • Improve clip() and width() with hyperlinks and overtyping by @jquast in #216
  • Improve width() and clip() with kitty Text Sizing Protocol by @jquast in #213

Full Changelog: 0.6.0...0.7.0

0.6.0

06 Feb 19:18
e19d2a2

Choose a tag to compare

  • Complete textwrap.wrap() with 6 missing params! by @jquast in #207

Full Changelog: 0.5.3...0.6.0

0.5.3

31 Jan 03:49

Choose a tag to compare

  • Add Virama conjunct for the Brahmic scripts by @jquast in #204

Full Changelog: 0.5.2...0.5.3

0.5.2

29 Jan 19:32
38d03a5

Choose a tag to compare

Full Changelog: 0.5.1...0.5.2

0.5.1

27 Jan 07:48
c6d25b6

Choose a tag to compare

  • Updated generated zero and wide code tables to length of 1 to complete the previously announced removal of historical wide and zero tables. #196

Full Changelog: 0.5.0...0.5.1

0.5.0

27 Jan 01:29

Choose a tag to compare

  • Drop Support of many historical versions of wide and zero unicode tables. Only the latest Unicode version (17.0.0) is now shipped. The related unicode_version='auto' keyword of the wcwidth()-family of functions are ignored. list_versions() always returns a tuple of only a single element of the only unicode version supported. #195
  • Performance improvement of most common call without version or ambiguous_width specified by 20%. #195
  • New Function propagate_sgr() for applying SGR state propagation to a list of lines. #194
  • Improved wrap() and clip() with propagate_sgr=True. #194
  • Bugfix clip() zero-width characters at clipping boundaries. #194
  • Bugfix OSC Hyperlinks when broken mid-text by wrap(). #193

Full Changelog: 0.4.0...0.5.0

0.4.0

26 Jan 02:35
b297eaf

Choose a tag to compare

  • Bugfix: OSC Hyperlinks should not be broken by wrap() by @jquast in #191
  • New functions: iter_graphemes_reverse(), grapheme_boundary_before() by @jquast in #192

Full Changelog: 0.3.5...0.4.0

0.3.5

25 Jan 04:36

Choose a tag to compare

  • Re-stamp package version correctly, 0.3.4 packaged a failing test

Full Changelog: 0.3.4...0.3.5