Skip to main content

PCDS Devices

Collection of Ophyd Device subclasses for IOCs unique to PCDS

Motivation • Installation

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)

Source distribution for pcdsdevices 11.1.0
File Size Uploaded
pcdsdevices-11.1.0.tar.gz 590.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pcdsdevices 11.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

11.1.0 This release

2 release files

11.0.0

2 release files

10.8.0

2 release files

10.7.0

2 release files

10.6.0

2 release files

10.5.0

2 release files

10.3.0

2 release files

10.2.1

2 release files

10.2.0

2 release files

10.1.0

2 release files

10.0.0

2 release files

9.0.0

2 release files

8.8.1

2 release files

8.8.0

2 release files

8.7.0

2 release files

8.6.0

2 release files

8.5.0

2 release files

8.4.0

2 release files

8.3.0

2 release files

8.2.0

2 release files

8.1.0

2 release files

8.0.0

2 release files

7.4.3

2 release files

7.4.2

2 release files

7.4.1

2 release files

7.4.0

2 release files

7.1.0

1 release file

7.0.1

1 release file

7.0.0

1 release file

6.3.0

1 release file

6.2.0

1 release file

6.1.0

1 release file

6.0.0

1 release file

5.0.2

1 release file

5.0.1

1 release file

5.0.0

1 release file

4.9.0

1 release file

4.8.0

1 release file

4.7.1

1 release file

4.7.0

1 release file

4.6.1

1 release file

4.6.0

1 release file

4.5.0

1 release file

4.4.0

1 release file

4.3.2

1 release file

4.3.1

1 release file

4.3.0

1 release file

4.2.0

1 release file

4.1.0

1 release file

4.0.0

1 release file

2.6.0

1 release file

2.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page