Pcdsdevices

Latest version: v8.4.0

Safety actively analyzes 637053 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 11

4.4.0

API Changes
-----------
- Move stoppers into stopper.py, but keep reverse imports for
backwards compatibility. This will be deprecated and then removed
at a later date.

Device Updates
--------------
- Add "confirm" variety metadata tag to ``EpicsMotorInterface`` and
``BeckhoffAxisPLC`` home commands, requiring user confirmation prior to
performing the homing motion in auto-generated Typhos screens.
- Slits objects now have vo, vg, ho, and hg aliases.
- Motor objects now print out values with a precision of 3 places.
- Remove mpa3 and mpa4 from rtdsk0, they do not have filters and are always
in invalid states that confuse the lightpath.
- Update the mono spectrometer class to provide status to lightpath.
- Make sim devices hinted by default so they show up in the
best-effort callback in bluesky.

New Devices
-----------
- Add PPSStopperL2SI for having readbacks of the new PPS stoppers inside
of lightpath.

Bugfixes
--------
- Fix issue where the mirror coating states were expecting the default
'OUT' position, which does not exist on the real device.
- Fix an issue where ``ObjectComponent`` instances did not have proper class
information.
- Increase the retry delay in lightpath state updater to avoid issue where
long lightpaths would fail to update the first few devices in the path.
- Fix issue where LICMirror would appear blocking in the mirror states on
lightpath.
- Fix issue where PowerSlits would appear blocking on lightpath for some
positions reached by fulfilling normal PMPS requests.
- Fix issue where SxtTestAbsorber would report no status on lightpath.

Contributors
------------
- ZryletTC
- klauer
- zllentz

4.3.2

Bugfixes
--------
- Fix an issue where pcdsdevices would break pyepics and ophyd in such a
way to cause thousands of lines of teardown spam at exit.

Contributors
------------
- zllentz

4.3.1

Features
--------
- New functions have been added to the LODCM object: `tweak_x`, `tweak_parallel`, `set_energy`, `wait_energy`.
- Custom status print has been added for the 3 towers as well as the energy classes.
- Added the `OffsetIMSWithPreset` subclass of `OffsetMotorBase` that has an additional `_SET` offset pv, and puts to this pv during `set_current_position`.

Maintenance
-----------
- Have cleaned up some docstring and changed the naming for the offset motors to the old style.

Contributors
------------
- cristinasewell

4.3.0

API Changes
-----------
- Deprecate ``pcdsdevices.component`` in favor of ``pcdsdevices.device``
to avoid circular imports and to more closely mirror the structure of
``ophyd``.

Features
--------
- Add FuncPositioner as a replacement for VirtualMotor.
This is a "dirty" positioner intended for quick hacks
in the beamline setup files, instantiated via handing
various functions to the init.
- Add ``EpicsSignalEditMD`` and ``EpicsSignalROEditMD`` classes for
situations where you need to override the control system's
discovered metadata.
- Adding a normally open class (VRCNO) for VRC gate valves to valve module. VRCNO extends VVCNO and adds VRC functionality.
- Add ``SyncAxis`` to replace deprecated ``SyncAxesBase`` with expanded
feature set, more sensible defaults, and more solid foundation.
- Add ``set_current_position`` to all ``PseudoPositioner`` classes.
- Add ``invert`` parameter to ``DelayBase`` for inverting any delay stage.
- Add ``set_position`` as an alias to ``set_current_position``
- New motor configuration for LAMP. Hoping we only have two configurations to switch between
- Add ``InterfaceDevice`` and ``InterfaceComponent`` as a tool for
including pre-build objects in a device at init time.
- Add ``to_interface`` helper function for converting normal ``Device``
classes into ``InterfaceDevice`` classes.
- Add ``ObjectComponent`` as a tool for including pre-build objects in
a device at class definition time.

Device Updates
--------------
- Add custom status prints for DelayBase and SyncAxis
- QminiSpectrometer: A few variety metadata updates for Typhos screens.
- Set EpicsMotor soft limit kinds to "config" for use in typhos.

New Devices
-----------
- QminiWithEvr: A new class with added PVs for controlling an EVR from a
Typhos screen.
- LAMPMagneticBottle
- XOffsetMirrorState for mirror coatings

Bugfixes
--------
- Include hacky fix from XPP/XCS that allows LaserTiming to complete moves
in all situations. The real cause and ideas for a clean fix are not
currently known/explored.
- Fix issue where Newport motors would not show units in their status prints.
- Fix issue where SyncAxis was not compatible with PseudoPositioners as
its synchronized "real" motors.
- Fix an issue where calling ``set_current_position`` on certain motors would
cause the ipython session to freeze, leaving the motor in the ``set`` state
instead of bringing it back to the ``use`` state.
- Hacky workaround for IMS motor part number strings being unable to be read
through pyepics when they contain invalid utf-8 characters.
- Fix issue where ``Newport`` user_readback had incorrect metadata.
- :class:`~pcdsdevices.signal.UnitConversionDerivedSignal` will now pass
through the ``units`` keyword argument in its metadata (``SUB_META`` or
``'meta'``) callbacks. It will be included even if the original signal
did not include ``units`` in metadata callbacks. (767)
- Fix an issue where various special Signal classes had their kinds
improperly reported as "hinted".

Maintenance
-----------
- Make unit handling in status_info more consistent to improve reliability of
status printouts.

Contributors
------------
- Mbosum
- ghalym
- klauer
- tjohnson
- zllentz

4.2.0

Features
--------
- Happi IOC Data: added new EntryInfo to happi.containers.LCLSItem for ioc
configuration data including engineer, location, hutch, release, arch, name,
and ioc type.
- New containers: added new Happi containers with device specific metadata for
building MODS IOCs.
- Custom status print for `LODCM` object.
- Added the `MPOD` class that determines the appropriate MPOD Channel classes. This is to help support the happi entry creation from the questionnaire.
- Add custom status for LaserTiming and for PseudoSingleInterface
- Add verbose_name attribute to PseudoSingleInterface and caclulated dial position
- Add verbose_name property to LaserTiming

Device Updates
--------------
- `LODCM` object has been updated to contain the Energy motors as well as the other motors and offsets.
- Update various signal kinds on PTMPLC from omitted to normal or config as
appropriate.
- ThorlabsWfs40: Added wavefront PV and viewer, added some docs

New Devices
-----------
- `OffsetMotor` - PseudoPositioner with an offset
- Add GHCPLC (Hot Cathode) class as a counterpart to the GCCPLC (Cold Cathode)
class.

Bugfixes
--------
- Fix issue where the Kappa had an incorrect e_phi calculation
in certain situations.
- Fix issue where the Kappa used the calculated motors for the
safety check instead of the real motors.
- Fix issue where legacy attenuator classes would break bluesky scans.
- Fix Kappa behavior for kappa angles above 180 degrees.

Contributors
------------
- cristinasewell
- klauer
- slacAdpai
- slactjohnson
- zllentz

4.1.0

API Changes
-----------
- Update twincat motors to use the correct homing PV.
This is an alternative PV to the normal motor record PVs for IOC/PLC
management reasons.
It is possible that this will break devices that have not updated to the
latest motion PLC library.
- Added ``format`` and ``scale`` arguments to
:func:`~pcdsdevices.utils.get_status_float`, which affect floating point
formatting of values available in the ``status_info`` dictionary.
- CVMI Motion System Prefix: 'TMO:CVMI'
- KTOF Motion System Prefix: 'TMO:KTOF'

Features
--------
- Added :func:`~pcdsdevices.utils.format_status_table` for ease of generating
status tables from ``status_info`` dictionaries.
- Added :func:`~pcdsdevices.utils.combine_status_info` to simplify joining
status information of child components.

Device Updates
--------------
- VCN upper limit can be changed from epics.
- Added the ``active`` component to
:class:`~pcdsdevices.attenuator.AttenuatorCalculatorFilter`, indicating
whether or not the filter should be used in calculations.
- Multiple devices have been modified to include explicit argument and keyword
argument names in ``__init__`` for clarity and introspectability.

New Devices
-----------
- XYGridStage - maps targets from grids to x,y positions, and supports multiple samples on a stage.
- Added :class:`~pcdsdevices.attenuator.AT1K4` and supporting SXR solid
attenuator classes, including
:class:`~pcdsdevices.attenuator.AttenuatorCalculatorSXR_Blade`,
:class:`~pcdsdevices.attenuator.AttenuatorCalculatorSXR_FourBlade`, and
:class:`~pcdsdevices.attenuator.AttenuatorSXR_Ladder`.
- pcdsdevices.cvmi_motion.CVMI
- pcdsdevices.cvmi_motion.KTOF

Bugfixes
--------
- The transmission status value for the 3rd harmonic has been fixed, it was previously using the wrong value.

Maintenance
-----------
- The test suite will now find all devices in pcdsdevices submodules at
arbitrary import depth.
- Minor cleanup of the pcds-tag conda recipe
- Relocate happi name length restriction for lcls devices to this package
as a requirement on LCLSItem
- Updated AT2L0 to use newer status formatting utilities.
- Added prettytable as an explicit dependency. It was previously assumed to
be installed with a sub-dependency.
- Added test suite to try to instantiate all device classes with
``make_fake_device`` and perform status print formatting checks on them.
- Added ``include_plus_sign`` option for ``get_status_float``.
- Perform continuous integration tests with pip-based installs, with
dependencies installed from PyPI.

Contributors
------------
- cristinasewell
- ghalym
- jsheppard95
- klauer
- zllentz

Page 6 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.