Skip to main content

Ophyd Device definitions for LCLS Beamline components

Project description

PCDS Devices

Collection of Ophyd Device subclasses for IOCs unique to PCDS

MotivationInstallation

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pcdsdevices-8.2.0.tar.gz (436.3 kB view details)

Uploaded Source

Built Distribution

pcdsdevices-8.2.0-py3-none-any.whl (483.7 kB view details)

Uploaded Python 3

File details

Details for the file pcdsdevices-8.2.0.tar.gz.

File metadata

  • Download URL: pcdsdevices-8.2.0.tar.gz
  • Upload date:
  • Size: 436.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pcdsdevices-8.2.0.tar.gz
Algorithm Hash digest
SHA256 25f2872b9517a200e106d9e2e084035c2da2fc50ab0da10668cd9dda9389ca01
MD5 141b5b80fd5298899c99394ee0b022aa
BLAKE2b-256 887abff88166521b7c43be9900efd1569a7e08b06415779e6fe665e31a702c0e

See more details on using hashes here.

Provenance

File details

Details for the file pcdsdevices-8.2.0-py3-none-any.whl.

File metadata

  • Download URL: pcdsdevices-8.2.0-py3-none-any.whl
  • Upload date:
  • Size: 483.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pcdsdevices-8.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62c8e3f9c69d3e780e487813af4c19de0fe2e3d24a4b31e94a40c81e25d862d2
MD5 5a56a961ff7414fc525a9964ffa76654
BLAKE2b-256 1fe6cbb664f6cc1356bb56d13beacd6bec8cb52bedb2fd25e70ef3fea6183fe3

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page