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.1.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.1.0.tar.gz | 590.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pcdsdevices-11.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / pcdsdevices-11.1.0.tar.gz
| Download URL | pcdsdevices-11.1.0.tar.gz |
|---|---|
| Size | 590.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30dea97f4da85c68bbdb8f124c3df1ea2653c8abc069d49fecaa5b11a44e3cdf
|
|
BLAKE2b-256 checksum How to use checksums |
f8a4ebfbf881935fe95b94c326b30fdf53aa822d403201e5b6b359f93f292870
|
| 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.1.0-py3-none-any.whl
| Download URL | pcdsdevices-11.1.0-py3-none-any.whl |
|---|---|
| Size | 656.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f92bdbf534a59ff83bd1d0ddb8e63240254858447f2b2916634aa013c1b4fab2
|
|
BLAKE2b-256 checksum How to use checksums |
2481129add5b2402ba4371a61cd0ad38e3b412ca5f19d47be5e8a7509c7fa6c4
|
| 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}
|