Ophyd Device definitions for LCLS Beamline components
Project description
PCDS Devices
Motivation
Ophyd presents a uniform set of abstractions for EPICS devices. Many devices at
the LCLS are covered by ophyd-provided classes such as EpicsMotor
and
AreaDetector
, but there are also many more custom and unique devices.
This repository:
- Defines unique device classes required by the LCLS, referenced by happi and our device_config database.
- Offers LCLS-tailored solutions for functionality not provided by ophyd
- Provides essential tools to aid in the creation of new devices for specific applications
- Acts as a proving ground for features that may eventually be destined for ophyd
- ... and more!
Much of the core re-used functionality can be found in
pcdsdevices.device
, pcdsdevices.interface
, pcdsdevices.pseudopos
,
and pcdsdevices.signal
.
Installation
Install the most recent tagged build:
$ conda install -c conda-forge pcdsdevices
Install the most recent development build:
$ conda install pcdsdevices -c pcds-dev -c lightsource2-tag -c conda-forge
Or alternatively:
# Install the tagged version for the dependencies
$ conda install -c conda-forge pcdsdevices
# Clone the master branch:
$ git clone https://github.com/pcdshub/pcdsdevices
$ cd pcdsdevices
# And perform a development install:
$ python -m pip install -e .
Testing
Testing from psbuild-rhel7
Use the pcds conda environment:
$ source /cds/group/pcds/pyps/conda/pcds_conda
Testing without PCDS servers
Ensure you have all of the development requirements available:
$ pip install -r dev-requirements.txt
General testing steps
$ git clone https://github.com/pcdshub/pcdsdevices
$ cd pcdsdevices
# Switch to a branch that reflects what you're working on:
$ git checkout -b my_feature_branch_name
# Make your changes to files
# Install pre-commit to allow for style checks before committing
$ pre-commit install
# Run the test suite
$ python run_tests.py -v
If all is well, commit and push your changes.
If pre-commit complains about an issue, you will need to resolve it and try again.
$ git commit -a -m "ENH: my new feature"
$ git remote add my_remote git@github.com:my_username/pcdsdevices
$ git push -u my_remote my_feature_branch_name
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pcdsdevices-8.6.0.tar.gz
.
File metadata
- Download URL: pcdsdevices-8.6.0.tar.gz
- Upload date:
- Size: 459.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 066310c2894cc36a208fc8e1292cd44bc4f0a16ebfd83f46498aea78d9635933 |
|
MD5 | 0dfeed8147bef4ac115285537c0b5f03 |
|
BLAKE2b-256 | a6d08f99e3920db78416c471b18024386adb30f29ed406c520cef1d9120b0209 |
File details
Details for the file pcdsdevices-8.6.0-py3-none-any.whl
.
File metadata
- Download URL: pcdsdevices-8.6.0-py3-none-any.whl
- Upload date:
- Size: 510.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a12a7ba9172341cade9559c49152f3d3c70044c9b2f194d42acc6d05e4f1a657 |
|
MD5 | 13220ef1a4368feaa935cb8f5cc31742 |
|
BLAKE2b-256 | e2489abcb85f451c53581297a33c62f122a60665e865a500c94e45fc2835affa |