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
Metadata
Release files for pcdsdevices 11.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pcdsdevices-11.0.0.tar.gz | 586.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pcdsdevices-11.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / pcdsdevices-11.0.0.tar.gz
| Download URL | pcdsdevices-11.0.0.tar.gz |
|---|---|
| Size | 586.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dfb321266ab731cc96505deb953fdd7cdf0d64a5f468689e025d1f9a870d6045
|
|
BLAKE2b-256 checksum How to use checksums |
1d59d4230191460b1a9661273beb4ef9079ceff7a659427a4fac596a645f2790
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pcdsdevices-11.0.0-py3-none-any.whl
| Download URL | pcdsdevices-11.0.0-py3-none-any.whl |
|---|---|
| Size | 652.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3e4baa4f28e8cfd29ac28bbcc889129817299148a5963ce4fdd1d302a17045cf
|
|
BLAKE2b-256 checksum How to use checksums |
bb8a65dacc5d80f255628c6317805aa3967c2cc19305b95d064fb157df2590ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|