mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2026-09-04 20:00:56 +02:00
feature/default_timeout_arg-fable
_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.
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
Languages
Python
100%