sanic-org / sanic

Accelerate your web app development | Build fast. Run fast.

Home Page:https://sanic.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mypy error type for async get function in HTTPMethodView

FirePanda169 opened this issue · comments

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

Mypy throws an error overriding the signature of the get method, as it is described only for synchronous execution.

error: Signature of "get" incompatible with supertype "HTTPMethodView"  [override]
note:      Superclass:
note:          Callable[..., Any] | None
note:      Subclass:
note:          def get(self, request: Request[Any, Any]) -> Coroutine[Any, Any, HTTPResponse]

I suggest changing the description of the get method /sanic/views.py to:

get: Union[Callable[..., Any], Coroutine[..., Any], None]

Code snippet

No response

Expected Behavior

No response

How do you run Sanic?

As a script (app.run or Sanic.serve)

Operating System

Linux

Sanic Version

23.12.0

Additional context

No response

PR welcome 😉

That did not solve the problem for me. mypy still complains and I have no idea why.

It works if None is removed from the type definition.

 get: Union[Callable[..., Any], Coroutine[..., Any]]

I cannot explain this behavior.