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
I use Python 3.9.2, pydantic == 1.10.7, blacksheep == 1.2.14
Once run with uvicorn, request attempt raises an exception:
Unhandled exception - "GET /test"
Traceback (most recent call last):
File "blacksheep/baseapp.pyx", line 84, in blacksheep.baseapp.BaseApplication.handle
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/blacksheep/server/normalization.py", line 545, in handler
return ensure_response(response)
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/blacksheep/server/normalization.py", line 132, in ensure_response
return responses.json(result)
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/blacksheep/server/responses.py", line 198, in json
json_plugin.dumps(data).encode("utf8"),
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/blacksheep/plugins/json.py", line 35, in dumps
return self._dumps(obj)
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/blacksheep/plugins/json.py", line 8, in default_json_dumps
return dumps(obj, separators=(",", ":"))
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/essentials/json.py", line 54, in dumps
return json.dumps(
File "/usr/lib/python3.9/json/__init__.py", line 234, in dumps
return cls(
File "/usr/lib/python3.9/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.9/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/home/developer/src/python/pvenv/lib/python3.9/site-packages/essentials/json.py", line 18, in default
return json.JSONEncoder.default(self, obj)
File "/usr/lib/python3.9/json/encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type coroutine is not JSON serializable
/home/developer/src/python/pvenv/lib/python3.9/site-packages/blacksheep/server/application.py:790: RuntimeWarning: coroutine 'something' was never awaited
response = await self.handle(request)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Without decorator everything works as it should. I was able to fix this by modifying _get_async_wrapper_for_output function in normalization.py, though I am not sure if my solution does it right and could handle all cases - probably normalization code needs to be updated but I didn't look deep into:
I tried to use @validate_arguments in my async handler but this attempt failed.
My code:
I use Python 3.9.2, pydantic == 1.10.7, blacksheep == 1.2.14
Once run with uvicorn, request attempt raises an exception:
Without decorator everything works as it should. I was able to fix this by modifying
_get_async_wrapper_for_output
function innormalization.py
, though I am not sure if my solution does it right and could handle all cases - probably normalization code needs to be updated but I didn't look deep into:The text was updated successfully, but these errors were encountered: