Skip to content

Async branch: Submit pull request to main branch (add async features, context manager, improved docs) #2

@TheFermiSea

Description

@TheFermiSea

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.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions