mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
14 KiB
14 KiB
Change Log
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.
[0.10.0] - Unreleased
Added
- Added
TreeNode.parent-- a read-only property for accessing a node's parent https://github.com/Textualize/textual/issues/1397 - Added public
TreeNodelabel access viaTreeNode.labelhttps://github.com/Textualize/textual/issues/1396 - Added read-only public access to the children of a
TreeNodeviaTreeNode.childrenhttps://github.com/Textualize/textual/issues/1398
Changed
MouseScrollUpandMouseScrollDownnow inherit fromMouseEventand have attached modifier keys. https://github.com/Textualize/textual/pull/1458- Fail-fast and print pretty tracebacks for Widget compose errors https://github.com/Textualize/textual/pull/1505
- Added Widget._refresh_scroll to avoid expensive layout when scrolling https://github.com/Textualize/textual/pull/1524
events.Pastenow bubbles https://github.com/Textualize/textual/issues/1434
Fixed
- The styles
scrollbar-background-activeandscrollbar-color-hoverare no longer ignored https://github.com/Textualize/textual/pull/1480 - The widget
Placeholdercan now have its width set toautohttps://github.com/Textualize/textual/pull/1508
0.9.1 - 2022-12-30
Added
- Added textual._win_sleep for Python on Windows < 3.11 https://github.com/Textualize/textual/pull/1457
0.9.0 - 2022-12-30
Added
- Added textual.strip.Strip primitive
- Added textual._cache.FIFOCache
- Added an option to clear columns in DataTable.clear() https://github.com/Textualize/textual/pull/1427
Changed
- Widget.render_line now returns a Strip
- Fix for slow updates on Windows
- Bumped Rich dependency
0.8.2 - 2022-12-28
Fixed
- Fixed issue with TextLog.clear() https://github.com/Textualize/textual/issues/1447
0.8.1 - 2022-12-25
Fixed
- Fix for overflowing tree issue https://github.com/Textualize/textual/issues/1425
0.8.0 - 2022-12-22
Fixed
- Fixed issues with nested auto dimensions https://github.com/Textualize/textual/issues/1402
- Fixed watch method incorrectly running on first set when value hasn't changed and init=False https://github.com/Textualize/textual/pull/1367
App.darkcan now be set fromApp.on_loadwithout an error being raised https://github.com/Textualize/textual/issues/1369- Fixed setting
visibilitychanges needing arefreshhttps://github.com/Textualize/textual/issues/1355
Added
- Added
textual.actions.SkipActionexception which can be raised from an action to allow parents to process bindings. - Added
textual keyspreview. - Added ability to bind to a character in addition to key name. i.e. you can bind to "." or "full_stop".
- Added TextLog.shrink attribute to allow renderable to reduce in size to fit width.
Changed
- Deprecated
PRIORITY_BINDINGSclass variable. - Renamed
chartocharacteron Key event. - Renamed
key_nametonameon Key event. - Queries/
walk_childrenno longer includes self in results by default https://github.com/Textualize/textual/pull/1416
0.7.0 - 2022-12-17
Added
- Added
PRIORITY_BINDINGSclass variable, which can be used to control if a widget's bindings have priority by default. https://github.com/Textualize/textual/issues/1343
Changed
- Renamed the
Bindingargumentuniversaltopriority. https://github.com/Textualize/textual/issues/1343 - When looking for bindings that have priority, they are now looked from
Appdownwards. https://github.com/Textualize/textual/issues/1343 BINDINGSon anApp-derived class have priority by default. https://github.com/Textualize/textual/issues/1343BINDINGSon aScreen-derived class have priority by default. https://github.com/Textualize/textual/issues/1343- Added a message parameter to Widget.exit
Fixed
- Fixed validator not running on first reactive set https://github.com/Textualize/textual/pull/1359
- Ensure only printable characters are used as key_display https://github.com/Textualize/textual/pull/1361
0.6.0 - 2022-12-11
Added
- Added "inherited bindings" -- BINDINGS classvar will be merged with base classes, unless inherit_bindings is set to False
- Added
Treewidget which replacesTreeControl. - Added widget
Placeholderhttps://github.com/Textualize/textual/issues/1200.
Changed
- Rebuilt
DirectoryTreewith newTreecontrol. - Empty containers with a dimension set to
"auto"will now collapse instead of filling up the available space. - Container widgets now have default height of
1fr. - The default
widthof aLabelis nowauto.
Fixed
- Type selectors can now contain numbers https://github.com/Textualize/textual/issues/1253
- Fixed visibility not affecting children https://github.com/Textualize/textual/issues/1313
- Fixed issue with auto width/height and relative children https://github.com/Textualize/textual/issues/1319
- Fixed issue with offset applied to containers https://github.com/Textualize/textual/issues/1256
- Fixed default CSS retrieval for widgets with no
DEFAULT_CSSthat inherited from widgets withDEFAULT_CSShttps://github.com/Textualize/textual/issues/1335 - Fixed merging of
BINDINGSwhen binding inheritance is set toNonehttps://github.com/Textualize/textual/issues/1351
0.5.0 - 2022-11-20
Added
- Add get_child_by_id and get_widget_by_id, remove get_child https://github.com/Textualize/textual/pull/1146
- Add easing parameter to Widget.scroll_* methods https://github.com/Textualize/textual/pull/1144
- Added Widget.call_later which invokes a callback on idle.
DOMNode.ancestorsno longer includesself.- Added
DOMNode.ancestors_with_self, which retains the old behaviour ofDOMNode.ancestors. - Improved the speed of
DOMQuery.remove. - Added DataTable.clear
- Added low-level
textual.walkmethods. - It is now possible to
awaitaWidget.remove. https://github.com/Textualize/textual/issues/1094 - It is now possible to
awaitaDOMQuery.remove. Note that this changes the return value ofDOMQuery.remove, which used to returnself. https://github.com/Textualize/textual/issues/1094 - Added Pilot.wait_for_animation
- Added
Widget.move_childhttps://github.com/Textualize/textual/issues/1121 - Added a
Labelwidget https://github.com/Textualize/textual/issues/1190 - Support lazy-instantiated Screens (callables in App.SCREENS) https://github.com/Textualize/textual/pull/1185
- Display of keys in footer has more sensible defaults https://github.com/Textualize/textual/pull/1213
- Add App.get_key_display, allowing custom key_display App-wide https://github.com/Textualize/textual/pull/1213
Changed
- Watchers are now called immediately when setting the attribute if they are synchronous. https://github.com/Textualize/textual/pull/1145
- Widget.call_later has been renamed to Widget.call_after_refresh.
- Button variant values are now checked at runtime. https://github.com/Textualize/textual/issues/1189
- Added caching of some properties in Styles object
Fixed
- Fixed DataTable row not updating after add https://github.com/Textualize/textual/issues/1026
- Fixed issues with animation. Now objects of different types may be animated.
- Fixed containers with transparent background not showing borders https://github.com/Textualize/textual/issues/1175
- Fixed auto-width in horizontal containers https://github.com/Textualize/textual/pull/1155
- Fixed Input cursor invisible when placeholder empty https://github.com/Textualize/textual/pull/1202
- Fixed deadlock when removing widgets from the App https://github.com/Textualize/textual/pull/1219
0.4.0 - 2022-11-08
https://textual.textualize.io/blog/2022/11/08/version-040/#version-040
Changed
- Dropped support for mounting "named" and "anonymous" widgets via
App.mountandWidget.mount. Both methods now simply take one or more widgets as positional arguments. DOMNode.query_onenow raises aTooManyMatchesexception if there is more than one matching node. https://github.com/Textualize/textual/issues/1096App.mountandWidget.mounthave newbeforeandafterparameters https://github.com/Textualize/textual/issues/778
Added
- Added
initparam to reactive.watch CSS_PATHcan now be a list of CSS files https://github.com/Textualize/textual/pull/1079- Added
DOMQuery.only_onehttps://github.com/Textualize/textual/issues/1096 - Writes to stdout are now done in a thread, for smoother animation. https://github.com/Textualize/textual/pull/1104
0.3.0 - 2022-10-31
Fixed
- Fixed issue where scrollbars weren't being unmounted
- Fixed fr units for horizontal and vertical layouts https://github.com/Textualize/textual/pull/1067
- Fixed
textual runbreaking sys.argv https://github.com/Textualize/textual/issues/1064 - Fixed footer not updating styles when toggling dark mode
- Fixed how the app title in a
Headeris centred https://github.com/Textualize/textual/issues/1060 - Fixed the swapping of button variants https://github.com/Textualize/textual/issues/1048
- Fixed reserved characters in screenshots https://github.com/Textualize/textual/issues/993
- Fixed issue with TextLog max_lines https://github.com/Textualize/textual/issues/1058
Changed
- DOMQuery now raises InvalidQueryFormat in response to invalid query strings, rather than cryptic CSS error
- Dropped quit_after, screenshot, and screenshot_title from App.run, which can all be done via auto_pilot
- Widgets are now closed in reversed DOM order
- Input widget justify hardcoded to left to prevent text-align interference
- Changed
textual runso that it patchesargvin more situations - DOM classes and IDs are now always treated fully case-sensitive https://github.com/Textualize/textual/issues/1047
Added
- Added Unmount event
- Added App.run_async method
- Added App.run_test context manager
- Added auto_pilot to App.run and App.run_async
- Added Widget._get_virtual_dom to get scrollbars
- Added size parameter to run and run_async
- Added always_update to reactive
- Returned an awaitable from push_screen, switch_screen, and install_screen https://github.com/Textualize/textual/pull/1061
0.2.1 - 2022-10-23
Changed
- Updated meta data for PyPI
0.2.0 - 2022-10-23
Added
- CSS support
- Too numerous to mention
0.1.18 - 2022-04-30
Changed
- Bump typing extensions
0.1.17 - 2022-03-10
Changed
- Bumped Rich dependency
0.1.16 - 2022-03-10
Fixed
- Fixed escape key hanging on Windows
0.1.15 - 2022-01-31
Added
- Added Windows Driver
0.1.14 - 2022-01-09
Changed
- Updated Rich dependency to 11.X
0.1.13 - 2022-01-01
Fixed
- Fixed spurious characters when exiting app
- Fixed increasing delay when exiting
0.1.12 - 2021-09-20
Added
- Added geometry.Spacing
Fixed
- Fixed calculation of virtual size in scroll views
0.1.11 - 2021-09-12
Changed
- Changed message handlers to use prefix handle_
- Renamed messages to drop the Message suffix
- Events now bubble by default
- Refactor of layout
Added
- Added App.measure
- Added auto_width to Vertical Layout, WindowView, an ScrollView
- Added big_table.py example
- Added easing.py example
0.1.10 - 2021-08-25
Added
- Added keyboard control of tree control
- Added Widget.gutter to calculate space between renderable and outside edge
- Added margin, padding, and border attributes to Widget
Changed
- Callbacks may be async or non-async.
- Event handler event argument is optional.
- Fixed exception in clock example https://github.com/willmcgugan/textual/issues/52
- Added Message.wait() which waits for a message to be processed
- Key events are now sent to widgets first, before processing bindings
0.1.9 - 2021-08-06
Added
- Added hover over and mouse click to activate keys in footer
- Added verbosity argument to Widget.log
Changed
- Simplified events. Remove Startup event (use Mount)
- Changed geometry.Point to geometry.Offset and geometry.Dimensions to geometry.Size
0.1.8 - 2021-07-17
Fixed
- Fixed exiting mouse mode
- Fixed slow animation
Added
- New log system
0.1.7 - 2021-07-14
Changed
- Added functionality to calculator example.
- Scrollview now shows scrollbars automatically
- New handler system for messages that doesn't require inheritance
- Improved traceback handling