feat(client): synchronous blocking execute task interface

This MR adds a blocking API for executing tasks: Client.execute_blocking.

  • This API has the same signature as its asynchronous variant Client.execute.
    • The only exception is that the blocking interface has an additional timeout parameter.
  • The new API is built on top of BlockingTaskClient, which uses the websockets library for synchronous websockets.
  • Add tests for all new code.
  • Two small general improvements:
    • Slightly improve performance of the task router, as it reuses the serialized task message.
    • Make the typing overloads of Client.execute and Client.request consistent.

Closes #159 (closed)

Edited by Hugo Kerstens

Merge request reports

Loading