You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To replicate, check out main and run blueapi serve then from the gui, use get_plans or get_devices. get_plans/plan_name works fine, as does get_devices/device_name, but the methods that return a list throw an exception during the _rpc method.
INFO: 127.0.0.1:52726 - "GET /devices HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 108, in __call__
response = await self.dispatch_func(request, call_next)
File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/main.py", line 343, in add_api_version_header
response = await call_next(request)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 84, in call_next
raise app_exc
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 70, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
raise exc
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
await self.app(scope, receive, sender)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
raise e
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
await self.app(scope, receive, send)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/routing.py", line 718, in __call__
await route.handle(scope, receive, send)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/routing.py", line 66, in app
response = await func(request)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/routing.py", line 241, in app
raw_response = await run_endpoint_function(
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/routing.py", line 169, in run_endpoint_function
return await run_in_threadpool(dependant.call, **values)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/concurrency.py", line 41, in run_in_threadpool
return await anyio.to_thread.run_sync(func, *args)
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2177, in run_sync_in_worker_thread
return await future
File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 859, in run
result = context.run(func, *args)
File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/main.py", line 126, in get_devices
return DeviceResponse(devices=runner.run(interface.get_devices))
File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/runner.py", line 89, in run
return self._run_in_subprocess(function, *args, **kwargs)
File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/runner.py", line 110, in _run_in_subprocess
return self._subprocess.apply(
File "/usr/lib/python3.10/multiprocessing/pool.py", line 360, in apply
return self.apply_async(func, args, kwds).get()
File "/usr/lib/python3.10/multiprocessing/pool.py", line 774, in get
raise self._value
TypeError: isinstance() argument 2 cannot be a parameterized generic
During handling of the above exception, another exception occurred:
+ Exception Group Traceback (most recent call last):
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
| result = await app( # type: ignore[func-returns-value]
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
| return await self.app(scope, receive, send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/applications.py", line 290, in __call__
| await super().__call__(scope, receive, send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/applications.py", line 122, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/errors.py", line 184, in __call__
| raise exc
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/errors.py", line 162, in __call__
| await self.app(scope, receive, _send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 106, in __call__
| async with anyio.create_task_group() as task_group:
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 680, in __aexit__
| raise BaseExceptionGroup(
| exceptiongroup.ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| multiprocessing.pool.RemoteTraceback:
| """
| Traceback (most recent call last):
| File "/usr/lib/python3.10/multiprocessing/pool.py", line 125, in worker
| result = (True, func(*args, **kwds))
| File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/runner.py", line 146, in _rpc
| if expected_type is None or isinstance(value, expected_type):
| TypeError: isinstance() argument 2 cannot be a parameterized generic
| """
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 108, in __call__
| response = await self.dispatch_func(request, call_next)
| File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/main.py", line 343, in add_api_version_header
| response = await call_next(request)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 84, in call_next
| raise app_exc
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/base.py", line 70, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
| raise exc
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
| await self.app(scope, receive, sender)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
| raise e
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
| await self.app(scope, receive, send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/routing.py", line 718, in __call__
| await route.handle(scope, receive, send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/routing.py", line 276, in handle
| await self.app(scope, receive, send)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/routing.py", line 66, in app
| response = await func(request)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/routing.py", line 241, in app
| raw_response = await run_endpoint_function(
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/fastapi/routing.py", line 169, in run_endpoint_function
| return await run_in_threadpool(dependant.call, **values)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/starlette/concurrency.py", line 41, in run_in_threadpool
| return await anyio.to_thread.run_sync(func, *args)
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
| return await get_async_backend().run_sync_in_worker_thread(
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2177, in run_sync_in_worker_thread
| return await future
| File "/home/qwe67581/Documents/work/blueapi/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 859, in run
| result = context.run(func, *args)
| File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/main.py", line 126, in get_devices
| return DeviceResponse(devices=runner.run(interface.get_devices))
| File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/runner.py", line 89, in run
| return self._run_in_subprocess(function, *args, **kwargs)
| File "/home/qwe67581/Documents/work/blueapi/src/blueapi/service/runner.py", line 110, in _run_in_subprocess
| return self._subprocess.apply(
| File "/usr/lib/python3.10/multiprocessing/pool.py", line 360, in apply
| return self.apply_async(func, args, kwds).get()
| File "/usr/lib/python3.10/multiprocessing/pool.py", line 774, in get
| raise self._value
| TypeError: isinstance() argument 2 cannot be a parameterized generic
+------------------------------------
INFO: 127.0.0.1:48068 - "GET /devices/foo HTTP/1.1" 404 Not Found
INFO: 127.0.0.1:37548 - "GET /devices/sample_pressure HTTP/1.1" 200 OK
The text was updated successfully, but these errors were encountered:
To replicate, check out main and run
blueapi serve
then from the gui, useget_plans
orget_devices
. get_plans/plan_name works fine, as does get_devices/device_name, but the methods that return a list throw an exception during the _rpc method.The text was updated successfully, but these errors were encountered: