Labbench

Latest version: v0.43.0

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

Scan your dependencies

Page 6 of 7

0.15

Added
- new `sequentially` function reproduces behavior of `concurrently` for single-threaded behavior
- new util.ThreadSandbox wrapper delegates calls to a device backend to a background thread, providing threadsafety by blocking until the background thread is free
- backends.py
- data.py

Changed
- call __exit__ last for Device instances for with blocks that use lb.concurrently
- small bugfixes to database management
- support for passing arbitrary metadata to SQLiteLogger by keyword argument
- `concurrently` and `sequentially` now accept parameter inputs that are dictionaries, which are "passed through" through by updating to the result
- minor concurrency updates
- The base Device implementation now includes a concurrency_support state trait indicating whether the driver supports labbench concurrency
- Reverted the previous change to Device.__repr__, which made the string representation of a class unweildy in many cases
- database writes for strings that contain paths to existing files on disk now move that file into the relational file heirarchy
- many bugfixes mean the new win32 COM driver backend support works, including threading support via util.ThreadSandbox
- feather-format support is now a requirement for python3 installation
- All concurrency support in concurrency.py now in util.py
- Support for a user-defined preprocessing function in database managers that is called before writing to disk
- Remove spurious extra connect() calls in concurrently()
- Extra info messages in concurrent context entry
- Combined all backends into backends.py to cut down on number of files
- Documentation refresh
- managedata.py is now data.py

Removed
- concurrency.py
- win32com.py
- dotnet.py
- labview.py
- visa.py
- commandline.py
- managedata.py
- emulated.py

0.14

Added
- list_devices() function lists Device instances in the current frame
- ConfigStore and ConcurrentRunner classes for supporting high-level testbed development

Changed
- the concurrently function now supports concurrently context managers entry for concurrent connection to Device instances
- expanded the Device __repr__ to show the all parameters passed to __init__
- SQLiteLogger now stores the master database in {base-folder}/master.db instead of {base-folder}.db to keep all folders together
- Skipped to 0.14 because tag whoops

Removed
- notebooks.enumerate_devices (replaced by the list_devices function in __init__.py)

0.12

Added
- new Win32Com backend
- a global labbench logger instance is now accessible as labbench.logger
- Exception types: DeviceNotReady, DeviceFatalException, DeviceException

Changed
- pythonnet is now only an install dependency in windows platforms
- the dotnet backend will now log an error but not raise an exception if pythonnet is not installed
- If NI VISA is not installed, an exception is now raised only if you try to connect to a VISA driver
- VISADevice.read_termination and VISADevice.write_termination are now in VISADevice.state as local state traits
- Removed the connect_lock argument from local state traits. This argument was not used.
- Local state traits defined with read_only='connected' now also set is_metadata=True
- Bugfixes for debug logging
- Each Device now has a .logger attribute that includes consistent indication of the Device instance that produced the log message

Removed

0.11

Added
- hash_caller method to generate unique file names based on a combination of source code implementation and input
arguments of a function
- RemoteException class added to core.py
- New TelnetDevice backend class

Changed
- adjusted logic for locating DotNet DLL paths
- updated dotnet connect() method to match current object model
- Device instantiation keyword arguments now set values of Local state descriptors (instead of attributes of the Device class)
- CommandLineWrapper now logs debug entries
- Updated SerialDevice to base connection settings on Local state descriptors
- Device state local traits can now be defined with read_only='connected', making them read-only from if the device is connected

Removed

0.10

Added
- new function show_messages (replaces debug_to_screen)
- new context manager VISADevice.suppress_timeout to block VISA timeout exceptions
- the new Device.cleanup() method is now called just before disconnection
- support for current git repo commit via host.state.git_commit_id
- each state trait definitions may now specify is_metadata=True to indicate that it should be included with device metadata
- Device.metadata() returns a dictionary of metadata information
- when function calls in concurrently() return dictionary, the new new flatten argument updates the return with these dictionaries instead of a nested dictionary

Changed
- fixed recursion error in notebooks.range
- VISADevice.overlap_and_add is now a function and not a property, and supports configurable timeout
- Fixed a bug setting title in notebooks.range and notebooks.linspace
- Device.setup() is now called after connection instead of instantiation
- Correct a bug in lb.read() that led to incorrect column filter behaviors for csv and sqlite
- Included 'LocalDict' with `__all__` in Core
- Calls to .append() now cache *all* data; no relational files are written until write() is called
- Relational file path is now given relative to the path containing the master database

Removed
- debug_to_screen (replaced by show_messages)
- DEBUG, WARNING, ERROR constants imported from the logging module

0.9

Added
- VISADevice.list_resources classmethod
- labbench.linspace and labbench.range add notebook indicators for the test bench

Changed
- Add sqlalchemy and psutil dependencies that were missing in setup.py
- Several string encoding fixes for python 3.x
- Fixed formatting bug in support for logging debug to disk in host.py
- Automatically put long strings in relational files
- Error checking for arguments to managedata.expand
- Append missing file extension to relational database paths
- Build system fixes

Removed
- EnumBytes (replaced by CaselessStrEnum)

Page 6 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.