wyzula_j 6d2192622a fix(utils): coerce explicit status timeouts through float()
_resolve_timeout applied math.isfinite() directly to explicit timeout
values, so float-convertible inputs that ophyd itself accepts (numeric
strings, for example a value read from an untyped config dict) raised a
raw "must be real number, not str" TypeError at status construction -
a behavior regression against both main and plain ophyd, with an error
message that does not mention the timeout at all.

Explicit values are now coerced through float() first, matching what
ophyd does internally, and non-convertible input raises a TypeError that
names the timeout and the offending value. The device constructor keeps
its stricter validation: PSIDeviceBase._normalize_timeout still rejects
strings outright, since the constructor argument is new API with no
compatibility to preserve.
2026-09-01 17:29:40 +02:00
2023-12-12 07:52:36 +01:00
2026-07-27 15:16:48 +00:00
2023-01-25 14:25:15 +00:00
2026-07-27 15:16:48 +00:00
2023-06-28 14:24:07 +02:00

Ophyd Devices

ophyd-devices is an extension to ophyd and provides device support for devices not covered by the standard EPICS implementation in ophyd.

Installation

Use the package manager pip to install ophyd-devices.

pip install ophyd-devices

For development, clone the repository and install the package in editable mode:

git clone https://gitlab.psi.ch/bec/ophyd_devices.git
cd ophyd_devices
pip install -e .[dev]

Documentation

The documentation for the usage with BEC can be found here. More general documentation can be found here.

Contributing

Merge requests are very welcome! For major changes, please open an issue first to discuss what you would like to change. All commits should use the Angular commit scheme:

<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │       │
  │       └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
  │                          elements|forms|http|language-service|localize|platform-browser|
  │                          platform-browser-dynamic|platform-server|router|service-worker|
  │                          upgrade|zone.js|packaging|changelog|docs-infra|migrations|ngcc|ve|
  │                          devtools
  │
  └─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test

The <type> and <summary> fields are mandatory, the (<scope>) field is optional.

Type

Must be one of the following:

  • build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci: Changes to our CI configuration files and scripts (examples: CircleCi, SauceLabs)
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • test: Adding missing tests or correcting existing tests

Please make sure to update tests as necessary.

License

BSD-3-Clause

Languages
Python 100%