Traits

Latest version: v6.4.3

Safety actively analyzes 628918 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 8

7.3.0

-------------

TraitsUI 7.3.0 is a minor release which includes numerous bug fixes,
documentation improvements, code maintenance changes, and enhancements.

Highlights of this release
~~~~~~~~~~~~~~~~~~~~~~~~~~

* The most important new features are experimental support for Qt6, both for
PySide6 and PyQt6 (although the latter is less complete).
* Qt4 is deprecated and is no longer being tested in CI. Support will be
removed in the next major release.
* The new Pyface Font and Color classes can now be used with the TraitsUI
Color and Font traits.
* The image editor can now use any Pyface IImage instance, allowing simple
dynamic image editing.
* Numerous bugfixes and small improvements to existing editors.

Thanks To
~~~~~~~~~

* Chris Angell
* Aaron Ayres
* Per A. Brodtkorb
* Mark Dickinson
* Petr Kungurtsev
* Eric Larson
* Nicola De Mitri
* Rahul Poruri
* PyHannes
* Diego Ramirez
* Pedro Rivotti
* Corran Webster

Features
~~~~~~~~

* Expose TreeEditor actions and IconSize in traitsui.editors.api (1690)
* Add UITester support for qt TableEditor (1707)
* Add UITester DirectoryEditor support (1710)
* Add an expand_all method to TreeEditor (1726)
* Used Black to ensure a uniform codestyle for TraitsUI (1760)
* Allow per-row tooltips in the ListStrEditor's adapter (1766)
* PySide6 support (1803)
* Add support for Pyface Color and standaize color names (1812)
* Pyface Fonts can be used with TraitsUI Font traits (1819)
* Add ListStrAdapter to traitsui.api (1823)
* Remove uses of the archaic `property_depends_on` decorator (1832)
* Require Pyface 7.4.1 (1840)

Fixes
~~~~~

* Call HasPrivateTraits.__init__() in GroupEditor.__init__ (1674)
* Add RangeEditor support for format_func and deprecate ``format`` trait on
RangeEditor factory / toolkit specific Editor implementations (1684)
* Fix Dynamic EnumEditor on qt (1719)
* Fix ProgressColumn bars overlapping with PyQt5 and PySide2 (1721)
* Fix selectable InstanceEditor combobox updates (1725)
* Fix Qt InstanceEditor appearance when None selected (1728)
* Prevent RangeTextEditor from allowing values outside range (1731)
* Fix droppable InstanceEditor (1733)
* Fix double error dialogs (1734)
* Convert ``traitsui.instance_choice.InstanceChoiceItem`` into an instance of
``traits.api.ABCHasStrictTraits`` to avoid users from instantiating the
object directly (1738)
* Fix issue with incorrect items added via context menu in a TreeEditor (1745)
* Fix name errors and refactor flake8 config to reduce the chance of future errors. (1754)
* Fix NotebookEditor initial `selected` (1791)
* Convert Qt Enums to be compatible with PyQt6 (1798)
* Fix SimpleSpinEditor "enter set" on qt (1804)
* Fix issue with ImageEditor not updating for all IImage implementations. (1810)
* Fix issues with KeyBindings. (1817)
* Fix the KeyBindingEditor. (1820)
* Improve error colors for dark mode on Qt. (1821)

Documentation changes
~~~~~~~~~~~~~~~~~~~~~

* Move "array_editor" to "StandardEditors" contributed examples (1691)

Test suite
~~~~~~~~~~

* Stop testing against pyqt4 on CI (1686)
* Remove tests and examples that depend on Chaco and Enable. (1833)

7.2.1

-------------

TraitsUI 7.2.1 is a bugfix release which updates TraitsUI to explicitly require
Traits 6.2+ and Pyface 7.3+.

Build and continuous integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Explicitly require traits 6.2 and pyface 7.3 (1666, 1668)

7.2.0

-------------

TraitsUI 7.2.0 is a minor release which includes numerous bug fixes,
documentation improvements, code maintenance changes, and enhancements.

Highlights of this release
~~~~~~~~~~~~~~~~~~~~~~~~~~

* The migration from ``on_trait_change`` to ``observe`` is underway. As a
result, TraitsUI now requires Traits >= 6.2.
* New display-only VideoEditor (currently only on Qt backend).
* Exapnsion of features for the new ``UITester`` including the ability to
inspect UI object visibility / enabledness. Also documentation for testing
has been updated.

Notes on upgrading
~~~~~~~~~~~~~~~~~~

* This release of TraitsUI now depends on Traits 6.2+ and pyface 7.2+. Also,
deprecated code / modules have been removed. Namely, the
:mod:`traitsui.image <traitsui.image>` module which was moved to
``pyface.image``, ``editors_gen`` modules, Editor and EditorFactory factory
methods on Toolkit objects, and more. For a complete list, see PRs in the
"Removals" section below. These were all generally unused / deprecated for
sometime. Also, importing directly from ``traitsui.editors`` has been
deprecated. Please update imports to import directly from :mod:`traitsui.api`
or :mod:`traitsui.editors.api`.

Detailed changes
~~~~~~~~~~~~~~~~

Thanks to:

* Aaron Ayres
* Kit Yan Choi
* Mark Dickinson
* Rahul Poruri
* Corran Webster

Enhancements
~~~~~~~~~~~~

* Open links externally instead of in the html editor in etsdemo application (1446)
* Hide demo tab when the demo is None (1456)
* Extract an interface from TargetRegistry to allow wider testing support for IsEnabled (1490)
* Expose clearButtonEnabled for Qt TextEditor (1516)
* Extend / document secret TreeNode api for passing tuples into add list trait (1527)
* Add 'IsVisible` query class for UI Tester (1552)
* Extend button editor to allow dynamically changing button image (1566)
* Support testing with simple FileEditor (without dialog) (1571)
* Qt VideoEditor (745, 1609, 1621)
* Add item_factory callable for specifying creation of new list items (1634)

Fixes
~~~~~

* Support HTMLEditor.open_externally on QtWebEngine (1451)
* Qt InstanceEditor button should never be the default (1498)
* Propagate UI errors to the UI's parent (1503)
* Fix resizable readonly enum editor (1532)
* StartStyling API changed for new Wx version (1536)
* Don't use html for a variable name when using html module from standard library (1540)
* Label {visible/enabled}_when (1544)
* manually set the text format to plain text in error (1546)
* Fix RGBColor hex int to tuple color conversion (1554)
* Make Scrollable group respect visible_when (1555)
* Use correct source_path in example (1433)
* Move EnumEditor import in table_filter into the methods that need it (1616)

Documentation
~~~~~~~~~~~~~

* Add a module docstring to the api modules (1441)
* Use viewcode sphinx extension (1443)
* Add links to API docs in a etsdemo examples for traitsui standard editors (1445)
* Clarify which of traitsui.api and traitsui.editors.api is recommended (1471)
* traitsui.testing documentation updates (1482, 1483, 1485, 1486, 1487, 1488)
* Fix link label to the documentation home page (1489)
* Document enabled_when / visible_when better (1537)
* Document entries parameter not supported qt for FileEditor/DirectoryEditor (1557
* Add script to regenerate screenshots of editors for documentation (1574)
* Remove unused images in docs (1584)
* replace with : to document traits in traitsui.editors.* (1596)
* User facing docs for VideoEditor (1630)
* Format code examples in the user documentation (1640)

Build and continuous integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Fix cron job not installing additional dependencies (1427)
* Remove job on Travis for testing against Traits 6.0 (1430)
* Drop Python 3.5 support in TraitsUI (1436)
* Declare Python 3.5 not supported for ets-demo (1437)
* Fix link for installing wxPython on CI (for etsdemo) (1491)
* Add GitHub Actions to test against EDM (1492)
* Add GitHub Actions workflow for testing ets-demo (1496)
* Use EDM 3.2.3 instead of EDM 3.2.1 (1548)
* Drop support for PyQt < 4.3.2 (1607)
* Remove CI test against Traits 6.0 (1637)
* explicitly install swig 3.0.12 for cron job (1652)

Test suite
~~~~~~~~~~

* Refactor and extend tests for Qt HTMLEditor handling of opening links (1465)
* Update new test_editor_error_msg (1553)
* Unskip "EnumEditor" tests that were failing earlier on windows (1615)
* skip video editor test without numpy / move numpy import to when it is needed
/ list numpy as test dependency (1639)
* skip test if no QtWebkit or QtWebEngine (1649)
* skip a couple wx test failures (1656)

Maintenance and code organization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Add pygments to etsdemo's etstool.py (1453)
* Add help aliases to etsdemo etstool module (1457)
* Fix/Update copyright headers (1467, 1486)
* work towards flake8 clean codebase (1469, 1562, 1563)
* Remove meaningless comments from an outdated coding style. (1472)
* Remove clause that deviates from PEP8 backward compatibility convention in the testing package (1481)
* Formal editor interface for tooltips (1493
* Add instance choice classes to traitsui.api (1495)
* Undo/Redo cleanup (1510)
* start on_trait_change to observe migration (1519, 1520, 1523, 1525, 1545, 1622, 1644)
* Refactor TreeEditor _new_actions and _menu_new_node to avoid hacky eval (1524)
* Refactor _add_items method of _GroupPanel object (1549)
* Add new trait to eventually replace scroll_to_row_hint (1560)
* Add 'default': True to the etsdemo eam metadata (1568)
* update "super" usage (1583, 1587, 1588, 1589, 1604)
* Use "str.capitalize" directly instead of an alias (1598)
* Use "PrefixList" from traits >= 6.1 (1599)
* Update use of deprecated "Thread.setDaemon" (1601)
* Replace deprecated "wx.ListItemAttr" with "wx.ItemAttr" (1602)
* Adds "traitsui.toolkit.toolkit_object" to "traitsui.api" (1603)
* Import "TraitFactory" from "traits.api" (1606)
* Rename editor factory classes (1610)
* Cleanup imports in "traitsui.editors.*" (1619)

Removals
~~~~~~~~

* Remove deprecated classes/modules (1594)
* remove traitsui.image submodule (1595)
* Remove Editor and EditorFactory factory methods on Toolkit objects (1600)
* Remove backwards compatibility toolkit factory imports (1608)
* Remove unused "Item.full_size" trait (1613)
* Remove code handling old/outdated versions of wx (1614)
* Remove unused editors_gen modules (1626)

7.1.1

-------------

This is a bugfix release that fixes a number of issues since the 7.1.0 release.
Thanks to Corran Webster and Kit Choi for the patches.

Fixes
~~~~~
- Fix ``scrollable`` trait of a Group not being implemented on Qt (1406)
- Fix icon button's clickable area too small for FileEditor and RangeEditor on
Qt and OSX (1383)
- Fix missing minimize and maximize buttons for dialogs opened on certain
Linux platforms (1409)

7.1.0

-------------

TraitsUI 7.1.0 is a minor feature release which introduces a new testing library
and a number of significant fixes. Demo examples are also distributed as
package data such that they are visible via the "etsdemo" GUI application (to
be installed separately).

This release should be compatible with Traits 6.0+. Users are encouraged to
upgrade to Traits 6.1+ to stay current as future releases of TraitsUI will
stop supporting Traits 6.0.

Highlights of this release
~~~~~~~~~~~~~~~~~~~~~~~~~~

* A new :mod:`traitsui.testing.api` module has been introduced for testing
GUI applications built using TraitsUI. See
:ref:`testing-traitsui-applications` for an introduction. Builtin support
has been added for testing several TraitsUI editors. More support will be
added in the future.
* On OSX and Qt, there have been reports of missing UI view updates after
a push button is clicked. While this is suspected to be a Qt issue, changes
have been made to ButtonEditor, SetEditor and ImageEnumEditor to mitigate the
situation.
* The internal logic for disposing an instance of :class:`~traitsui.ui.UI` is
changed as an attempt to resolve AttributeError that occurs while a nested
UI is removed.

Notes on upgrading
~~~~~~~~~~~~~~~~~~

* On the issue about Qt button not causing views to update on OSX, projects
that have been working around the issue by adding ``GUI().process_events()``
(or similar) in their applications may now try to remove those workarounds.
However, the change that mitigates the issue in a production environment has
implications for tests: The button's click slot is no longer invoked
immediately but always invoked by the Qt GUI event loop. Tests that used to
call the Qt button ``click`` method directly and rely on the event to happen
immediately will now need to update their tests to ensure that the click slot
is processed by the Qt GUI event loop in the same order as before. Consider
using the new testing library which automatically runs the GUI event loop
after each interaction (e.g. mouse click).

Future removals
~~~~~~~~~~~~~~~

* :mod:`traitsui.image <traitsui.image>` has been moved to ``pyface.image`` more than 3 years
ago and has since been deprecated. Previously it was scheduled to be removed
in TraitsUI 6.0. This planned removal is now deferred to TraitsUI 7.2.

Detailed changes
~~~~~~~~~~~~~~~~

More than 100 PRs went into this release. Thanks to:

* Aaron Ayres
* Ieva Cerny
* Kit Yan Choi
* Mark Dickinson
* James Johnson
* Eric Larson
* Rahul Poruri
* Jonathan Rocher
* Kuya Takami
* Ioannis Tziakos
* Corran Webster

Note that the following list is not exhaustive. Many more PRs references have
been omitted.

Features
~~~~~~~~

* Add :class:`~traitsui.testing.ui_tester.UITester` for testing TraitsUI
applications (1107, 1157, 1171, 1175, 1179, 1201, 1207, 1269)

Fixes
~~~~~

* Fix AttributeError when a nested UI is disposed (1286)
* Fix wx error due to use of alignment flag wxEXPAND (1095)
* Fix ButtonEditor not causing other widgets to update on OSX and Qt (1303)
* Fix ImageEnumEditor button not causing other updates on OSX (1326)
* Fix SetEditor on Qt and OSX not updating view after button clicks (1325)
* Fix for menu actions with on_perform being performed twice (1199)
* Fix deprecation warnings from Traits 6.1 due to the use of PrefixList (1053)
* Fix deprecation warnings from using HasTraits.trait_get (1062)
* Fix deprecation warnings from using QDesktopWidget.availableGeometry (1311)
* Fix deprecation warnings from using logging.warn (1165)
* Fix deprecation warnings from using ABC in collections (1103, 1129)

Documentation
~~~~~~~~~~~~~

* Make demo examples as package data (1088)
* Add UITester documentation in User Manual (1263)
* Add Developer Guide with internals on the testing package (1314)
* Fix warnings in demo examples documentation (1378)
* Generate API documentation automatically (1368)

Build and continuous integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Add a CI job for testing against traits 6.0 (1108)
* Move MacOS CI build from Travis to Appveyor (1160)
* Add flake8 task to CI with exclusions (1222)
* Explicitly declare additional dependencies for demo examples (1147)
* Explicitly require a minimum version for Traits (1323)

Maintenance and code organization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Relax constraint on PySide2 version (1146)
* Update edm version in travis and appveyor config files (1049)
* Resolve warnings in tests from QItemSelectionModel with Qt5 (1041)
* Improve how we capture and re-raise errors in GUI tests (1099)
* Replace screen metrics code with Pyface implementation (1322)
* Fix deprecation warnings from certain usage of QDateTime in tests (1310)
* Add a new shell command to etstool.py (1244)

7.0.1

-------------

This is a bugfix release that fixes a number of issues since the 7.0.0 release.
It includes fixes to various editors, improvements to tests and fixes to the
demo application.

Thanks to Ieva Cerny, Kit Choi, Mark Dickinson, Robert Kern, Eric Larson,
Federico Miorelli, Joris Vankerschaver, Corran Webster.

Fixes
~~~~~
* Fix error from true division of integers for Qt RangeEditor and BoundsEditor
(999, 1000)
* Fix handling of minimum and maximum datetimes in Qt DatetimeEditor (803)
* Fix error in wx TabularEditor (969)
* Fix wx panel error due to alignments (829)
* Fix various issues in the demo application (799, 808)
* Fix format_func not used when EnumEditor is initialized with static values
(848)
* Fix demo application description (850)
* Fix auto-add functionality in ListStrModel (860)
* Fix segmentation fault for TabularModel (871, 873)
* Fix event handling in ListStrEditor and TabularEditor for adding and removing
items (875)
* Fix TabularAdapter crashes when column number reduces (897)
* Fix theme pickling issue (915)
* Fix error from example's tutor.py script (813)

Documentation
~~~~~~~~~~~~~
* Add links from TabularEditor and TreeEditor to adapter documentation (917)

Tests
~~~~~
* Rewrite nose tests to unittest (809)
* Use unittest discover instead of nose.core (810)
* Add more tests for EnumEditor (836)
* Add CheckListEditor tests (837)
* Add SetEditor tests (838)
* Add ImageEnumEditor tests (845)
* Add more ListStrEditor tests (869)
* Add more TabularEditor tests (874)
* Make sure all UI in tests are disposed (865)
* Add tests for layout and labels using any non-null toolkits (846)

Page 2 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.