/pyface

pyface: traits-capable windowing framework

Primary LanguagePythonOtherNOASSERTION

Pyface: Traits-capable Windowing Framework

The Pyface project contains a toolkit-independent GUI abstraction layer, which is used to support the "visualization" features of the Traits package. Thus, you can write code in terms of the Traits API (views, items, editors, etc.), and let Pyface and your selected toolkit and back-end take care of the details of displaying them.

The following GUI backends are supported:

  • PySide2 (stable) and PySide6 (experimental)
  • PyQt5 (stable) and PyQt6 (in development)
  • wxPython 4 (experimental)

Installation

GUI backends are marked as optional dependencies of Pyface. Some features or infrastructures may also require additional dependencies.

To install with PySide2 dependencies:

$ pip install pyface[pyside2]

To install with PySide6 dependencies (experimental):

$ pip install pyface[pyside6]

To install with PyQt5 dependencies:

$ pip install pyface[pyqt5]

To install with wxPython4 dependencies (experimental):

$ pip install pyface[wx]

pillow is an optional dependency for the PILImage class:

$ pip install pyface[pillow]

To install with additional test dependencies:

$ pip install pyface[test]

Documentation

Prerequisites

Pyface depends on:

  • Traits
  • a GUI toolkit as described above
  • Pygments for syntax highlighting in the Qt code editor widget.
  • some widgets may have additional optional dependencies such as NumPy or Pillow.

Developing Pyface

The etstool.py script provides utilities to assist developers wanting to work on Pyface. To use it, you will need to have the source checked out via Git, Enthought's EDM distribution manager, and a minimal environment containing at least the Click library.

You can then follow the instructions in etstool.py. In particular:

  • use etstool.py install to create environments for particular toolkits and runtimes
  • use etstool.py shell to activate those environments
  • use etstool.py test to run the tests in those environments
  • use etstool.py flake8 to perform style checks
  • use etstool.py docs to build the documentation
  • use etstool.py test-all to run the tests across all supported runtimes and toolkits

License

Pyface source code is licensed with a BSD-style license. Some default images are licensed with other licenses. See the license files for further information.