{"id":16469369,"url":"https://github.com/enthought/pyface","last_synced_at":"2025-05-15T15:03:59.774Z","repository":{"id":37396888,"uuid":"1632976","full_name":"enthought/pyface","owner":"enthought","description":"pyface: traits-capable windowing framework","archived":false,"fork":false,"pushed_at":"2025-02-11T16:20:24.000Z","size":26330,"stargazers_count":110,"open_issues_count":215,"forks_count":55,"subscribers_count":56,"default_branch":"main","last_synced_at":"2025-03-31T19:09:21.911Z","etag":null,"topics":["gui-framework","pyqt","python","qt","traits","wxpython","wxwidgets"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enthought.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE-CC-BY-3.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-04-18T22:32:06.000Z","updated_at":"2025-02-22T15:10:54.000Z","dependencies_parsed_at":"2024-01-13T06:22:20.215Z","dependency_job_id":"704d991c-3aab-4138-af8e-c360e05d1ac7","html_url":"https://github.com/enthought/pyface","commit_stats":{"total_commits":3426,"total_committers":108,"mean_commits":31.72222222222222,"dds":0.8307063631056626,"last_synced_commit":"46f700999284c8104fb2a5468f549677dfadf063"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fpyface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fpyface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fpyface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enthought%2Fpyface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enthought","download_url":"https://codeload.github.com/enthought/pyface/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721898,"owners_count":20985084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui-framework","pyqt","python","qt","traits","wxpython","wxwidgets"],"created_at":"2024-10-11T12:07:08.595Z","updated_at":"2025-04-07T20:09:41.476Z","avatar_url":"https://github.com/enthought.png","language":"Python","readme":"==========================================\nPyface: Traits-capable Windowing Framework\n==========================================\n\nThe Pyface project contains a toolkit-independent GUI abstraction layer,\nwhich is used to support the \"visualization\" features of the Enthought Tool\nSuite libraries.  Pyface contains Traits-aware wrappers of standard GUI\nelements such as Windows, Dialogs and Fields, together with the \"Tasks\"\napplication framework which provides a rich GUI experience with dock panes,\ntabbed editors, and so forth.  This permits you to write cross-platform\ninteractive GUI code without needing to use the underlying GUI backend.\n\nThe following GUI backends are supported:\n\n- PySide2 (stable) and PySide6 (experimental)\n- PyQt5 (stable) and PyQt6 (in development)\n- wxPython 4 (experimental)\n\nExample\n-------\n\nThe following code creates a window with a simple Python shell:\n\n..  code-block:: python\n\n    from pyface.api import ApplicationWindow, GUI, IPythonShell\n\n    class MainWindow(ApplicationWindow):\n        \"\"\" The main application window. \"\"\"\n\n        #: The PythonShell that forms the contents of the window\n        shell = Instance(IPythonShell, allow_none=False)\n\n        def _create_contents(self, parent):\n            \"\"\" Create the editor. \"\"\"\n            self.shell.create(parent)\n            return self.shell.control\n\n        def destroy(self):\n            self.shell.destroy()\n            super().destroy()\n\n        def _shell_default(self):\n            from pyface.api import PythonShell\n            return PythonShell()\n\n    # Application entry point.\n    if __name__ == \"__main__\":\n        # Create the GUI.\n        gui = GUI()\n\n        # Create and open the main window.\n        window = MainWindow(title=\"Python Shell\", size=(640, 480))\n        window.open()\n\n        # Start the GUI event loop!\n        gui.start_event_loop()\n\n..  image:: https://raw.github.com/enthought/pyface/main/shell_window.png\n    :alt: A Pyface GUI window containing a Python shell.\n\nInstallation\n------------\n\nPyface is a pure Python package.  In most cases Pyface will be installable\nusing a simple ``pip install`` command.\n\nTo install with a backend, choose one of the following, as appropriate:\n\n..  code-block:: console\n\n    $ pip install pyface[pyside2]\n\n    $ pip install pyface[pyside6]\n\n    $ pip install pyface[pyqt5]\n\n    $ pip install pyface[wx]\n\nSome optional functionality uses ``pillow`` and ``numpy`` and these can be\ninstalled using optional dependencies:\n\n..  code-block:: console\n\n    $ pip install pyface[pillow]\n\n    $ pip install pyface[numpy]\n\nFor running tests a few more packages are required:\n\n..  code-block:: console\n\n    $ pip install pyface[test]\n\nDocumentation\n-------------\n\n* `Online Documentation \u003chttp://docs.enthought.com/pyface/\u003e`_.\n\n* `API Documentation \u003chttp://docs.enthought.com/pyface/api/pyface.html\u003e`_.\n\n.. end_of_long_description\n\nDeveloping Pyface\n-----------------\n\nThe `etstool.py` script provides utilities to assist developers wanting to work\non Pyface.  To use it, you will need to have the source checked out via Git,\nEnthought's `EDM \u003chttp://docs.enthought.com/edm/\u003e`__ distribution manager, and\na minimal environment containing at least the\n`Click \u003chttp://click.pocoo.org/\u003e`__ library.\n\nYou can then follow the instructions in ``etstool.py``.  In particular:\n\n- use `etstool.py install` to create environments for particular toolkits and\n  runtimes\n- use `etstool.py shell` to activate those environments\n- use `etstool.py test` to run the tests in those environments\n- use `etstool.py flake8` to perform style checks\n- use `etstool.py docs` to build the documentation\n- use `etstool.py test-all` to run the tests across all supported runtimes and toolkits\n\nLicense\n-------\n\nPyface source code is licensed with a BSD-style license.  Some default images\nare licensed with other licenses. See the license files for further\ninformation.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenthought%2Fpyface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenthought%2Fpyface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenthought%2Fpyface/lists"}