Summary:
The async branch introduces major new features and substantial improvements over main, including:
- Full asynchronous (non-blocking) control with thread-based communication
- Context manager support (
__enter__, __exit__) for automatic thread lifecycle management
- Per-command response queues for robust async/sync operation
- Improved error handling and error recovery for async scenarios
- Expanded documentation with async examples and usage patterns
- Additional tests for async operation
- New examples and a Qudi add-on guide
Major changes:
elliptec_controller/controller.py and related modules: Large refactor to support both sync and async operation, with a robust thread-safe command queue and response handling
- Added
async_example.py, error_handling_example.py, and test_async.py to demonstrate and test async support
- Documentation updates:
README.md, docs/api.md, docs/quickstart.md, and qudi-addon.md highlight async usage
- Changelog updated
Request:
Submit a pull request to merge the async branch into main, providing these new features, improved reliability, and expanded documentation. This will make async operation and context manager support the new default, while retaining full backward compatibility with synchronous usage.
Review notes:
- The diff is extensive: please review especially the new async-related code paths, context manager logic, and test coverage.
- All existing sync functionality is preserved; async operation is opt-in or via context manager.
- Documentation and examples have been updated for async usage patterns.
See also:
CHANGELOG.md for a summary of changes
tests/test_async.py for async test coverage
examples/async_example.py and examples/error_handling_example.py for usage patterns
This issue is auto-generated to support a pull request from async to main branch. Once confirmed, please proceed to open the PR.
Summary:
The
asyncbranch introduces major new features and substantial improvements overmain, including:__enter__,__exit__) for automatic thread lifecycle managementMajor changes:
elliptec_controller/controller.pyand related modules: Large refactor to support both sync and async operation, with a robust thread-safe command queue and response handlingasync_example.py,error_handling_example.py, andtest_async.pyto demonstrate and test async supportREADME.md,docs/api.md,docs/quickstart.md, andqudi-addon.mdhighlight async usageRequest:
Submit a pull request to merge the
asyncbranch intomain, providing these new features, improved reliability, and expanded documentation. This will make async operation and context manager support the new default, while retaining full backward compatibility with synchronous usage.Review notes:
See also:
CHANGELOG.mdfor a summary of changestests/test_async.pyfor async test coverageexamples/async_example.pyandexamples/error_handling_example.pyfor usage patternsThis issue is auto-generated to support a pull request from async to main branch. Once confirmed, please proceed to open the PR.