Skip to content

Commit 2fd3c93

Browse files
committed
[django-filter] Make djangorestframework dependency optional
1 parent 7c8175d commit 2fd3c93

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

stubs/django-filter/METADATA.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version = "25.1.*"
22
upstream_repository = "https://github.com/carltongibson/django-filter/"
3-
requires = ["django-stubs", "djangorestframework-stubs"]
3+
requires = ["django-stubs"]
44

55
[tool.stubtest]
66
mypy_plugins = ["mypy_django_plugin.main"]
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
11
from typing import Any
2+
from typing_extensions import TypeAlias
23

34
from django.db.models import QuerySet
45
from django.http import HttpRequest
56
from django_filters.filterset import FilterSetMetaclass
6-
from rest_framework.views import APIView
77

88
from . import filterset
99

10+
# APIView placeholder - djangorestframework is optional, so we use Any for compatibility
11+
_APIView: TypeAlias = Any
12+
1013
class DjangoFilterBackend:
1114
filterset_base: FilterSetMetaclass = ...
1215
raise_exception: bool
1316
@property
1417
def template(self) -> str: ...
1518

1619
# Works with any model type
17-
def get_filterset(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> filterset.FilterSet | None: ...
20+
def get_filterset(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> filterset.FilterSet | None: ...
1821

1922
# Any model queryset
20-
def get_filterset_class(self, view: APIView, queryset: QuerySet[Any] | None = None) -> type[filterset.FilterSet] | None: ...
23+
def get_filterset_class(self, view: _APIView, queryset: QuerySet[Any] | None = None) -> type[filterset.FilterSet] | None: ...
2124

2225
# Kwargs vary by filterset
23-
def get_filterset_kwargs(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> dict[str, Any]: ...
26+
def get_filterset_kwargs(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> dict[str, Any]: ...
2427

2528
# Filters any model type
26-
def filter_queryset(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> QuerySet[Any]: ...
27-
def to_html(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> str: ... # Renders form for any model
29+
def filter_queryset(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> QuerySet[Any]: ...
30+
def to_html(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> str: ... # Renders form for any model

0 commit comments

Comments
 (0)