Skip to content

Releases: urwid/urwid

2.4.4

18 Jan 09:30
c197e77
Compare
Choose a tag to compare

What's Changed

Bug fixes 🕷

  • Fix regression: Columns render incorrect BOX/FLOW widgets height by @penguinolog in #754

Full Changelog: 2.4.3...2.4.4

2.4.3

17 Jan 19:04
9301924
Compare
Choose a tag to compare

What's Changed

New features 🗹

Bug fixes 🕷

  • Columns support correct BOX render only if ALL BOX by @penguinolog in #746
  • LineBox: make side only if side elements present, fix pack by @penguinolog in #748
  • Update source package manifest to include _web.js and _web.css by @Hook25 in #750
  • Fix ListBox.contents: it should return final entity by @penguinolog in #751

Documentation 🕮

  • original artwork for widgets diagram by @wardi in #739

New Contributors

Full Changelog: 2.4.2...2.4.3

2.4.2

11 Jan 14:50
271b801
Compare
Choose a tag to compare

What's Changed

New features 🗹

Now it possible to quick check incomplete widgets prototypes without size counting like:

>>> import urwid
>>> grid = urwid.GridFlow(
   ...:             (urwid.Button(tag, align=urwid.CENTER) for tag in ("OK", "Cancel", "Help")),
   ...:             cell_width=10,
   ...:             h_sep=1,
   ...:             v_sep=1,
   ...:             align=urwid.CENTER,
   ...:         )
>>> body = urwid.Pile(
   ...:             (
   ...:                 (urwid.Text("Window content text here and it should not touch line", align=urwid.CENTER)),
   ...:                 (urwid.PACK, grid),
   ...:             )
   ...:         )
>>> widget = urwid.LineBox(
   ...:             urwid.Pile(
   ...:                 (
   ...:                     urwid.Text("Some window", align=urwid.CENTER),
   ...:                     urwid.Divider("─"),
   ...:                     urwid.Padding(body, width=urwid.PACK, left=1, right=1),
   ...:                 )
   ...:             )
   ...:         )
>>> print(b"\n".join(widget.render(()).text).decode("utf-8"))
┌───────────────────────────────────────────────────────┐
│                      Some window                      │
│───────────────────────────────────────────────────────│
│ Window content text here and it should not touch line │
│           <   OK   > < Cancel > <  Help  >            │
└───────────────────────────────────────────────────────┘

>>> widget.pack(())
(57, 6)

Bug fixes 🕷

  • BUG: Columns with GIVEN width == 0 should not count in rows by @penguinolog in #736

Refactoring 🛠

  • Remove unused deprecated "test_suite" directive from setup.py by @penguinolog in #729

Full Changelog: 2.4.1...2.4.2

2.4.1

03 Jan 12:18
fd6e446
Compare
Choose a tag to compare

What's Changed

Bug fixes 🕷

Full Changelog: 2.4.0...2.4.1

2.4.0

03 Jan 10:14
e085a21
Compare
Choose a tag to compare

What's Changed

New features 🗹

  • Basic Windows OS support in RAW and Curses display.
    • Fully functional RAW display support. Thanks to @mhils (initial RAW display)
    • Limited Curses support due to windows-curses limitation (mouse support limited). Thanks to @asmith-kepler (windows-curses monkeypatch)
    • UTF-8 only
    • Force SelectorEventLoop for asyncio under Windows if event loop is not set by @penguinolog in #715
  • Feature: switch from select.select to selectors by @penguinolog in #691
  • Feature: support FIXED render mode for Text by @penguinolog in #610
  • Feature: extend functional keys handling with key modifiers by @penguinolog in #705
  • Add run_in_executor helper to the event loop by @penguinolog in #712
  • Feature: Add internal logging for behavioral debug by @penguinolog in #708
    • Feature: Use module path + class name for loggers and init once by @penguinolog in #720
  • Feature: Implement keypress and mouse_event default handlers by @penguinolog in #721
    • Not subclassing Widget base class during custom widget implementation will produce DeprecationWarning

Deprecations ⚡

  • Refactor: join display modules in package by @penguinolog in #655
    • Backward-compatible. Main display modules import will not produce DeprecationWarning.

Documentation 🕮

  • Fix #186 - disconnect_by_key should be exposed and use correct name by @penguinolog in #688
  • Extend input_test example for better debug capabilities by @penguinolog in #713
    • Support alternative event loops and debug logging.

Refactoring 🛠

Full Changelog: 2.3.4...2.4.0

2.3.4

05 Dec 16:32
09f6c3b
Compare
Choose a tag to compare

What's Changed

New features 🗹

  • Replace deprecated use of MultiError with exceptiongroup by @DRMacIver in #679
  • Declare extension use Py_LIMITED_API explicit also in setup.py by @penguinolog in #686

Bug fixes 🕷

Documentation 🕮

Refactoring 🛠

Other Changes

New Contributors

Full Changelog: 2.2.3...2.3.4

2.2.3

19 Oct 12:44
fd35a00
Compare
Choose a tag to compare

What's Changed

New features 🗹

Deprecations ⚡

  • Refactoring numedit: PEP8 arguments, allow negative, type casts by @penguinolog in #636
    USE PEP8 compliant arguments and deprecate old one
    Allow cast IntEdit to int and FloatEdit to float
    Allow negative values without changing default behavior

Bug fixes 🕷

Documentation 🕮

Refactoring 🛠

Full Changelog: 2.2.2...2.2.3

2.2.2

25 Sep 19:28
a453d09
Compare
Choose a tag to compare

What's Changed

New features 🗹

  • Feature: Support pack() for CheckBox/RadioButton/Button by @penguinolog in #621

Deprecations ⚡

Bug fixes 🕷

Documentation 🕮

Refactoring 🛠

New Contributors

Full Changelog: 2.2.1...2.2.2

2.2.1

22 Sep 15:30
1ee80ce
Compare
Choose a tag to compare

What's Changed

Bug fixes 🕷

Documentation 🕮

Refactoring 🛠

Full Changelog: 2.2.0...2.2.1

2.2.0

21 Sep 08:25
cce5326
Compare
Choose a tag to compare

Main changes

Compatibility

New Features

Fixes

  • fix: restore normal screen on ctrl-z by @proskur1n in #477
  • Reconnect the 'modified' signal after setting a new ListBox.body by @exquo in #474
  • Allow signal handling interoperability with raw display by @AnonymouX47 in #557
  • Fix alternate/normal screen buffer switch for raw display by @AnonymouX47 in #556
  • Fix text layout for align="center", wrap="clip" when maxcol == line_width - 1 by @AnonymouX47 in #543
  • Fix assertion failure when string contains SO but not SI by @mfncooper in #489
  • Fix empty markup handling by @penguinolog in #536
  • Resolve #499 and add tests by @djyotta in #500
  • vterm: Fixed OSC 0,2 to set widget title properly (decode bytestring) by @danschwarz in #561
  • vterm: Fixed a crash bug with DECALN command by @danschwarz in #560
  • Fix #443 : export ELLIPSIS constant by @penguinolog in #527
  • Fix: #445 - add __len__ to listbox with validation if body Sized by @penguinolog in #534
  • Fix old_str_util.decode_one : support bytes and str as arguments by @penguinolog in #531
  • Use locale.getpreferredencoding(False) if possible (most systems) F… by @penguinolog in #528
  • Fix TextCanvas CanvasError("Attribute extends beyond text...") by @penguinolog in #555
  • Fix merging attributes while decomposing tag markup by @mandre in #507
  • fix: use trio.lowlevel instead of trio.hazmat with Trio >= 0.15 by @ntamas in #439
  • Fix TypeError in signals module on weak object finalize by GC by @rvtpro in #503
  • Include _resize_pipe_rd in fd_list for _wait_for_input_ready for raw_display by @inducer in #453
  • container: fix duplicate text by @vapier in #490
  • Provide 80x24 fallback for ansi and vt100 by @roadriverrail in #465

Refactoring

Documentation and examples

Other changes

New Contributors

Full Changelog: https://github.com/urwid/urwid/commits/2.2.0