Added
- Paramattr now supports a new boolean keyword argument, `inherit`, which takes
defaults for the other paramattr keyword arguments from the paramattr in the parent
of the owning class. This is meant to replace the role of `labbench.paramattr.adjusted`,
which did not update the type hints properly for default values of Device constructors.
- `lb.shell_options_from_keyed_values` has been separated from its private implementation in
`lb.ShellBackend`, and given options to better generalize its applicability. It generates
lists of command line option strings based on descriptors defined with `key`.
Changed
- Corrected bugs in the simplified display of tracebacks
- Fixed a bug in network address string validation
- Reduced module import time through better use of lazy loading
- Fixed an argument passing bug in `labbench.VISADevice.query_ascii_values`
- The default VISA resource manager is now 'ivi' if an underlying library is available
- `labbench.ShellBackend` no longer supports dict arguments. Instead, use `lb.shell_options_from_keyed_values`
to generate a list of strings.
- `labbench.ShellBackend` no longer has a `binary_path` configuration value. Users of `labbench.ShellBackend` should
now explicitly pass the binary name (either path or object in the system PATH) to `labbench.ShellBackend.run()`.
- The existence of the `resource` value descriptor has been removed from `labbench.Device`, and is now only
included explicitly in subclasses that require connection information
- All `labbench.paramattr.value` descriptors now support the `kw_only` argument. For descriptors that are annotated
in owning classes for use as constructor argument, this determines whether the argument should be treated as
keyword-only (as opposed to "keyword or positional" that allows positional arguments).
- multiple inheritance is now supported for paramattr descriptors in `labbench.Device` and `labbench.paramattr.HasParamAttrs`
Deprecated
- `labbench.paramattr.adjusted`, due to type hinting bugs
Removed
- `labbench.HDFLogger`, which was not used and which was unable to pass tests or store metadata in a portable way
- `labbench.util.LabbenchDeprecationWarning`, an unused stub