Skip to content

MiddlewareMixin.__call__ -- Return type incompatible with supertype #1594

@christianbundy

Description

@christianbundy

Bug report

class MyMiddleware(MiddlewareMixin):
    def __call__(
        self, request: HttpRequest
    ) -> HttpResponseBase | Awaitable[HttpResponseBase]:
        return self.get_response(request)

What's wrong

Return type"HttpResponseBase | Awaitable[HttpResponseBase]" of "call" incompatible with
return type "HttpResponseBase" in supertype "MiddlewareMixin" [override]

Unfortunately get_response() returns HttpResponseBase | Awaitable[HttpResponseBase], but MiddlewareMixin.__call__ has a return type of HttpResponseBase defined. I've tried using @sync_only_middleware, but it looks like that's a no-op.

How is that should be

No error.

System information

  • OS: N/A
  • python version: 3.11
  • django version: 4.1
  • mypy version: 1.4
  • django-stubs version: 4.2.2
  • django-stubs-ext version: 4.2.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions