Skip to content

Commit cd3061b

Browse files
committed
Add lots of missing argument & return type hints
Discovered by setting mypy options disallow_untyped_defs, disallow_incomplete_defs.
1 parent 6aecafc commit cd3061b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+192
-134
lines changed

django-stubs/conf/global_settings.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ DATABASES: Dict[str, Dict[str, Any]] = ...
8383

8484
# Classes used to implement DB routing behavior.
8585
class Router(Protocol):
86-
def allow_migrate(self, db, app_label, **hints): ...
86+
def allow_migrate(self, db: str, app_label: str, **hints: Any) -> Optional[bool]: ...
8787

8888
DATABASE_ROUTERS: List[Union[str, Router]] = ...
8989

django-stubs/contrib/admin/checks.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ class ModelAdminChecks(BaseModelAdminChecks):
1616
class InlineModelAdminChecks(BaseModelAdminChecks):
1717
def check(self, inline_obj: BaseModelAdmin, **kwargs: Any) -> Sequence[CheckMessage]: ... # type: ignore
1818

19-
def must_be(type: Any, option: Any, obj: Any, id: Any): ...
20-
def must_inherit_from(parent: Any, option: Any, obj: Any, id: Any): ...
21-
def refer_to_missing_field(field: Any, option: Any, obj: Any, id: Any): ...
19+
def must_be(type: Any, option: Any, obj: Any, id: Any) -> Sequence[CheckMessage]: ...
20+
def must_inherit_from(parent: Any, option: Any, obj: Any, id: Any) -> Sequence[CheckMessage]: ...
21+
def refer_to_missing_field(field: Any, option: Any, obj: Any, id: Any) -> Sequence[CheckMessage]: ...

django-stubs/contrib/admin/helpers.pyi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ from django import forms
44
from django.contrib.admin.options import ModelAdmin
55
from django.db.models import Model
66
from django.db.models.fields import AutoField
7+
from django.forms import BaseForm
78
from django.forms.boundfield import BoundField
89
from django.forms.models import ModelForm
910
from django.forms.utils import ErrorDict, ErrorList
@@ -143,7 +144,7 @@ class InlineAdminFormSet:
143144
def fields(self) -> Iterator[Dict[str, Union[Dict[str, bool], bool, Widget, str]]]: ...
144145
def inline_formset_data(self) -> str: ...
145146
@property
146-
def forms(self): ...
147+
def forms(self) -> List[BaseForm]: ...
147148
@property
148149
def non_form_errors(self) -> Callable[[], ErrorList]: ...
149150
@property
@@ -170,7 +171,7 @@ class InlineAdminForm(AdminForm):
170171
def pk_field(self) -> AdminField: ...
171172
def fk_field(self) -> AdminField: ...
172173
def deletion_field(self) -> AdminField: ...
173-
def ordering_field(self): ...
174+
def ordering_field(self) -> AdminField: ...
174175

175176
class InlineFieldset(Fieldset):
176177
formset: Any = ...

django-stubs/contrib/admin/options.pyi

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@ from django.forms.fields import Field as FormField
3434
from django.forms.fields import TypedChoiceField
3535
from django.forms.forms import BaseForm
3636
from django.forms.formsets import BaseFormSet
37-
from django.forms.models import BaseInlineFormSet, ModelChoiceField, ModelMultipleChoiceField
37+
from django.forms.models import (
38+
BaseInlineFormSet,
39+
BaseModelFormSet,
40+
ModelChoiceField,
41+
ModelForm,
42+
ModelMultipleChoiceField,
43+
)
3844
from django.forms.widgets import Media
3945
from django.http.request import HttpRequest
4046
from django.http.response import HttpResponse, HttpResponseRedirect, JsonResponse
@@ -191,8 +197,10 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
191197
def get_object(
192198
self, request: HttpRequest, object_id: str, from_field: Optional[str] = ...
193199
) -> Optional[_ModelT]: ...
194-
def get_changelist_form(self, request: Any, **kwargs: Any): ...
195-
def get_changelist_formset(self, request: Any, **kwargs: Any): ...
200+
def get_changelist_form(self, request: Any, **kwargs: Any) -> Type[ModelForm[_ModelT]]: ...
201+
def get_changelist_formset(
202+
self, request: Any, **kwargs: Any
203+
) -> Type[BaseModelFormSet[_ModelT, ModelForm[_ModelT]]]: ...
196204
def get_formsets_with_inlines(self, request: HttpRequest, obj: Optional[_ModelT] = ...) -> Iterator[Any]: ...
197205
def get_paginator(
198206
self,

django-stubs/contrib/admin/utils.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class NestedObjects(Collector):
4545
def nested(self, format_callback: Callable = ...) -> List[Any]: ...
4646
def can_fast_delete(self, *args: Any, **kwargs: Any) -> bool: ...
4747

48-
def model_format_dict(obj: Union[Model, Type[Model], QuerySet, Options[Model]]): ...
48+
def model_format_dict(obj: Union[Model, Type[Model], QuerySet, Options[Model]]) -> Dict[str, str]: ...
4949
def model_ngettext(obj: Union[Options, QuerySet], n: Optional[int] = ...) -> str: ...
5050
def lookup_field(
5151
name: Union[Callable, str], obj: Model, model_admin: Optional[BaseModelAdmin] = ...

django-stubs/contrib/admindocs/utils.pyi

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
from typing import Any, Callable, Dict, Optional, Tuple
1+
from typing import Any, Callable, Dict, List, Optional, Tuple
2+
3+
from django.utils.safestring import SafeString
24

35
docutils_is_available: bool
46

57
def get_view_name(view_func: Callable) -> str: ...
68
def parse_docstring(docstring: str) -> Tuple[str, str, Dict[str, str]]: ...
7-
def parse_rst(text: str, default_reference_context: Any, thing_being_parsed: Optional[Any] = ...): ...
9+
def parse_rst(text: str, default_reference_context: Any, thing_being_parsed: Optional[Any] = ...) -> SafeString: ...
810

911
ROLES: Dict[str, str]
1012

@@ -17,7 +19,7 @@ def default_reference_role(
1719
inliner: Any,
1820
options: Optional[Any] = ...,
1921
content: Optional[Any] = ...,
20-
): ...
22+
) -> Tuple[List[Any], List[Any]]: ...
2123

2224
named_group_matcher: Any
2325
unnamed_group_matcher: Any

django-stubs/contrib/admindocs/views.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class ModelIndexView(BaseAdminDocsView): ...
1616
class ModelDetailView(BaseAdminDocsView): ...
1717
class TemplateDetailView(BaseAdminDocsView): ...
1818

19-
def get_return_data_type(func_name: Any): ...
19+
def get_return_data_type(func_name: Any) -> str: ...
2020
def get_readable_field_data_type(field: Union[Field, str]) -> str: ...
2121
def extract_views_from_urlpatterns(
2222
urlpatterns: Iterable[_AnyURL], base: str = ..., namespace: Optional[str] = ...

django-stubs/contrib/auth/backends.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ from typing import Any, Optional, Set, TypeVar, Union
22

33
from django.contrib.auth.base_user import AbstractBaseUser
44
from django.contrib.auth.models import AnonymousUser, Permission
5+
from django.db.models import QuerySet
56
from django.db.models.base import Model
67
from django.http.request import HttpRequest
78

@@ -33,7 +34,7 @@ class ModelBackend(BaseBackend):
3334
is_active: bool = ...,
3435
include_superusers: bool = ...,
3536
obj: Optional[Model] = ...,
36-
): ...
37+
) -> QuerySet[AbstractBaseUser]: ...
3738

3839
class AllowAllUsersModelBackend(ModelBackend): ...
3940

django-stubs/contrib/auth/models.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ from django.contrib.auth.base_user import BaseUserManager as BaseUserManager
55
from django.contrib.auth.validators import UnicodeUsernameValidator
66
from django.contrib.contenttypes.models import ContentType
77
from django.db import models
8+
from django.db.models import QuerySet
89
from django.db.models.base import Model
910
from django.db.models.manager import EmptyManager
1011
from typing_extensions import Literal
@@ -51,7 +52,7 @@ class UserManager(BaseUserManager[_T]):
5152
include_superusers: bool = ...,
5253
backend: Optional[str] = ...,
5354
obj: Optional[Model] = ...,
54-
): ...
55+
) -> QuerySet[AbstractBaseUser]: ...
5556

5657
class PermissionsMixin(models.Model):
5758
is_superuser = models.BooleanField()

django-stubs/contrib/auth/views.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Optional, Set
1+
from typing import Any, Dict, Optional, Set
22

33
from django.contrib.auth.base_user import AbstractBaseUser
44
from django.contrib.auth.forms import AuthenticationForm
@@ -35,7 +35,7 @@ def redirect_to_login(
3535

3636
class PasswordContextMixin:
3737
extra_context: Any = ...
38-
def get_context_data(self, **kwargs: Any): ...
38+
def get_context_data(self, **kwargs: Any) -> Dict[str, Any]: ...
3939

4040
class PasswordResetView(PasswordContextMixin, FormView):
4141
email_template_name: str = ...

0 commit comments

Comments
 (0)