{"id":22753864,"url":"https://github.com/slaclab/pydm","last_synced_at":"2025-04-05T03:12:36.425Z","repository":{"id":37258386,"uuid":"59700161","full_name":"slaclab/pydm","owner":"slaclab","description":"Python Display Manager","archived":false,"fork":false,"pushed_at":"2024-05-09T20:49:36.000Z","size":97444,"stargazers_count":110,"open_issues_count":106,"forks_count":73,"subscribers_count":24,"default_branch":"master","last_synced_at":"2024-05-10T08:26:40.534Z","etag":null,"topics":["epics","pyqt5","python"],"latest_commit_sha":null,"homepage":"http://slaclab.github.io/pydm/","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/slaclab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-25T21:50:56.000Z","updated_at":"2024-05-30T03:00:58.435Z","dependencies_parsed_at":"2023-09-27T00:58:32.807Z","dependency_job_id":"1341b2ec-87b6-4587-b08c-2207f7131b56","html_url":"https://github.com/slaclab/pydm","commit_stats":{"total_commits":2246,"total_committers":56,"mean_commits":"40.107142857142854","dds":0.7680320569902048,"last_synced_commit":"874bddbf7668f830b58d33dc589794b2da5beed7"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slaclab%2Fpydm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slaclab%2Fpydm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slaclab%2Fpydm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slaclab%2Fpydm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slaclab","download_url":"https://codeload.github.com/slaclab/pydm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246691884,"owners_count":20818583,"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":["epics","pyqt5","python"],"created_at":"2024-12-11T06:13:45.940Z","updated_at":"2025-04-05T03:12:36.410Z","avatar_url":"https://github.com/slaclab.png","language":"Python","funding_links":[],"categories":["Applications"],"sub_categories":["Operator Interfaces"],"readme":"[![Build Status](https://github.com/slaclab/pydm/actions/workflows/run-tests.yml/badge.svg?branch=master)](https://github.com/slaclab/pydm/actions/workflows/run-tests.yml)\n\n![PyDM: Python Display Manager](pydm_banner_full.png)\n\n\u003cp\u003e\n  \u003cimg src=\"pydm_launcher/icons/pydm_128.png\" width=\"128\" height=\"128\" align=\"right\"/\u003e\n  \u003ch1\u003ePyDM: Python Display Manager\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003cp align=\"left\"\u003e\n  PyDM is a PyQt-based framework for building user interfaces for control systems.\n  The goal is to provide a no-code, drag-and-drop system to make simple screens,\n  as well as a straightforward Python framework to build complex applications.\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e« Explore PyDM \u003ca href=\"https://slaclab.github.io/pydm/\"\u003edocs\u003c/a\u003e and \u003ca href=\"https://slaclab.github.io/pydm/tutorials/index.html\"\u003etutorials\u003c/a\u003e »\u003c/strong\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://github.com/slaclab/pydm/issues/new?template=bug-report.md\"\u003eReport bug\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/slaclab/pydm/issues/new?template=feature-request.md\u0026labels=request\"\u003eRequest feature\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/slaclab/pydm/blob/master/CONTRIBUTING.rst\"\u003eHow to Contribute\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/slaclab/pydm/blob/master/SUPPORT.md\"\u003eSupport\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n# Python Qt Wrapper\nPyDM project uses the [qtpy](https://github.com/spyder-ide/qtpy)\nas the abstraction layer for the Qt Python wrappers (PyQt5/PyQt4/PySide2/PySide).\n**All tests are performed with PyQt5**.\n\n# Prerequisites\n* Python 3.9+\n* Qt 5.6 or higher\n* qtpy\n* PyQt5 \u003e= 5.7 or any other Qt Python wrapper.\n\u003e **Note:**\n\u003e If you'd like to use Qt Designer (drag-and-drop tool to build interfaces) you'll\n\u003e need to make sure you have the PyQt plugin for Designer installed.  This usually\n\u003e happens automatically when you install PyQt from source, but if you install it\n\u003e from a package manager, it may be left out.\n\nPython package requirements are listed in the requirements.txt file, which can\nbe used to install all requirements from pip: 'pip install -r requirements.txt'\n\n# Running the Tests\nIn order to run the tests you will need to install some dependencies that are\nnot part of the runtime dependencies of PyDM.\n\nAssuming that you have cloned this repository do:\n\n```bash\npip install -r dev-requirements.txt\n\npython run_tests.py\n```\n\nIf you want to see the coverage report do:\n```bash\npython run_tests.py --show-cov\n```\n\n# Running the Examples\nThere are various examples of some of the features of the display manager.\nTo launch a particular display run 'python scripts/pydm \u003cfilename\u003e'.\n\nThere is a 'home' display in the examples directory with buttons to launch all\nthe examples:\n```python\npydm examples/home.ui\n```\n\n# Building the Documentation Locally\nIn order to build the documentation you will need to install some dependencies\nthat are not part of the runtime dependencies of PyDM.\n\nAssuming that you have cloned this repository do:\n\n```bash\npip install -r docs-requirements.txt\n\ncd docs\nmake html\n```\n\nThis will generate the HTML documentation for PyDM at the `\u003c\u003e/docs/build/html`\nfolder. Look for the `index.html` file and open it with your browser.\n\n# Online Documentation\n\nDocumentation is available at http://slaclab.github.io/pydm/.  Documentation is\nsomewhat sparse right now, unfortunately.\n\n# Widget Designer Plugins\npydm widgets are written in Python, and are loaded into Qt Designer via the PyQt\nDesigner Plugin.\nIf you want to use the pydm widgets in Qt Designer, add the pydm directory\n(which holds designer_plugin.py) to your PYQTDESIGNERPATH environment variable.\nEventually, this will happen automatically in some kind of setup script.\n\n# Easy Installing PyDM\n## Using the source code\n```sh\ngit clone https://github.com/slaclab/pydm.git\ncd pydm\npip install .[all]\n```\n\n## Using Anaconda\n\nWhen using Anaconda to install PyDM at a Linux Environment it will automatically\ndefine the PYQTDESIGNERPATH environment variable pointing to /etc/pydm which\nwill have a file named designer_plugin.py which will make all the PyDM widgets\navailable to the Qt Designer. For more information please see\nour \u003ca href=\"https://slaclab.github.io/pydm/installation.html\"\u003einstallation guide\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslaclab%2Fpydm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslaclab%2Fpydm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslaclab%2Fpydm/lists"}