• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
    Python
  • License
    Other
  • Created over 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python Display Manager

Build Status

PyDM: Python Display Manager

PyDM: Python Display Manager

PyDM is a PyQt-based framework for building user interfaces for control systems. The goal is to provide a no-code, drag-and-drop system to make simple screens, as well as a straightforward Python framework to build complex applications.

ยซ Explore PyDM docs and tutorials ยป

Report bug ยท Request feature ยท How to Contribute ยท Support


Python Qt Wrapper

PyDM project uses the qtpy as the abstraction layer for the Qt Python wrappers (PyQt5/PyQt4/PySide2/PySide). All tests are performed with PyQt5.

Prerequisites

  • Python 3.7+
  • Qt 5.6 or higher
  • qtpy
  • PyQt5 >= 5.7 or any other Qt Python wrapper.

Note: If you'd like to use Qt Designer (drag-and-drop tool to build interfaces) you'll need to make sure you have the PyQt plugin for Designer installed. This usually happens automatically when you install PyQt from source, but if you install it from a package manager, it may be left out.

Python package requirements are listed in the requirements.txt file, which can be used to install all requirements from pip: 'pip install -r requirements.txt'

Running the Tests

In order to run the tests you will need to install some dependencies that are not part of the runtime dependencies of PyDM.

Assuming that you have cloned this repository do:

pip install -r dev-requirements.txt

python run_tests.py

If you want to see the coverage report do:

python run_tests.py --show-cov

Running the Examples

There are various examples of some of the features of the display manager. To launch a particular display run 'python scripts/pydm '.

There is a 'home' display in the examples directory with buttons to launch all the examples:

python scripts/pydm examples/home.ui

Building the Documentation Locally

In order to build the documentation you will need to instll some dependencies that are not part of the runtime dependencies of PyDM.

Assuming that you have cloned this repository do:

pip install -r docs-requirements.txt

cd docs
make html

This will generate the HTML documentation for PyDM at the <>/docs/build/html folder. Look for the index.html file and open it with your browser.

Online Documentation

Documentation is available at http://slaclab.github.io/pydm/. Documentation is somewhat sparse right now, unfortunately.

Widget Designer Plugins

pydm widgets are written in Python, and are loaded into Qt Designer via the PyQt Designer Plugin. If you want to use the pydm widgets in Qt Designer, add the pydm directory (which holds designer_plugin.py) to your PYQTDESIGNERPATH environment variable. Eventually, this will happen automatically in some kind of setup script.

Easy Installing PyDM

Using the source code

git clone https://github.com/slaclab/pydm.git
cd pydm
pip install .[all]

Using Anaconda

When using Anaconda to install PyDM at a Linux Environment it will automatically define the PYQTDESIGNERPATH environment variable pointing to /etc/pydm which will have a file named designer_plugin.py which will make all the PyDM widgets available to the Qt Designer.

Most Recent Development Build

Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge

conda install -c pydm-dev -c conda-forge pydm

Most Recent Tagged Build

Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge

conda install -c pydm-tag -c conda-forge pydm

More Repositories

1

surf

A huge VHDL library for FPGA development
VHDL
326
star
2

ruckus

Vivado build system
Tcl
68
star
3

rogue

SLAC Python Based Hardware Abstraction & Data Acquisition System
C++
40
star
4

lacquer

SQL Parser derived from Presto, written in Python with the PLY framework
Python
31
star
5

slacml-school

Jupyter Notebook
14
star
6

axi-pcie-core

VHDL
13
star
7

VADER-Analytics

Visualization and Analytics for Distributed Energy Resources
Jupyter Notebook
11
star
8

datacat

A system for managing files and file replicas across many diverse sites
Java
10
star
9

Badger

The go-to optimizer in accelerator control room
Python
10
star
10

cryoEM-notebooks

repository of notebooks for cryoEM
Jupyter Notebook
9
star
11

ansible-role-spark

Ansible role to deploy a spark cluster
Shell
8
star
12

PyEmittance

Python
8
star
13

sdf-docs

Documentation for SLAC Shared Scientific Data Facility
CSS
7
star
14

Simple-10GbE-RUDP-KCU105-Example

VHDL
7
star
15

epicsarchiver_automation

A set of scripts that can be used to automate maintenance of an EPICS Archiver Appliance
Python
7
star
16

ease

Easiest Alert System Ever (EPICS alert and reaction system)
Python
7
star
17

nalms

Next ALarM System
Python
6
star
18

psmon

Remote data visualization tool used at LCLS for online analysis/monitoring
Python
6
star
19

zfel

1-D FEL code in Python
Python
6
star
20

atlas-altiroc-daq

VHDL
5
star
21

pyca

Python
5
star
22

slic

Simulation for the Linear Collider (SLIC) Geant4 simulation application
C++
5
star
23

lume-model

Lume-model defines data structures used in the LUME modeling tool set.
Python
5
star
24

bbcp

C
5
star
25

CCPM

Coherent Cobination Propagation and Modeling
MATLAB
5
star
26

aes-stream-drivers

Common repository for streaming kernel drivers (PGP, AxiStream, ExoTem)
C
5
star
27

pycaserver

Python-based Channel Access Websockets Server
Python
4
star
28

lume

Lightsource Unified Modeling Environment (LUME)
4
star
29

cryosparc-docker

Docker wrapper for cryosparc
Shell
4
star
30

slurm-telegraf

Push slurm metrics into telegraf
Python
4
star
31

indico-slac

Bunch of scripts and docker stuff to run Indico at SLAC
Shell
4
star
32

lume-genesis

Genesis 1.3 tools for use in LUME
Python
4
star
33

lcls-live

Tools for running the LCLS live accelerator models
Jupyter Notebook
4
star
34

cameralink-gateway

CameraLink Gateway
Python
4
star
35

timechart

A Charting Tool based on PyDM
Python
4
star
36

k2eg

Kafka To EPICS Gateway
C++
3
star
37

amc-carrier-core

VHDL
3
star
38

matpva

Python
3
star
39

fs-timing

Repo for migrated fstiming code and resources.
Python
3
star
40

gdml

Geometry Description Markup Language (GDML) version 3.1.2 (deprecated but used by SLIC)
C++
3
star
41

pgp-pcie-apps

VHDL
3
star
42

surf-tutorial

VHDL
3
star
43

lume-services

Misc services for orchestration of LUME tools
Python
3
star
44

Simple-PGPv4-KCU105-Example

VHDL
3
star
45

Archive-Viewer

PyDM based archive viewer
Python
3
star
46

Simple-rfsoc-4x2-Example

VHDL
3
star
47

anarel-manage

Manage the conda based analysis release environments that include psana at LCLS.
Python
3
star
48

ml_xpfs

Detector photonization and speckle contrast prediction for XPFS/XPCS using convolutional neural networks.
PureBasic
3
star
49

bo_tutorial

Notebooks demonstrating Gaussian Process modeling and Bayesian optimization
Jupyter Notebook
3
star
50

neural-representation-sqw

Inelastic neutron scattering parameter estimation using implicit neural representations and automatic differentiation.
Jupyter Notebook
3
star
51

slac-cryoem-spack

Spack packages for common cryo-em software
Python
3
star
52

lcdd

Linear Collider Detector Description (LCDD) project
C++
2
star
53

slac-k8s-app-template

SLAC Kubernetes app deployment template
Makefile
2
star
54

CAIN

CAIN Beam-Beam Collision code from KEK (K. Yokoya & T. Tauchi)
Fortran
2
star
55

epix-hr-m-320k

Python
2
star
56

mps_database

Python
2
star
57

slactwin

Python
2
star
58

pydm_modbus

Modbus data plugin for PyDM
Python
2
star
59

lcls2-timetool

LCLS2 PCIE-Express Board Applications
VHDL
2
star
60

psgeom

code for representing the geometry of scattering experiments
Python
2
star
61

CryoPoseNet

Fast 3D biomolecular shape reconstruction from cryoEM data
2
star
62

slac-beamer-template

Inofficial latex-beamer template for SLAC
TeX
2
star
63

pabv_control

Python
2
star
64

Lucretia

MATLAB
2
star
65

dev-board-common-platform

Most of the Common Platform Firmware on the KCU105 Board
VHDL
2
star
66

lume-epics

Lume-epics is a dedicated API for serving LUME model variables with EPICS.
Python
2
star
67

lume-scatter

Code to perform scattering calculations between GPT and Geant4
C++
2
star
68

ucsc-hn

UC Santa Cruz Head and Neck
Python
2
star
69

lcls-classic-lattice

Mathematica
2
star
70

ProgramFPGA

Bash script to program the HPS FPGA image
Shell
2
star
71

rfsoc-4x2-photon-detector-dev

Jupyter Notebook
2
star
72

lcls2-coaxpress-over-fiber-apps

VHDL
2
star
73

epix-hr-single-10k

Jupyter Notebook
2
star
74

slac-ood-jupyter

Jupyter OnDemand Batch Connector at SLAC
HTML
2
star
75

pysmurf

Jupyter Notebook
2
star
76

epix-hr-core

VHDL
2
star
77

axi-soc-ultra-plus-core

Tcl
2
star
78

lcls-timing-core

Core timing firmware for LCLS and LCLS-II
VHDL
2
star
79

facet-matlabTNG

New matlab tools repository for FACET-II
MATLAB
2
star
80

skywalker

Automatic alignment module for LCLS mirror systems
Python
2
star
81

smurf-pcie

VHDL
2
star
82

elegant_lcls_ipython

elegant simulations of LCLS in an ipython notebook, accommpanied by a brief machine learning tutorial
Jupyter Notebook
2
star
83

lcls-tools

Python tools for LCLS: post processing data, PV handling, pulling archive settings, etc.
Python
2
star
84

facet2-lattice

Lattice files for the FACET-II accelerator
Jupyter Notebook
2
star
85

lume-services-deployment

Makefile
2
star
86

archiver_tools

Tools for common EPICS Archiver management operations.
Python
1
star
87

central_node_ioc

LCLS-II MPS central node IOC
C++
1
star
88

pipeline-web

Java
1
star
89

pedl

QT inspired Python Interface for EDM Screen Creation
Python
1
star
90

ATEF_Timing

Python
1
star
91

rubin-usdf-butler-deploy

deployment for usdf butler database
Makefile
1
star
92

alpastor

SLAC kubernetes manifests
Makefile
1
star
93

mps_history

Python
1
star
94

programming

A general repository of useful information for programming across the lab
1
star
95

epix

VHDL
1
star
96

slac-ood-cryosparc

CryoSPARC OnDemand Batch Connect at SLAC
JavaScript
1
star
97

h5-batch-reader

Package to support
Python
1
star
98

explgbk

HTML
1
star
99

singularity-modules

Singularity Container Recipes
Shell
1
star
100

lcls-sc-inj-surrogate

Repository for LCLS Superconducting Injector Surrogate Modeling
Jupyter Notebook
1
star