pyface: traits-capable windowing framework
OTHER License
This is a major release which removes a number of things which have been deprecated for a number of years. The most significant change in this release is that the Qt toolkit backend has been moved from the pyface.ui.qt4
package to the pyface.ui.qt
package. The "qt4" namespace had been an ongoing source of confusion as Qt5 and Qt6 became the most popular versions of Qt in use. Because this change has the potential to cause significant backwards compatibility issues, this release includes import hooks to continue to support imports from pyface.ui.qt4...
which can be enabled by:
ETS_TOOLKIT
or ETSConfig.toolkit
values.ETS_QT4_IMPORT
environment variable to a non-empty valuesys.meta_path
In particular the environment variables allow users of ETS-based applications such as Mayavi to continue to use those applications with newer versions of Pyface until there is time to update their code to the new import locations.
Additionally this release uses the module-level __getattr__
system introduced in Python 3.7 to delay imports from the api
modules which have side-effects, particularly toolkit selection. This means that you can, for example, import pyface.api
and toolkit selection will be deferred until you actually request a class or object which is toolkit-dependent. Part of this included adding formal interfaces for ActionManager
and its subclasses
In addition this release:
pyface.qt
, such as pyface.qt.QtWidgets
.api
modules.Thanks to:
pyface.ui.qt4
to pyface.ui.qt
(#1223, #1228)api
modules; new interfaces forActionManager
and its subclasses (#1229)confirm
function (#1221)api
modules and other improvemnts to api
modulesGUI
invoke_later
andset_trait_later
on Qt (#1226)exec
instead of exec_
where possible (#1208)setup.py
and use pyproject.toml
(#1203, #1214)Published by corranwebster almost 2 years ago
This is a quick bugfix release that resolves some issues with the 7.4.3 release on CI for downstream projects. The issues were on testing code, and so shouldn't impact application code or behaviour.
Published by corranwebster almost 2 years ago
This is a bugfix release that collects a number of additional issues discovered
and fixed since the 7.4.2 release. Among the fixes, this pins PySide6 to less than
6.4.0, as 6.4 has breaking changes in it.
Published by corranwebster over 2 years ago
This is a bugfix release that collects a number of additional issues discovered
and fixed since the 7.4.1 release.
Thanks to:
Published by corranwebster over 2 years ago
This is a bugfix release that fixes an issue that was causing memory
corruption and occasional segfaults when using the new ArrayImage and
PILImage classes on Windows with PySide2.
Thanks to:
Published by corranwebster over 2 years ago
This release features some significant refactoring and reorganisation of the
Pyface API aimed at making it generally more coherent. Specific changes
include:
__init__
method. This was done by a small minority of Widget classes,All changes should be backwards compatible, and deprecated APIs have a clear
path forward.
Additionally, this release adds experimental support for Qt 6 in the pyface.qt
API. Downstream packages can use the "pyqt6" and "pyside6" values for
QT_API
and CI is being run and passing with PySide6. We generally plan to
move the default development environment to Python 3.8 and PySide6 over the
next few months.
Corresponding to this, PyQt4 support is deprecated, CI is no longer being run
for PyQt4 (which has been at end-of-life since 2015) and remaining support for
PyQt4 will be removed in the next major release.
Thanks to:
Published by aaronayres35 over 3 years ago
The most significant change introduced in this minor release is the
replacement of Traits on_trait_change
-based listeners with the new Traits
observation framework.
This release is only compatible with Traits >= 6.2.0 i.e. the most recent
version of Traits.
on_trait_change
with observe
.Thanks to:
Fixes
Documentation
pyface.tasks
submodules. (#844)pyface.undo
andpyface.undo.action
submodules. (#847)pyface.action
andpyface.tasks.action
submodules. (#843)Build, Tests and Continuous Integration
python_requires
to support Python >= 3.6. (#850)Maintenance and code reorganization
traits
on_trait_change
with observe
. (#892, #882,traits.api
where possible. (#866)Published by aaronayres35 almost 4 years ago
Pyface 7.2.0 is a minor release which introduces a variety of bug fixes,
documentation updates, and other code maintenance. The most significant change
introduced by this release is the addition of undo/redo functionality from the
undo subpackage copied from apptools.
This release should still be compatible with Traits 6.0+. Users are encouraged
to upgrade to Traits 6.1+ to stay current as future releases of Pyface will
stop supporting Traits 6.0.
undo <pyface.undo>
subpackage that has been copied over fromThanks to:
Features
Fixes
Build and continuous integration
Documentation
Maintenance and code organization
Published by kitchoi about 4 years ago
Pyface 7.1.0 introduces a few new features and fixes to deprecation warnings.
There are also internal cleanups to Qt signal connection logic that should be invisible to users.
A new pyface.data_view
subpackage has been introduced to support visualization of hierarchical and non-hierarchical tabular data. See Pyface DataViews section of the user manual for an introduction. Additional examples are also added to the source distribution. Please note that as of this release the API is provisional.
A new pyface.color.Color
class and a corresponding pyface.ui_traits.PyfaceColor
trait type have been
introduced to support representing colors via a toolkit independent API. See Trait Types section of the user manual for further details.
More than 70 PRs went into this release. Thanks to:
Aaron Ayres, Ieva Cernyte, Mark Dickinson, Kit Yan Choi, Rahul Poruri, Corran Webster
Note that the following list is not exhaustive. Some PRs references have been omitted.
Features
pyface.data_view
subpackage for visualizing hierarchical and non-hierarchical data. (#619, #661, #682, #683, #694, #709)Color
and PyfaceColor
trait type. (#608, #710, #703)Fixes
Build and continuous integration
Documentation
Maintenance and code organization
Published by kitchoi over 4 years ago
This is a bugfix release which fixes a number of minor issues with the 7.0.0
release.
Thanks to:
Aaron Ayres, Kit Choi, Rahul Poruri, Pedro Rivotti, Corran Webster.
Published by corranwebster over 4 years ago
Pyface 7.0.0 is a major release which focuses on modernization of the
codebase. This release includes updating the WxPython backend to support
WxPython 4, an effort led by Rob McMullen's first cut at support, with
help from a number of other people. It also updates the code to use new
features of Traits 6, and just like Traits 6, this release drops support
for Python 2.
The release includes many bugfixes and a number of smaller incremental
enhancements. Other than the changed dependencies, Pyface 6 code should
largely work unmodified under Pyface 7.
Thanks to:
David Baddeley, Mark Dickinson, Matt Hancock, Petr Kungurtsev, Midhun
Madhusoodanan, Rob McMullen, Shoeb Mohammed, Rahul Poruri, Roberto Preste,
reckoner, Jan von Rickenbach, Chiranth Siddappa, Joris Vankerschaver,
Corran Webster.
Published by corranwebster over 5 years ago
This release introduces a number of new features and bugfixes. The most prominent of these is a set of Application classes designed to smooth the transition between Tasks applications which use only Pyface, and those that take advantage of the Envisage plug-in framework. Developers can now write a Pyface TasksApplication and then easily transition to an Envisage TasksApplication as the needs of their codebase grows. This feature has been a few years in development, and thanks is due to Jonathan Rocher for helping push this through to completion.
This release also includes a complete re-write of the Pyface timer code to make it easier to use and to provide a consistent and more Pythonic API shared by the different back-ends. A backwards compatible API is still available, but users of the Pyface timer code are encouraged to update to the new API.
ToolBars can now embed simple widgets, such as text fields, integer spinners, and comboboxes, as well as simple TraitsUI views. This is provided via a new "widget" style for Actions as well as the utility subclasses FieldAction and TraitsUIWidgetAction.
Although not visible to most users of Pyface, this release removes the use of 2to3 and now uses a unified codebase supported by the six library. Thanks to Rahul Poruri for performing this transformation. This should help significantly with ongoing development work in the coming years.
We also include experimental support for PySide2 (also called "Qt for Python"). We are running CI tests using the 5.11 release of PySide2 with success on OS X and Linux for Python 3, but are experiencing failures with the 5.12 release.
Finally, this release includes a number of bugfixes and minor enhancements which should improve the reliability and utility of the codebase.
Thanks to:
Martin Bergtholdt, Mark Dickinson, Robert Kern, Eric Larson, Gregory Lee,
Eric McDonald, Rahul Poruri, Jonathan Rocher, Hamdi Sahloul, Roger Serwy,
Brian Teague, Corran Webster, John Wiggins.
Apologies to any contributors that have been omitted.
Enhancements
Fixes