Skip to content

Commit b887bb5

Browse files
authored
Bump mypy to 1.18.1 (#2810)
1 parent ed65629 commit b887bb5

File tree

11 files changed

+134
-129
lines changed

11 files changed

+134
-129
lines changed

django-stubs/contrib/contenttypes/admin.pyi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ from typing import Any
22

33
from django.contrib.admin.checks import InlineModelAdminChecks
44
from django.contrib.admin.options import InlineModelAdmin
5+
from django.contrib.contenttypes.forms import BaseGenericInlineFormSet
56
from django.db.models.base import Model
67

78
class GenericInlineModelAdminChecks(InlineModelAdminChecks):
@@ -10,6 +11,7 @@ class GenericInlineModelAdminChecks(InlineModelAdminChecks):
1011

1112
class GenericInlineModelAdmin(InlineModelAdmin):
1213
template: str
14+
formset: type[BaseGenericInlineFormSet] # type: ignore[assignment]
1315

1416
class GenericStackedInline(GenericInlineModelAdmin): ...
1517
class GenericTabularInline(GenericInlineModelAdmin): ...

django-stubs/contrib/postgres/fields/ranges.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ class DecimalRangeField(RangeField[NumericRange]):
4848
form_field: type[forms.DecimalRangeField]
4949

5050
class DateTimeRangeField(RangeField[DateTimeTZRange]):
51-
base_field: type[models.DecimalField]
52-
form_field: type[forms.DecimalRangeField]
51+
base_field: type[models.DateTimeField]
52+
form_field: type[forms.DateTimeRangeField]
5353

5454
class DateRangeField(RangeField[DateRange]):
5555
base_field: type[models.DateField]

django-stubs/db/models/lookups.pyi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from collections.abc import Iterable, Sequence
22
from typing import Any, Generic, Literal, TypeVar
33

4-
from django.core.exceptions import EmptyResultSet
54
from django.db.backends.base.base import BaseDatabaseWrapper
65
from django.db.models.expressions import Combinable, Expression, Func
76
from django.db.models.fields import BooleanField
@@ -79,8 +78,8 @@ class LessThan(FieldGetDbPrepValueMixin, BuiltinLookup[_T]): ...
7978
class LessThanOrEqual(FieldGetDbPrepValueMixin, BuiltinLookup[_T]): ...
8079

8180
class IntegerFieldOverflow:
82-
underflow_exception: type[EmptyResultSet]
83-
overflow_exception: type[EmptyResultSet]
81+
underflow_exception: type[Exception]
82+
overflow_exception: type[Exception]
8483
def process_rhs(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper) -> _AsSqlType: ...
8584

8685
class IntegerFieldFloatRounding:

django-stubs/urls/resolvers.pyi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ def get_ns_resolver(ns_pattern: str, resolver: URLResolver, converters: tuple) -
4545
_Pattern: TypeAlias = RegexPattern | RoutePattern | LocalePrefixPattern
4646

4747
class LocaleRegexDescriptor:
48-
attr: str
49-
def __init__(self, attr: Any) -> None: ...
5048
@overload
5149
def __get__(self, instance: None, cls: type[_Pattern] = ...) -> LocaleRegexDescriptor: ...
5250
@overload

django-stubs/utils/datastructures.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class MultiValueDict(dict[_K, _V]):
6262
def __init__(self, key_to_list_mapping: Mapping[_K, list[_V] | None]) -> None: ...
6363
@overload
6464
def __init__(self, key_to_list_mapping: Iterable[tuple[_K, list[_V]]] = ()) -> None: ...
65-
@overload # type: ignore[override]
65+
@overload
6666
def get(self, key: _K, default: None = None) -> _V | None: ...
6767
@overload
6868
def get(self, key: _K, default: _V) -> _V: ...

mypy_django_plugin/transformers/managers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def _process_dynamic_method(
135135
# used by the typing stubs.
136136
if method_name in MANAGER_METHODS_RETURNING_QUERYSET:
137137
ret_type = queryset_instance
138-
variables = []
138+
variables = ()
139139
args_types = method_type.arg_types[1:]
140140
if _has_compatible_type_vars(base_that_has_method):
141141
typed_var = manager_instance.args or queryset_info.bases[0].args

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dependencies = [
4141
]
4242

4343
[project.optional-dependencies]
44-
compatible-mypy = ["mypy>=1.13,<1.18"]
44+
compatible-mypy = ["mypy>=1.13,<1.19"]
4545
oracle = ["oracledb"]
4646
redis = ["redis", "types-redis"]
4747

@@ -59,7 +59,7 @@ tests = [
5959
"jinja2==3.1.6",
6060
"pyyaml==6.0.2",
6161
# typing:
62-
"mypy==1.17.1",
62+
"mypy==1.18.1",
6363
"django-stubs[compatible-mypy,oracle,redis]",
6464
]
6565
pyright = [

scripts/stubtest/allowlist.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,15 @@ django.utils.datastructures.ImmutableList.sort
5555
django.utils.datastructures.ImmutableList.reverse
5656

5757
# Promise is lazy, see notes in .pyi
58+
django.utils.functional.Promise.__init__
5859
django.utils.functional.Promise.__add__
5960
django.utils.functional.Promise.__deepcopy__
6061
django.utils.functional.Promise.__radd__
6162
django.utils.functional.Promise.__mod__
6263

64+
# `classonlymethod` is an alias for `@classmethod` which is disjoint:
65+
django.utils.decorators.classonlymethod
66+
6367
# Lazy regex
6468
django.contrib.admin.utils.UNQUOTE_RE
6569
django.contrib.gis.geometry.hex_regex

scripts/stubtest/allowlist_todo.txt

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ django.contrib.admin.models.LogEntry.object_id
2323
django.contrib.admin.models.LogEntry.object_repr
2424
django.contrib.admin.models.LogEntry.user
2525
django.contrib.admin.models.LogEntry.user_id
26-
django.contrib.admin.options.BaseModelAdmin.form
2726
django.contrib.admin.options.BaseModelAdmin.media
2827
django.contrib.admin.options.InlineModelAdmin.model
2928
django.contrib.admin.options.InlineModelAdmin.template
@@ -38,7 +37,6 @@ django.contrib.admin.utils.prepare_lookup_value
3837
django.contrib.admin.views.autocomplete.AutocompleteJsonView.admin_site
3938
django.contrib.admin.views.autocomplete.AutocompleteJsonView.process_request
4039
django.contrib.admin.views.autocomplete.AutocompleteJsonView.serialize_result
41-
django.contrib.admin.views.main.ChangeList.search_form_class
4240
django.contrib.admin.widgets.AutocompleteMixin.media
4341
django.contrib.admin.widgets.FilteredSelectMultiple.Media
4442
django.contrib.admin.widgets.BaseAdminTimeWidget.Media
@@ -48,7 +46,6 @@ django.contrib.admindocs.utils.remove_non_capturing_groups
4846
django.contrib.admindocs.utils.replace_metacharacters
4947
django.contrib.auth.admin.GroupAdmin.formfield_for_manytomany
5048
django.contrib.auth.admin.UserAdmin.fieldsets
51-
django.contrib.auth.admin.UserAdmin.form
5249
django.contrib.auth.admin.UserAdmin.get_form
5350
django.contrib.auth.base_user.AbstractBaseUser.last_login
5451
django.contrib.auth.base_user.AbstractBaseUser.password
@@ -295,27 +292,20 @@ django.contrib.gis.db.models.lookups.RasterBandTransform.as_sql
295292
django.contrib.gis.forms.ALL_FIELDS
296293
django.contrib.gis.forms.BaseForm.__init__
297294
django.contrib.gis.forms.BaseFormSet.__init__
298-
django.contrib.gis.forms.BaseModelForm.__init__
299295
django.contrib.gis.forms.BaseModelFormSet.model
300296
django.contrib.gis.forms.ChoiceField.__deepcopy__
301297
django.contrib.gis.forms.Field.__deepcopy__
302-
django.contrib.gis.forms.Field.hidden_widget
303298
django.contrib.gis.forms.FileField.bound_data
304299
django.contrib.gis.forms.Media.__html__
305300
django.contrib.gis.forms.ModelChoiceField.__deepcopy__
306-
django.contrib.gis.forms.ModelMultipleChoiceField.hidden_widget
307301
django.contrib.gis.forms.MultiValueField.__deepcopy__
308302
django.contrib.gis.forms.MultiWidget.use_fieldset
309-
django.contrib.gis.forms.MultipleChoiceField.hidden_widget
310303
django.contrib.gis.forms.RadioSelect.id_for_label
311304
django.contrib.gis.forms.RadioSelect.use_fieldset
312-
django.contrib.gis.forms.SelectDateWidget.select_widget
313305
django.contrib.gis.forms.SelectDateWidget.use_fieldset
314-
django.contrib.gis.forms.SplitDateTimeField.hidden_widget
315306
django.contrib.gis.forms.Widget.use_fieldset
316307
django.contrib.gis.forms.formset_factory
317308
django.contrib.gis.forms.inlineformset_factory
318-
django.contrib.gis.forms.modelform_factory
319309
django.contrib.gis.forms.modelformset_factory
320310
django.contrib.gis.gdal.OGRGeometry.geojson
321311
django.contrib.gis.gdal.SpatialReference.pretty_wkt
@@ -353,8 +343,6 @@ django.contrib.postgres.fields.RangeField.formfield
353343
django.contrib.postgres.fields.array.ArrayField.formfield
354344
django.contrib.postgres.fields.hstore.HStoreField.formfield
355345
django.contrib.postgres.fields.ranges.RangeField.formfield
356-
django.contrib.postgres.forms.BaseRangeField.hidden_widget
357-
django.contrib.postgres.forms.ranges.BaseRangeField.hidden_widget
358346
django.contrib.redirects.models.Redirect.id
359347
django.contrib.redirects.models.Redirect.new_path
360348
django.contrib.redirects.models.Redirect.old_path
@@ -903,46 +891,33 @@ django.db.utils.DatabaseErrorWrapper.__call__
903891
django.forms.ALL_FIELDS
904892
django.forms.BaseForm.__init__
905893
django.forms.BaseFormSet.__init__
906-
django.forms.BaseModelForm.__init__
907894
django.forms.BaseModelFormSet.model
908895
django.forms.ChoiceField.__deepcopy__
909896
django.forms.Field.__deepcopy__
910-
django.forms.Field.hidden_widget
911897
django.forms.FileField.bound_data
912898
django.forms.Media.__html__
913899
django.forms.ModelChoiceField.__deepcopy__
914-
django.forms.ModelMultipleChoiceField.hidden_widget
915900
django.forms.MultiValueField.__deepcopy__
916901
django.forms.MultiWidget.use_fieldset
917-
django.forms.MultipleChoiceField.hidden_widget
918902
django.forms.RadioSelect.id_for_label
919903
django.forms.RadioSelect.use_fieldset
920-
django.forms.SelectDateWidget.select_widget
921904
django.forms.SelectDateWidget.use_fieldset
922-
django.forms.SplitDateTimeField.hidden_widget
923905
django.forms.Widget.use_fieldset
924906
django.forms.boundfield.BoundWidget.__html__
925907
django.forms.fields.ChoiceField.__deepcopy__
926908
django.forms.fields.Field.__deepcopy__
927-
django.forms.fields.Field.hidden_widget
928909
django.forms.fields.FileField.bound_data
929910
django.forms.fields.MultiValueField.__deepcopy__
930-
django.forms.fields.MultipleChoiceField.hidden_widget
931-
django.forms.fields.SplitDateTimeField.hidden_widget
932911
django.forms.forms.BaseForm.__init__
933912
django.forms.formset_factory
934913
django.forms.formsets.BaseFormSet.__init__
935914
django.forms.formsets.ManagementForm.__init__
936915
django.forms.formsets.formset_factory
937916
django.forms.inlineformset_factory
938-
django.forms.modelform_factory
939917
django.forms.modelformset_factory
940-
django.forms.models.BaseModelForm.__init__
941918
django.forms.models.BaseModelFormSet.model
942919
django.forms.models.ModelChoiceField.__deepcopy__
943-
django.forms.models.ModelMultipleChoiceField.hidden_widget
944920
django.forms.models.inlineformset_factory
945-
django.forms.models.modelform_factory
946921
django.forms.models.modelformset_factory
947922
django.forms.renderers.DjangoDivFormRenderer
948923
django.forms.widgets.ChoiceWidget.template_name
@@ -951,7 +926,6 @@ django.forms.widgets.Media.__html__
951926
django.forms.widgets.MultiWidget.use_fieldset
952927
django.forms.widgets.RadioSelect.id_for_label
953928
django.forms.widgets.RadioSelect.use_fieldset
954-
django.forms.widgets.SelectDateWidget.select_widget
955929
django.forms.widgets.SelectDateWidget.use_fieldset
956930
django.forms.widgets.Widget.use_fieldset
957931
django.template.VariableDoesNotExist.__init__

tests/assert_type/db/models/test_constraints.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,7 @@
1313
name="unique_mess",
1414
)
1515

16-
CheckConstraint(name="less_than_constraint", check=LessThan[Any](F("months"), 1)) # pyright: ignore[reportDeprecated]
16+
CheckConstraint( # type: ignore[deprecated] # pyright: ignore[reportDeprecated]
17+
name="less_than_constraint",
18+
check=LessThan[Any](F("months"), 1),
19+
)

0 commit comments

Comments
 (0)