diff --git a/python/helpers/bundled_stubs/Django/django-stubs/conf/global_settings.pyi b/python/helpers/bundled_stubs/Django/django-stubs/conf/global_settings.pyi index dceacf724db4..40367682cf73 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/conf/global_settings.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/conf/global_settings.pyi @@ -5,8 +5,11 @@ from re import Pattern # django.utils.translation -- that module depends on the settings. from typing import Any, Literal, Protocol, TypeAlias, TypedDict, type_check_only +from django.utils.functional import _StrOrPromise from typing_extensions import NotRequired +from django_stubs_ext.settings import TemplatesSetting + _Admins: TypeAlias = list[tuple[str, str]] #################### @@ -74,6 +77,10 @@ MANAGERS: _Admins # Content-Type header. DEFAULT_CHARSET: str +# `SERIALIZATION_MODULES` is a dictionary (`dict[str, str]`) of modules containing serializer definitions. +# Because Django doesn't define it, we can't provide its type here. Use `getattr` for type-safe access +# e.g. `getattr(settings, "SERIALIZATION_MODULES")` + # Email address that error messages come from. SERVER_EMAIL: str @@ -93,6 +100,10 @@ DATABASE_ROUTERS: list[str | Router] # to a module that defines an EmailBackend class. EMAIL_BACKEND: str +# `EMAIL_FILE_PATH` is a `str` indicating the directory used by the file email backend to store output files. +# Because Django doesn't define it, we can't provide its type here. Use `getattr` for type-safe access +# e.g. `getattr(settings, "EMAIL_FILE_PATH")` + # Host for sending email. EMAIL_HOST: str @@ -114,7 +125,7 @@ EMAIL_TIMEOUT: int | None # List of strings representing installed apps. INSTALLED_APPS: list[str] -TEMPLATES: list[dict[str, Any]] +TEMPLATES: list[TemplatesSetting] # Default form rendering class. FORM_RENDERER: str @@ -167,6 +178,10 @@ ABSOLUTE_URL_OVERRIDES: dict[str, Any] # ] IGNORABLE_404_URLS: list[Pattern[str]] +# `ROOT_URLCONF` is a string representing the full Python import path to the root `URLconf`. +# Because Django doesn't define it, we can't provide its type here. Use `getattr` for type-safe access +# e.g. `getattr(settings, "ROOT_URLCONF")` + # A secret key for this particular Django installation. Used in secret-key # hashing algorithms. Set this in your settings, or Django will complain # loudly. @@ -186,6 +201,10 @@ MEDIA_ROOT: str # Examples: "http://example.com/media/", "http://media.example.com/" MEDIA_URL: str +# `SITE_ID` is the ID, as an integer, of the current site in the `django_site` database table. +# Because Django doesn't define it, we can't provide its type here. Use `getattr` for type-safe access +# e.g. `getattr(settings, "SITE_ID")` + # Absolute path to the directory static files should be collected to. # Example: "/var/www/example.com/static/" STATIC_ROOT: str | None @@ -389,11 +408,11 @@ AUTH_USER_MODEL: str AUTHENTICATION_BACKENDS: Sequence[str] -LOGIN_URL: str +LOGIN_URL: _StrOrPromise -LOGIN_REDIRECT_URL: str +LOGIN_REDIRECT_URL: _StrOrPromise -LOGOUT_REDIRECT_URL: str | None +LOGOUT_REDIRECT_URL: _StrOrPromise | None # The number of seconds a password reset link is valid for PASSWORD_RESET_TIMEOUT: int diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/__init__.pyi index aa7f4841c3b8..486e4c75370a 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/__init__.pyi @@ -24,26 +24,26 @@ from .sites import site as site def autodiscover() -> None: ... __all__ = [ - "action", - "display", - "register", - "ModelAdmin", "HORIZONTAL", "VERTICAL", - "StackedInline", - "TabularInline", "AdminSite", - "site", - "ListFilter", - "SimpleListFilter", - "FieldListFilter", + "AllValuesFieldListFilter", "BooleanFieldListFilter", - "RelatedFieldListFilter", "ChoicesFieldListFilter", "DateFieldListFilter", - "AllValuesFieldListFilter", "EmptyFieldListFilter", + "FieldListFilter", + "ListFilter", + "ModelAdmin", + "RelatedFieldListFilter", "RelatedOnlyFieldListFilter", "ShowFacets", + "SimpleListFilter", + "StackedInline", + "TabularInline", + "action", "autodiscover", + "display", + "register", + "site", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/models.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/models.pyi index 3d0f878d0621..9ab76018db0f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/models.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/models.pyi @@ -12,7 +12,7 @@ DELETION: int ACTION_FLAG_CHOICES: Any class LogEntryManager(models.Manager[LogEntry]): - @deprecated("log_action() is deprecated and will be removed in Django 6.0. Use log_action_new() instead.") + @deprecated("log_action() is deprecated and will be removed in Django 6.0. Use log_actions() instead.") def log_action( self, user_id: int | str | UUID, diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/options.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/options.pyi index ba3ea027d58b..39250cd615e6 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/options.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/options.pyi @@ -299,7 +299,7 @@ class ModelAdmin(BaseModelAdmin[_ModelT]): _ChildModelT = TypeVar("_ChildModelT", bound=Model) _ParentModelT = TypeVar("_ParentModelT", bound=Model) -class InlineModelAdmin(Generic[_ChildModelT, _ParentModelT], BaseModelAdmin[_ChildModelT]): +class InlineModelAdmin(BaseModelAdmin[_ChildModelT], Generic[_ChildModelT, _ParentModelT]): model: type[_ChildModelT] fk_name: str | None formset: type[BaseInlineFormSet[_ChildModelT, _ParentModelT, forms.ModelForm[_ChildModelT]]] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/tests.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/tests.pyi index e5da417391f6..f24132bdf775 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/tests.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/tests.pyi @@ -5,6 +5,7 @@ from typing import Any from django.contrib.staticfiles.testing import StaticLiveServerTestCase from django.test.selenium import SeleniumTestCase from django.utils.deprecation import MiddlewareMixin +from django.utils.functional import _StrOrPromise class CSPMiddleware(MiddlewareMixin): ... @@ -18,7 +19,7 @@ class AdminSeleniumTestCase(SeleniumTestCase, StaticLiveServerTestCase): def wait_until_invisible(self, css_selector: str, timeout: int = ...) -> None: ... def wait_page_ready(self, timeout: int = ...) -> None: ... def wait_page_loaded(self, timeout: int = ...) -> AbstractContextManager[None]: ... - def admin_login(self, username: str, password: str, login_url: str = ...) -> None: ... + def admin_login(self, username: str, password: str, login_url: _StrOrPromise = ...) -> None: ... def select_option(self, selector: str, value: Any) -> None: ... def deselect_option(self, selector: str, value: Any) -> None: ... def assertSelectOptions(self, selector: str, values: Any) -> None: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/views/decorators.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/views/decorators.pyi index 38c74ecb1e3a..9c71747ded10 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/views/decorators.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/admin/views/decorators.pyi @@ -1,11 +1,15 @@ from collections.abc import Callable from typing import TypeVar, overload +from django.utils.functional import _StrOrPromise + _C = TypeVar("_C", bound=Callable) @overload -def staff_member_required(view_func: _C = ..., redirect_field_name: str | None = ..., login_url: str = ...) -> _C: ... +def staff_member_required( + view_func: _C = ..., redirect_field_name: str | None = ..., login_url: _StrOrPromise = ... +) -> _C: ... @overload def staff_member_required( - view_func: None = None, redirect_field_name: str | None = ..., login_url: str = ... + view_func: None = None, redirect_field_name: str | None = ..., login_url: _StrOrPromise = ... ) -> Callable: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/decorators.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/decorators.pyi index ac426da190f9..05833e600a71 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/decorators.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/decorators.pyi @@ -3,21 +3,26 @@ from typing import TypeVar, overload from django.contrib.auth.models import _AnyUser from django.http.response import HttpResponseBase +from django.utils.functional import _StrOrPromise _VIEW = TypeVar("_VIEW", bound=Callable[..., HttpResponseBase | Awaitable[HttpResponseBase]]) def user_passes_test( test_func: Callable[[_AnyUser], bool], - login_url: str | None = ..., + login_url: _StrOrPromise | None = ..., redirect_field_name: str | None = ..., ) -> Callable[[_VIEW], _VIEW]: ... # There are two ways of calling @login_required: @with(arguments) and @bare @overload -def login_required(redirect_field_name: str | None = ..., login_url: str | None = ...) -> Callable[[_VIEW], _VIEW]: ... +def login_required( + redirect_field_name: str | None = ..., login_url: _StrOrPromise | None = ... +) -> Callable[[_VIEW], _VIEW]: ... @overload -def login_required(function: _VIEW, redirect_field_name: str | None = ..., login_url: str | None = ...) -> _VIEW: ... +def login_required( + function: _VIEW, redirect_field_name: str | None = ..., login_url: _StrOrPromise | None = ... +) -> _VIEW: ... def login_not_required(view_func: _VIEW) -> _VIEW: ... def permission_required( - perm: Iterable[str] | str, login_url: str | None = ..., raise_exception: bool = ... + perm: Iterable[str] | str, login_url: _StrOrPromise | None = ..., raise_exception: bool = ... ) -> Callable[[_VIEW], _VIEW]: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/forms.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/forms.pyi index 2054b540010b..8cd35231c057 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/forms.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/forms.pyi @@ -60,7 +60,7 @@ class SetUnusablePasswordMixin(Generic[_UserType]): def validate_password_for_user(self, user: _UserType, **kwargs: Any) -> None: ... def set_password_and_save(self, user: _User, commit: bool = True, **kwargs: Any) -> _User: ... -class BaseUserCreationForm(Generic[_UserType], forms.ModelForm[_UserType]): +class BaseUserCreationForm(forms.ModelForm[_UserType], Generic[_UserType]): error_messages: _ErrorMessagesDict password1: forms.Field password2: forms.Field @@ -112,7 +112,7 @@ class PasswordResetForm(forms.Form): extra_email_context: dict[str, str] | None = ..., ) -> None: ... -class SetPasswordForm(Generic[_UserType], SetPasswordMixin, forms.Form): +class SetPasswordForm(SetPasswordMixin, forms.Form, Generic[_UserType]): new_password1: forms.Field new_password2: forms.Field user: _UserType @@ -123,7 +123,7 @@ class PasswordChangeForm(SetPasswordForm): old_password: forms.Field def clean_old_password(self) -> str: ... -class AdminPasswordChangeForm(Generic[_UserType], forms.Form): +class AdminPasswordChangeForm(forms.Form, Generic[_UserType]): error_messages: _ErrorMessagesDict required_css_class: str usable_password_help_text: str diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/mixins.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/mixins.pyi index d344dfa5c1da..fea979a652bd 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/mixins.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/auth/mixins.pyi @@ -6,7 +6,7 @@ from django.http.response import HttpResponseBase, HttpResponseRedirect from django.utils.functional import _StrOrPromise class AccessMixin: - login_url: Any + login_url: _StrOrPromise | None permission_denied_message: _StrOrPromise raise_exception: bool redirect_field_name: Any diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/admin.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/admin.pyi index d19318806632..1ad128112e93 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/admin.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/admin.pyi @@ -2,6 +2,7 @@ from typing import Any from django.contrib.admin.checks import InlineModelAdminChecks from django.contrib.admin.options import InlineModelAdmin +from django.contrib.contenttypes.forms import BaseGenericInlineFormSet from django.db.models.base import Model class GenericInlineModelAdminChecks(InlineModelAdminChecks): @@ -10,6 +11,7 @@ class GenericInlineModelAdminChecks(InlineModelAdminChecks): class GenericInlineModelAdmin(InlineModelAdmin): template: str + formset: type[BaseGenericInlineFormSet] # type: ignore[assignment] class GenericStackedInline(GenericInlineModelAdmin): ... class GenericTabularInline(GenericInlineModelAdmin): ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/prefetch.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/prefetch.pyi index a444150acee1..af58343aaa92 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/prefetch.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/contenttypes/prefetch.pyi @@ -1,9 +1,20 @@ -from typing import Any +from typing import Any, Generic, TypeVar -from django.db.models import Prefetch +from django.db.models import Model, Prefetch from django.db.models.query import QuerySet -class GenericPrefetch(Prefetch): - def __init__(self, lookup: str, querysets: list[QuerySet], to_attr: str | None = None) -> None: ... +# The type of the lookup passed to Prefetch(...) +# This will be specialized to a `LiteralString` in the plugin for further processing and validation +_LookupT = TypeVar("_LookupT", bound=str, covariant=True) +# The type of the querysets passed to GenericPrefetch(...) +_PrefetchedQuerySetsT = TypeVar( + "_PrefetchedQuerySetsT", bound=list[QuerySet[Model]], covariant=True, default=list[QuerySet[Model]] +) +# The attribute name to store the prefetched list[_PrefetchedQuerySetT] +# This will be specialized to a `LiteralString` in the plugin for further processing and validation +_ToAttrT = TypeVar("_ToAttrT", bound=str, covariant=True, default=str) + +class GenericPrefetch(Prefetch, Generic[_LookupT, _PrefetchedQuerySetsT, _ToAttrT]): + def __init__(self, lookup: _LookupT, querysets: _PrefetchedQuerySetsT, to_attr: _ToAttrT | None = None) -> None: ... def __getstate__(self) -> dict[str, Any]: ... - def get_current_querysets(self, level: int) -> list[QuerySet] | None: ... + def get_current_querysets(self, level: int) -> _PrefetchedQuerySetsT | None: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/admin/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/admin/__init__.pyi index 38f226b07a06..64b510fc52fc 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/admin/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/admin/__init__.pyi @@ -15,6 +15,7 @@ __all__ = [ "HORIZONTAL", "VERTICAL", "AdminSite", + "GISModelAdmin", "ModelAdmin", "StackedInline", "TabularInline", @@ -23,5 +24,4 @@ __all__ = [ "display", "register", "site", - "GISModelAdmin", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/db/models/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/db/models/__init__.pyi index 305a2a28995e..67ca297d8d22 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/db/models/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/db/models/__init__.pyi @@ -15,119 +15,119 @@ from django.contrib.gis.db.models.fields import RasterField as RasterField from django.db.models import * __all__ = [ - "Aggregate", - "Avg", - "Count", - "Max", - "Min", - "StdDev", - "Sum", - "Variance", - "BaseConstraint", - "CheckConstraint", - "Deferrable", - "UniqueConstraint", - "Choices", - "IntegerChoices", - "TextChoices", - "AutoField", "BLANK_CHOICE_DASH", - "BigAutoField", - "BigIntegerField", - "BinaryField", - "BooleanField", - "CharField", - "CommaSeparatedIntegerField", - "DateField", - "DateTimeField", - "DecimalField", - "DurationField", - "EmailField", - "Empty", - "Field", - "FilePathField", - "FloatField", - "GenericIPAddressField", - "IPAddressField", - "IntegerField", - "NOT_PROVIDED", - "NullBooleanField", - "PositiveBigIntegerField", - "PositiveIntegerField", - "PositiveSmallIntegerField", - "SlugField", - "SmallAutoField", - "SmallIntegerField", - "TextField", - "TimeField", - "URLField", - "UUIDField", - "Index", - "ObjectDoesNotExist", - "signals", "CASCADE", + "DEFERRED", "DO_NOTHING", + "NOT_PROVIDED", "PROTECT", "RESTRICT", "SET", "SET_DEFAULT", "SET_NULL", - "ProtectedError", - "RestrictedError", + "Aggregate", + "AutoField", + "Avg", + "BaseConstraint", + "BigAutoField", + "BigIntegerField", + "BinaryField", + "BooleanField", "Case", + "CharField", + "CheckConstraint", + "Choices", + "Collect", + "CommaSeparatedIntegerField", "CompositePrimaryKey", + "Count", + "DateField", + "DateTimeField", + "DecimalField", + "Deferrable", + "DurationField", + "EmailField", + "Empty", "Exists", "Expression", "ExpressionList", "ExpressionWrapper", + "Extent", + "Extent3D", "F", + "Field", + "FileField", + "FilePathField", + "FilteredRelation", + "FloatField", + "ForeignKey", + "ForeignObject", + "ForeignObjectRel", "Func", + "GeneratedField", + "GenericIPAddressField", + "GeometryCollectionField", + "GeometryField", + "IPAddressField", + "ImageField", + "Index", + "IntegerChoices", + "IntegerField", + "JSONField", + "LineStringField", + "Lookup", + "MakeLine", + "Manager", + "ManyToManyField", + "ManyToManyRel", + "ManyToOneRel", + "Max", + "Min", + "Model", + "MultiLineStringField", + "MultiPointField", + "MultiPolygonField", + "NullBooleanField", + "ObjectDoesNotExist", + "OneToOneField", + "OneToOneRel", "OrderBy", + "OrderWrt", "OuterRef", + "PointField", + "PolygonField", + "PositiveBigIntegerField", + "PositiveIntegerField", + "PositiveSmallIntegerField", + "Prefetch", + "ProtectedError", + "Q", + "QuerySet", + "RasterField", + "RestrictedError", "RowRange", + "SlugField", + "SmallAutoField", + "SmallIntegerField", + "StdDev", "Subquery", + "Sum", + "TextChoices", + "TextField", + "TimeField", + "Transform", + "URLField", + "UUIDField", + "Union", + "UniqueConstraint", "Value", "ValueRange", + "Variance", "When", "Window", "WindowFrame", "WindowFrameExclusion", - "FileField", - "ImageField", - "GeneratedField", - "JSONField", - "OrderWrt", - "Lookup", - "Transform", - "Manager", - "Prefetch", - "Q", - "QuerySet", "aprefetch_related_objects", "prefetch_related_objects", - "DEFERRED", - "Model", - "FilteredRelation", - "ForeignKey", - "ForeignObject", - "OneToOneField", - "ManyToManyField", - "ForeignObjectRel", - "ManyToOneRel", - "ManyToManyRel", - "OneToOneRel", - "Collect", - "Extent", - "Extent3D", - "MakeLine", - "Union", - "GeometryCollectionField", - "GeometryField", - "LineStringField", - "MultiLineStringField", - "MultiPointField", - "MultiPolygonField", - "PointField", - "PolygonField", - "RasterField", + "signals", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/gdal/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/gdal/__init__.pyi index a1bb97b3dcc2..d21c1ac52963 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/gdal/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/gdal/__init__.pyi @@ -15,19 +15,19 @@ from django.contrib.gis.gdal.srs import CoordTransform as CoordTransform from django.contrib.gis.gdal.srs import SpatialReference as SpatialReference __all__ = ( + "GDAL_VERSION", "AxisOrder", - "Driver", - "DataSource", "CoordTransform", + "DataSource", + "Driver", "Envelope", "GDALException", "GDALRaster", - "GDAL_VERSION", - "OGRGeometry", "OGRGeomType", - "SpatialReference", + "OGRGeometry", "SRSException", + "SpatialReference", "check_err", - "gdal_version", "gdal_full_version", + "gdal_version", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/io.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/io.pyi index c4f6ade06ab2..349c0d5f2b2d 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/io.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/io.pyi @@ -9,4 +9,4 @@ class WKBReader(_WKBReader): class WKTReader(_WKTReader): def read(self, wkt: bytes | str) -> GEOSGeometry: ... -__all__ = ["WKBWriter", "WKTWriter", "WKBReader", "WKTReader"] +__all__ = ["WKBReader", "WKBWriter", "WKTReader", "WKTWriter"] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/prototypes/misc.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/prototypes/misc.pyi index 09f7e788f97c..c7970793be4a 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/prototypes/misc.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/geos/prototypes/misc.pyi @@ -11,4 +11,4 @@ geos_distance: Any geos_length: Any geos_isvalidreason: Any -__all__ = ["geos_area", "geos_distance", "geos_length", "geos_isvalidreason"] +__all__ = ["geos_area", "geos_distance", "geos_isvalidreason", "geos_length"] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/utils/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/utils/__init__.pyi index bb0792deaf71..deed1e7ab250 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/utils/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/gis/utils/__init__.pyi @@ -5,4 +5,4 @@ from django.contrib.gis.utils.ogrinspect import mapping as mapping from django.contrib.gis.utils.ogrinspect import ogrinspect as ogrinspect from django.contrib.gis.utils.srs import add_srs_entry as add_srs_entry -__all__ = ["add_srs_entry", "mapping", "ogrinfo", "ogrinspect", "LayerMapError", "LayerMapping"] +__all__ = ["LayerMapError", "LayerMapping", "add_srs_entry", "mapping", "ogrinfo", "ogrinspect"] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/messages/api.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/messages/api.pyi index 2dc0c6319db0..d5585efbed2f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/messages/api.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/messages/api.pyi @@ -48,14 +48,14 @@ def error( ) -> None: ... __all__ = ( + "MessageFailure", "add_message", - "get_messages", - "get_level", - "set_level", "debug", + "error", + "get_level", + "get_messages", "info", + "set_level", "success", "warning", - "error", - "MessageFailure", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/aggregates/statistics.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/aggregates/statistics.pyi index 626bc2fa8f55..38f6381ebdb6 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/aggregates/statistics.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/aggregates/statistics.pyi @@ -29,16 +29,16 @@ class RegrSXY(StatAggregate): ... class RegrSYY(StatAggregate): ... __all__ = [ - "CovarPop", "Corr", + "CovarPop", "RegrAvgX", "RegrAvgY", "RegrCount", "RegrIntercept", "RegrR2", - "RegrSlope", "RegrSXX", "RegrSXY", "RegrSYY", + "RegrSlope", "StatAggregate", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/fields/ranges.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/fields/ranges.pyi index 5b991c1a2443..53c7b7887318 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/fields/ranges.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/fields/ranges.pyi @@ -48,8 +48,8 @@ class DecimalRangeField(RangeField[NumericRange]): form_field: type[forms.DecimalRangeField] class DateTimeRangeField(RangeField[DateTimeTZRange]): - base_field: type[models.DecimalField] - form_field: type[forms.DecimalRangeField] + base_field: type[models.DateTimeField] + form_field: type[forms.DateTimeRangeField] class DateRangeField(RangeField[DateRange]): base_field: type[models.DateField] @@ -91,12 +91,12 @@ class UpperInfinite(models.Transform): output_field: ClassVar[models.BooleanField] __all__ = [ - "RangeField", - "IntegerRangeField", "BigIntegerRangeField", - "DecimalRangeField", - "DateTimeRangeField", "DateRangeField", + "DateTimeRangeField", + "DecimalRangeField", + "IntegerRangeField", "RangeBoundary", + "RangeField", "RangeOperators", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/forms/ranges.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/forms/ranges.pyi index ea49e0d47c45..25b52824ecd0 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/forms/ranges.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/forms/ranges.pyi @@ -43,10 +43,10 @@ class DateRangeField(BaseRangeField): __all__ = [ "BaseRangeField", - "IntegerRangeField", - "DecimalRangeField", - "DateTimeRangeField", "DateRangeField", + "DateTimeRangeField", + "DecimalRangeField", "HiddenRangeWidget", + "IntegerRangeField", "RangeWidget", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/indexes.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/indexes.pyi index 2bb5649c04b8..8a0788dcd5fb 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/indexes.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/postgres/indexes.pyi @@ -121,4 +121,4 @@ class OpClass(Func): name: str, ) -> None: ... -__all__ = ["BloomIndex", "BrinIndex", "BTreeIndex", "GinIndex", "GistIndex", "HashIndex", "SpGistIndex"] +__all__ = ["BTreeIndex", "BloomIndex", "BrinIndex", "GinIndex", "GistIndex", "HashIndex", "SpGistIndex"] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/contrib/redirects/middleware.pyi b/python/helpers/bundled_stubs/Django/django-stubs/contrib/redirects/middleware.pyi index 69d99de02d29..24e1baf553e0 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/contrib/redirects/middleware.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/contrib/redirects/middleware.pyi @@ -1,10 +1,10 @@ -from typing import Any +from typing import ClassVar from django.http.request import HttpRequest -from django.http.response import HttpResponse +from django.http.response import HttpResponse, HttpResponseBase, HttpResponseRedirectBase from django.utils.deprecation import MiddlewareMixin class RedirectFallbackMiddleware(MiddlewareMixin): - response_gone_class: Any - response_redirect_class: Any + response_gone_class: ClassVar[type[HttpResponseBase]] + response_redirect_class: ClassVar[type[HttpResponseRedirectBase]] def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/cache/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/cache/__init__.pyi index 7d4de9592011..8cd7d3a9fcd4 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/cache/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/cache/__init__.pyi @@ -22,11 +22,11 @@ caches: CacheHandler cache: BaseCache __all__ = [ + "DEFAULT_CACHE_ALIAS", + "BaseCache", + "CacheKeyWarning", + "InvalidCacheBackendError", + "InvalidCacheKey", "cache", "caches", - "DEFAULT_CACHE_ALIAS", - "InvalidCacheBackendError", - "CacheKeyWarning", - "BaseCache", - "InvalidCacheKey", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/checks/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/checks/__init__.pyi index c3a61b6ea1fe..d4ecedde1ac1 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/checks/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/checks/__init__.pyi @@ -16,19 +16,19 @@ from .registry import run_checks as run_checks from .registry import tag_exists as tag_exists __all__ = [ - "CheckMessage", - "Debug", - "Info", - "Warning", - "Error", - "Critical", + "CRITICAL", "DEBUG", + "ERROR", "INFO", "WARNING", - "ERROR", - "CRITICAL", + "CheckMessage", + "Critical", + "Debug", + "Error", + "Info", + "Tags", + "Warning", "register", "run_checks", "tag_exists", - "Tags", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/files/locks.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/files/locks.pyi index ac29be8605e7..99bb3fc28b38 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/files/locks.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/files/locks.pyi @@ -16,4 +16,4 @@ if sys.platform == "win32": def lock(f: Any, flags: int) -> bool: ... def unlock(f: Any) -> bool: ... -__all__ = ("LOCK_EX", "LOCK_SH", "LOCK_NB", "lock", "unlock") +__all__ = ("LOCK_EX", "LOCK_NB", "LOCK_SH", "lock", "unlock") diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/files/storage/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/files/storage/__init__.pyi index d141d1ca8c5d..4bf3f44d807c 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/files/storage/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/files/storage/__init__.pyi @@ -6,13 +6,13 @@ from .handler import InvalidStorageError, StorageHandler from .memory import InMemoryStorage __all__ = ( + "DefaultStorage", "FileSystemStorage", "InMemoryStorage", - "Storage", - "DefaultStorage", - "default_storage", "InvalidStorageError", + "Storage", "StorageHandler", + "default_storage", "storages", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadedfile.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadedfile.pyi index b04cec76f823..26492e877b21 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadedfile.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadedfile.pyi @@ -6,7 +6,7 @@ from typing_extensions import Self class UploadedFile(File): content_type: str | None charset: str | None - content_type_extra: dict[str, str] | None + content_type_extra: dict[str, bytes] | None size: int | None # type: ignore[assignment] name: str | None def __init__( @@ -16,7 +16,7 @@ class UploadedFile(File): content_type: str | None = None, size: int | None = None, charset: str | None = None, - content_type_extra: dict[str, str] | None = None, + content_type_extra: dict[str, bytes] | None = None, ) -> None: ... class TemporaryUploadedFile(UploadedFile): @@ -26,7 +26,7 @@ class TemporaryUploadedFile(UploadedFile): content_type: str | None, size: int | None, charset: str | None, - content_type_extra: dict[str, str] | None = None, + content_type_extra: dict[str, bytes] | None = None, ) -> None: ... def temporary_file_path(self) -> str: ... @@ -40,7 +40,7 @@ class InMemoryUploadedFile(UploadedFile): content_type: str | None, size: int | None, charset: str | None, - content_type_extra: dict[str, str] | None = None, + content_type_extra: dict[str, bytes] | None = None, ) -> None: ... def open(self, mode: str | None = None) -> Self: ... # type: ignore[override] @@ -50,8 +50,8 @@ class SimpleUploadedFile(InMemoryUploadedFile): def from_dict(cls, file_dict: dict[str, str | bytes]) -> Self: ... __all__ = ( - "UploadedFile", - "TemporaryUploadedFile", "InMemoryUploadedFile", "SimpleUploadedFile", + "TemporaryUploadedFile", + "UploadedFile", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadhandler.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadhandler.pyi index 16eb540b74bc..c1ca5daea9b2 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadhandler.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/files/uploadhandler.pyi @@ -19,7 +19,7 @@ class FileUploadHandler: content_type: str | None content_length: int | None charset: str | None - content_type_extra: dict[str, str] | None + content_type_extra: dict[str, bytes] | None request: HttpRequest | None field_name: str def __init__(self, request: HttpRequest | None = None) -> None: ... @@ -38,7 +38,7 @@ class FileUploadHandler: content_type: str, content_length: int | None, charset: str | None = None, - content_type_extra: dict[str, str] | None = None, + content_type_extra: dict[str, bytes] | None = None, ) -> None: ... def receive_data_chunk(self, raw_data: bytes, start: int) -> bytes | None: ... def file_complete(self, file_size: int) -> UploadedFile | None: ... @@ -54,7 +54,7 @@ class TemporaryFileUploadHandler(FileUploadHandler): content_type: str, content_length: int | None, charset: str | None = ..., - content_type_extra: dict[str, str] | None = ..., + content_type_extra: dict[str, bytes] | None = ..., ) -> None: ... def receive_data_chunk(self, raw_data: bytes, start: int) -> bytes | None: ... def file_complete(self, file_size: int) -> UploadedFile | None: ... @@ -78,7 +78,7 @@ class MemoryFileUploadHandler(FileUploadHandler): content_type: str, content_length: int | None, charset: str | None = ..., - content_type_extra: dict[str, str] | None = ..., + content_type_extra: dict[str, bytes] | None = ..., ) -> None: ... def receive_data_chunk(self, raw_data: bytes, start: int) -> bytes | None: ... def file_complete(self, file_size: int) -> UploadedFile | None: ... @@ -86,12 +86,12 @@ class MemoryFileUploadHandler(FileUploadHandler): def load_handler(path: str, *args: Any, **kwargs: Any) -> FileUploadHandler: ... __all__ = [ - "UploadFileException", - "StopUpload", - "SkipFile", "FileUploadHandler", - "TemporaryFileUploadHandler", "MemoryFileUploadHandler", - "load_handler", + "SkipFile", "StopFutureHandlers", + "StopUpload", + "TemporaryFileUploadHandler", + "UploadFileException", + "load_handler", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/mail/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/mail/__init__.pyi index 93e61c7789d8..8057423d4a84 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/mail/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/mail/__init__.pyi @@ -53,21 +53,21 @@ def mail_managers( outbox: list[EmailMessage] __all__ = [ - "CachedDnsName", - "DNS_NAME", - "EmailMessage", - "EmailMultiAlternatives", - "SafeMIMEText", - "SafeMIMEMultipart", "DEFAULT_ATTACHMENT_MIME_TYPE", - "make_msgid", + "DNS_NAME", "BadHeaderError", - "forbid_multi_line_headers", - "get_connection", - "send_mail", - "send_mass_mail", - "mail_admins", - "mail_managers", + "CachedDnsName", "EmailAlternative", "EmailAttachment", + "EmailMessage", + "EmailMultiAlternatives", + "SafeMIMEMultipart", + "SafeMIMEText", + "forbid_multi_line_headers", + "get_connection", + "mail_admins", + "mail_managers", + "make_msgid", + "send_mail", + "send_mass_mail", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/core/servers/basehttp.pyi b/python/helpers/bundled_stubs/Django/django-stubs/core/servers/basehttp.pyi index 81faaaf657eb..62bf4576ea9d 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/core/servers/basehttp.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/core/servers/basehttp.pyi @@ -46,4 +46,4 @@ def run( server_cls: type[WSGIServer] = ..., ) -> None: ... -__all__ = ("WSGIServer", "WSGIRequestHandler") +__all__ = ("WSGIRequestHandler", "WSGIServer") diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/__init__.pyi index c2f2ff665432..d8f9e3e9ed7e 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/__init__.pyi @@ -23,20 +23,20 @@ def close_old_connections(**kwargs: Any) -> None: ... def reset_queries(**kwargs: Any) -> None: ... __all__ = [ + "DEFAULT_DB_ALIAS", + "DJANGO_VERSION_PICKLE_KEY", + "DataError", + "DatabaseError", + "Error", + "IntegrityError", + "InterfaceError", + "InternalError", + "NotSupportedError", + "OperationalError", + "ProgrammingError", "close_old_connections", "connection", "connections", "reset_queries", "router", - "DatabaseError", - "IntegrityError", - "InternalError", - "ProgrammingError", - "DataError", - "NotSupportedError", - "Error", - "InterfaceError", - "OperationalError", - "DEFAULT_DB_ALIAS", - "DJANGO_VERSION_PICKLE_KEY", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/__init__.pyi index e5dfea1f9e00..8d81e356552f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/__init__.pyi @@ -23,27 +23,27 @@ from .special import RunSQL as RunSQL from .special import SeparateDatabaseAndState as SeparateDatabaseAndState __all__ = [ - "CreateModel", - "DeleteModel", + "AddConstraint", + "AddField", + "AddIndex", + "AlterConstraint", + "AlterField", + "AlterIndexTogether", + "AlterModelManagers", + "AlterModelOptions", "AlterModelTable", "AlterModelTableComment", - "AlterUniqueTogether", - "RenameModel", - "AlterIndexTogether", - "AlterModelOptions", - "AddIndex", - "RemoveIndex", - "RenameIndex", - "AddField", - "RemoveField", - "AlterField", - "RenameField", - "AddConstraint", - "RemoveConstraint", - "AlterConstraint", - "SeparateDatabaseAndState", - "RunSQL", - "RunPython", "AlterOrderWithRespectTo", - "AlterModelManagers", + "AlterUniqueTogether", + "CreateModel", + "DeleteModel", + "RemoveConstraint", + "RemoveField", + "RemoveIndex", + "RenameField", + "RenameIndex", + "RenameModel", + "RunPython", + "RunSQL", + "SeparateDatabaseAndState", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/models.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/models.pyi index b180ee3a3411..79353a42e665 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/models.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/migrations/operations/models.pyi @@ -96,8 +96,8 @@ class AlterIndexTogether(AlterTogetherOptionOperation): class AlterOrderWithRespectTo(ModelOptionOperation): option_name: str - order_with_respect_to: str - def __init__(self, name: str, order_with_respect_to: str) -> None: ... + order_with_respect_to: str | None + def __init__(self, name: str, order_with_respect_to: str | None) -> None: ... class AlterModelOptions(ModelOptionOperation): ALTER_OPTION_KEYS: list[str] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/__init__.pyi index 86ec755eb6d7..af7c1af6fa5f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/__init__.pyi @@ -103,105 +103,105 @@ from .query_utils import FilteredRelation as FilteredRelation from .query_utils import Q as Q __all__ = [ - "Aggregate", - "Avg", - "Count", - "Max", - "Min", - "StdDev", - "Sum", - "Variance", - "BaseConstraint", - "CheckConstraint", - "Deferrable", - "UniqueConstraint", - "Choices", - "IntegerChoices", - "TextChoices", - "AutoField", "BLANK_CHOICE_DASH", - "BigAutoField", - "BigIntegerField", - "BinaryField", - "BooleanField", - "CharField", - "CommaSeparatedIntegerField", - "DateField", - "DateTimeField", - "DecimalField", - "DurationField", - "EmailField", - "Empty", - "Field", - "FilePathField", - "FloatField", - "GenericIPAddressField", - "IPAddressField", - "IntegerField", - "NOT_PROVIDED", - "NullBooleanField", - "PositiveBigIntegerField", - "PositiveIntegerField", - "PositiveSmallIntegerField", - "SlugField", - "SmallAutoField", - "SmallIntegerField", - "TextField", - "TimeField", - "URLField", - "UUIDField", - "Index", - "ObjectDoesNotExist", - "signals", "CASCADE", + "DEFERRED", "DO_NOTHING", + "NOT_PROVIDED", "PROTECT", "RESTRICT", "SET", "SET_DEFAULT", "SET_NULL", - "ProtectedError", - "RestrictedError", + "Aggregate", + "AutoField", + "Avg", + "BaseConstraint", + "BigAutoField", + "BigIntegerField", + "BinaryField", + "BooleanField", "Case", + "CharField", + "CheckConstraint", + "Choices", + "CommaSeparatedIntegerField", "CompositePrimaryKey", + "Count", + "DateField", + "DateTimeField", + "DecimalField", + "Deferrable", + "DurationField", + "EmailField", + "Empty", "Exists", "Expression", "ExpressionList", "ExpressionWrapper", "F", + "Field", + "FileField", + "FilePathField", + "FilteredRelation", + "FloatField", + "ForeignKey", + "ForeignObject", + "ForeignObjectRel", "Func", + "GeneratedField", + "GenericIPAddressField", + "IPAddressField", + "ImageField", + "Index", + "IntegerChoices", + "IntegerField", + "JSONField", + "Lookup", + "Manager", + "ManyToManyField", + "ManyToManyRel", + "ManyToOneRel", + "Max", + "Min", + "Model", + "NullBooleanField", + "ObjectDoesNotExist", + "OneToOneField", + "OneToOneRel", "OrderBy", + "OrderWrt", "OuterRef", + "PositiveBigIntegerField", + "PositiveIntegerField", + "PositiveSmallIntegerField", + "Prefetch", + "ProtectedError", + "Q", + "QuerySet", + "RestrictedError", "RowRange", + "SlugField", + "SmallAutoField", + "SmallIntegerField", + "StdDev", "Subquery", + "Sum", + "TextChoices", + "TextField", + "TimeField", + "Transform", + "URLField", + "UUIDField", + "UniqueConstraint", "Value", "ValueRange", + "Variance", "When", "Window", "WindowFrame", "WindowFrameExclusion", - "FileField", - "ImageField", - "GeneratedField", - "JSONField", - "OrderWrt", - "Lookup", - "Transform", - "Manager", - "Prefetch", - "Q", - "QuerySet", "aprefetch_related_objects", "prefetch_related_objects", - "DEFERRED", - "Model", - "FilteredRelation", - "ForeignKey", - "ForeignObject", - "OneToOneField", - "ManyToManyField", - "ForeignObjectRel", - "ManyToOneRel", - "ManyToManyRel", - "OneToOneRel", + "signals", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/fields/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/fields/__init__.pyi index 3f8bf4bc1e5f..434dcccb9d76 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/fields/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/fields/__init__.pyi @@ -263,7 +263,7 @@ class FloatField(Field[_ST, _GT]): class DecimalField(Field[_ST, _GT]): _pyi_private_set_type: str | float | decimal.Decimal | Combinable _pyi_private_get_type: decimal.Decimal - _pyi_lookup_exact_type: str | decimal.Decimal + _pyi_lookup_exact_type: str | int | decimal.Decimal # attributes max_digits: int decimal_places: int @@ -635,8 +635,9 @@ class BigAutoField(AutoFieldMixin, BigIntegerField[_ST, _GT]): ... # type: igno class SmallAutoField(AutoFieldMixin, SmallIntegerField[_ST, _GT]): ... # type: ignore[misc] __all__ = [ - "AutoField", "BLANK_CHOICE_DASH", + "NOT_PROVIDED", + "AutoField", "BigAutoField", "BigIntegerField", "BinaryField", @@ -655,7 +656,6 @@ __all__ = [ "GenericIPAddressField", "IPAddressField", "IntegerField", - "NOT_PROVIDED", "NullBooleanField", "PositiveBigIntegerField", "PositiveIntegerField", diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/functions/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/functions/__init__.pyi index 890c3e4cfbec..e9d295c25311 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/functions/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/functions/__init__.pyi @@ -91,27 +91,91 @@ from .window import Rank as Rank from .window import RowNumber as RowNumber __all__ = [ + # text + "MD5", + "SHA1", + "SHA224", + "SHA256", + "SHA384", + "SHA512", + "ACos", + "ASin", + "ATan", + "ATan2", + # math + "Abs", # comparison and conversion "Cast", + "Ceil", + "Chr", "Coalesce", "Collate", - "Greatest", - "Least", - "NullIf", + "Concat", + "ConcatPair", + "Cos", + "Cot", + # window + "CumeDist", + "Degrees", + "DenseRank", + "Exp", # datetime "Extract", "ExtractDay", "ExtractHour", + "ExtractIsoWeekDay", + "ExtractIsoYear", "ExtractMinute", "ExtractMonth", "ExtractQuarter", "ExtractSecond", "ExtractWeek", - "ExtractIsoWeekDay", "ExtractWeekDay", - "ExtractIsoYear", "ExtractYear", + "FirstValue", + "Floor", + "Greatest", + # json + "JSONArray", + "JSONObject", + "LPad", + "LTrim", + "Lag", + "LastValue", + "Lead", + "Least", + "Left", + "Length", + "Ln", + "Log", + "Lower", + "Mod", "Now", + "NthValue", + "Ntile", + "NullIf", + "Ord", + "PercentRank", + "Pi", + "Power", + "RPad", + "RTrim", + "Radians", + "Random", + "Rank", + "Repeat", + "Replace", + "Reverse", + "Right", + "Round", + "RowNumber", + "Sign", + "Sin", + "Sqrt", + "StrIndex", + "Substr", + "Tan", + "Trim", "Trunc", "TruncDate", "TruncDay", @@ -123,69 +187,5 @@ __all__ = [ "TruncTime", "TruncWeek", "TruncYear", - # json - "JSONArray", - "JSONObject", - # math - "Abs", - "ACos", - "ASin", - "ATan", - "ATan2", - "Ceil", - "Cos", - "Cot", - "Degrees", - "Exp", - "Floor", - "Ln", - "Log", - "Mod", - "Pi", - "Power", - "Radians", - "Random", - "Round", - "Sign", - "Sin", - "Sqrt", - "Tan", - # text - "MD5", - "SHA1", - "SHA224", - "SHA256", - "SHA384", - "SHA512", - "Chr", - "Concat", - "ConcatPair", - "Left", - "Length", - "Lower", - "LPad", - "LTrim", - "Ord", - "Repeat", - "Replace", - "Reverse", - "Right", - "RPad", - "RTrim", - "StrIndex", - "Substr", - "Trim", "Upper", - # window - "CumeDist", - "DenseRank", - "FirstValue", - "Lag", - "LastValue", - "Lead", - "NthValue", - "Ntile", - "PercentRank", - "Rank", - "RowNumber", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/lookups.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/lookups.pyi index 12be44c5b256..b31147fda5a9 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/lookups.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/lookups.pyi @@ -1,7 +1,6 @@ from collections.abc import Iterable, Sequence from typing import Any, Generic, Literal, TypeVar -from django.core.exceptions import EmptyResultSet from django.db.backends.base.base import BaseDatabaseWrapper from django.db.models.expressions import Combinable, Expression, Func from django.db.models.fields import BooleanField @@ -79,8 +78,8 @@ class LessThan(FieldGetDbPrepValueMixin, BuiltinLookup[_T]): ... class LessThanOrEqual(FieldGetDbPrepValueMixin, BuiltinLookup[_T]): ... class IntegerFieldOverflow: - underflow_exception: type[EmptyResultSet] - overflow_exception: type[EmptyResultSet] + underflow_exception: type[Exception] + overflow_exception: type[Exception] def process_rhs(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper) -> _AsSqlType: ... class IntegerFieldFloatRounding: diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/manager.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/manager.pyi index 95704c6e85bd..46e4012c00fa 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/manager.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/manager.pyi @@ -1,10 +1,10 @@ import datetime from collections.abc import AsyncIterator, Collection, Iterable, Iterator, Mapping, Sequence -from typing import Any, Generic, NoReturn, TypeVar, overload +from typing import Any, Generic, Literal, NoReturn, TypeVar, overload from django.db.models.base import Model from django.db.models.expressions import Combinable, OrderBy -from django.db.models.query import QuerySet, RawQuerySet +from django.db.models.query import Prefetch, QuerySet, RawQuerySet, _LookupT, _PrefetchedQuerySetT, _ToAttrT from typing_extensions import Self _T = TypeVar("_T", bound=Model, covariant=True) @@ -93,8 +93,8 @@ class Manager(BaseManager[_T]): async def aupdate(self, **kwargs: Any) -> int: ... def exists(self) -> bool: ... async def aexists(self) -> bool: ... - def explain(self, *, format: Any | None = ..., **options: Any) -> str: ... - async def aexplain(self, *, format: Any | None = ..., **options: Any) -> str: ... + def explain(self, *, format: str | None = ..., **options: Any) -> str: ... + async def aexplain(self, *, format: str | None = ..., **options: Any) -> str: ... def contains(self, obj: Model) -> bool: ... async def acontains(self, obj: Model) -> bool: ... def raw( @@ -103,14 +103,23 @@ class Manager(BaseManager[_T]): params: Any = ..., translations: dict[str, str] | None = ..., using: str | None = ..., - ) -> RawQuerySet: ... + ) -> RawQuerySet[_T]: ... # The type of values may be overridden to be more specific in the mypy plugin, depending on the fields param def values(self, *fields: str | Combinable, **expressions: Any) -> QuerySet[_T, dict[str, Any]]: ... # The type of values_list may be overridden to be more specific in the mypy plugin, depending on the fields param def values_list(self, *fields: str | Combinable, flat: bool = ..., named: bool = ...) -> QuerySet[_T, Any]: ... - def dates(self, field_name: str, kind: str, order: str = ...) -> QuerySet[_T, datetime.date]: ... + def dates( + self, + field_name: str, + kind: Literal["year", "month", "week", "day"], + order: Literal["ASC", "DESC"] = "ASC", + ) -> QuerySet[_T, datetime.date]: ... def datetimes( - self, field_name: str, kind: str, order: str = ..., tzinfo: datetime.tzinfo | None = ... + self, + field_name: str, + kind: Literal["year", "month", "week", "day", "hour", "minute", "second"], + order: Literal["ASC", "DESC"] = "ASC", + tzinfo: datetime.tzinfo | None = None, ) -> QuerySet[_T, datetime.datetime]: ... def none(self) -> QuerySet[_T]: ... def filter(self, *args: Any, **kwargs: Any) -> QuerySet[_T]: ... @@ -118,18 +127,24 @@ class Manager(BaseManager[_T]): def complex_filter(self, filter_obj: Any) -> QuerySet[_T]: ... def count(self) -> int: ... async def acount(self) -> int: ... - def union(self, *other_qs: Any, all: bool = ...) -> QuerySet[_T]: ... - def intersection(self, *other_qs: Any) -> QuerySet[_T]: ... - def difference(self, *other_qs: Any) -> QuerySet[_T]: ... + def union(self, *other_qs: QuerySet[Model, Any], all: bool = ...) -> QuerySet[_T]: ... + def intersection(self, *other_qs: QuerySet[Model, Any]) -> QuerySet[_T]: ... + def difference(self, *other_qs: QuerySet[Model, Any]) -> QuerySet[_T]: ... def select_for_update( self, nowait: bool = ..., skip_locked: bool = ..., of: Sequence[str] = ..., no_key: bool = ... ) -> QuerySet[_T]: ... - def select_related(self, *fields: Any) -> QuerySet[_T]: ... - def prefetch_related(self, *lookups: Any) -> QuerySet[_T]: ... + @overload + def select_related(self, clear: None, /) -> QuerySet[_T]: ... + @overload + def select_related(self, *fields: str) -> QuerySet[_T]: ... + @overload + def prefetch_related(self, clear: None, /) -> QuerySet[_T]: ... + @overload + def prefetch_related(self, *lookups: str | Prefetch[_LookupT, _PrefetchedQuerySetT, _ToAttrT]) -> QuerySet[_T]: ... def annotate(self, *args: Any, **kwargs: Any) -> QuerySet[_T]: ... def alias(self, *args: Any, **kwargs: Any) -> QuerySet[_T]: ... - def order_by(self, *field_names: Any) -> QuerySet[_T]: ... - def distinct(self, *field_names: Any) -> QuerySet[_T]: ... + def order_by(self, *field_names: str | Combinable) -> QuerySet[_T]: ... + def distinct(self, *field_names: str) -> QuerySet[_T]: ... # extra() return type won't be supported any time soon def extra( self, @@ -141,8 +156,11 @@ class Manager(BaseManager[_T]): select_params: Sequence[Any] | None = ..., ) -> QuerySet[Any]: ... def reverse(self) -> QuerySet[_T]: ... - def defer(self, *fields: Any) -> QuerySet[_T]: ... - def only(self, *fields: Any) -> QuerySet[_T]: ... + @overload + def defer(self, clear: None, /) -> QuerySet[_T]: ... + @overload + def defer(self, *fields: str) -> QuerySet[_T]: ... + def only(self, *fields: str) -> QuerySet[_T]: ... def using(self, alias: str | None) -> QuerySet[_T]: ... class ManagerDescriptor: diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/options.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/options.pyi index 7e7c63186fe7..6e3feba42fed 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/options.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/options.pyi @@ -1,5 +1,5 @@ from collections.abc import Iterable, Sequence -from typing import Any, Generic, Literal, TypeAlias, TypeVar, overload +from typing import Any, Generic, TypeAlias, TypeVar, overload from django.apps.config import AppConfig from django.apps.registry import Apps @@ -64,7 +64,7 @@ class Options(Generic[_M]): order_with_respect_to: str | None db_tablespace: str required_db_features: _ListOrTuple[str] - required_db_vendor: Literal["sqlite", "postgresql", "mysql", "oracle"] | None + required_db_vendor: str | None meta: type | None pk: Field auto_field: AutoField | None diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/query.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/query.pyi index f6dbebf6091b..3d9a8b7ecb45 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/query.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/query.pyi @@ -1,6 +1,6 @@ import datetime from collections.abc import AsyncIterator, Collection, Iterable, Iterator, Mapping, Sequence, Sized -from typing import Any, Generic, NamedTuple, TypeAlias, overload +from typing import Any, Generic, Literal, NamedTuple, TypeAlias, overload from django.db.backends.utils import _ExecuteQuery from django.db.models import Manager @@ -15,8 +15,20 @@ _Model = TypeVar("_Model", bound=Model, covariant=True) _Row = TypeVar("_Row", covariant=True, default=_Model) # ONLY use together with _Model _TupleT = TypeVar("_TupleT", bound=tuple[Any, ...], covariant=True) +# The type of the lookup passed to Prefetch(...) +# This will be specialized to a `LiteralString` in the plugin for further processing and validation +_LookupT = TypeVar("_LookupT", bound=str, covariant=True) +# The type of the queryset passed to Prefetch(...) +_PrefetchedQuerySetT = TypeVar("_PrefetchedQuerySetT", bound=QuerySet[Model], covariant=True, default=QuerySet[Model]) +# The attribute name to store the prefetched list[_PrefetchedQuerySetT] +# This will be specialized to a `LiteralString` in the plugin for further processing and validation +_ToAttrT = TypeVar("_ToAttrT", bound=str, covariant=True, default=str) + +_OrderByFieldName: TypeAlias = str | Combinable + MAX_GET_RESULTS: int REPR_OUTPUT_SIZE: int +PROHIBITED_FILTER_KWARGS: frozenset[str] class BaseIterable(Generic[_T]): queryset: QuerySet[Model] @@ -25,7 +37,7 @@ class BaseIterable(Generic[_T]): def __init__(self, queryset: QuerySet[Model], chunked_fetch: bool = False, chunk_size: int = 100) -> None: ... def __aiter__(self) -> AsyncIterator[_T]: ... -class ModelIterable(Generic[_Model], BaseIterable[_Model]): +class ModelIterable(BaseIterable[_Model], Generic[_Model]): def __iter__(self) -> Iterator[_Model]: ... class RawModelIterable(BaseIterable[dict[str, Any]]): @@ -43,7 +55,7 @@ class NamedValuesListIterable(ValuesListIterable[NamedTuple]): class FlatValuesListIterable(BaseIterable[_T]): def __iter__(self) -> Iterator[_T]: ... -class QuerySet(Generic[_Model, _Row], Iterable[_Row], Sized): +class QuerySet(Iterable[_Row], Sized, Generic[_Model, _Row]): model: type[_Model] query: Query _iterable_class: type[BaseIterable] @@ -127,8 +139,8 @@ class QuerySet(Generic[_Model, _Row], Iterable[_Row], Sized): async def aupdate(self, **kwargs: Any) -> int: ... def exists(self) -> bool: ... async def aexists(self) -> bool: ... - def explain(self, *, format: Any | None = None, **options: Any) -> str: ... - async def aexplain(self, *, format: Any | None = None, **options: Any) -> str: ... + def explain(self, *, format: str | None = None, **options: Any) -> str: ... + async def aexplain(self, *, format: str | None = None, **options: Any) -> str: ... def contains(self, obj: Model) -> bool: ... async def acontains(self, obj: Model) -> bool: ... def raw( @@ -137,16 +149,25 @@ class QuerySet(Generic[_Model, _Row], Iterable[_Row], Sized): params: Any = (), translations: dict[str, str] | None = None, using: str | None = None, - ) -> RawQuerySet: ... + ) -> RawQuerySet[_Model]: ... # The type of values may be overridden to be more specific in the mypy plugin, depending on the fields param def values(self, *fields: str | Combinable, **expressions: Any) -> QuerySet[_Model, dict[str, Any]]: ... # The type of values_list may be overridden to be more specific in the mypy plugin, depending on the fields param def values_list( self, *fields: str | Combinable, flat: bool = False, named: bool = False ) -> QuerySet[_Model, Any]: ... - def dates(self, field_name: str, kind: str, order: str = "ASC") -> QuerySet[_Model, datetime.date]: ... + def dates( + self, + field_name: str, + kind: Literal["year", "month", "week", "day"], + order: Literal["ASC", "DESC"] = "ASC", + ) -> QuerySet[_Model, datetime.date]: ... def datetimes( - self, field_name: str, kind: str, order: str = "ASC", tzinfo: datetime.tzinfo | None = None + self, + field_name: str, + kind: Literal["year", "month", "week", "day", "hour", "minute", "second"], + order: Literal["ASC", "DESC"] = "ASC", + tzinfo: datetime.tzinfo | None = None, ) -> QuerySet[_Model, datetime.datetime]: ... def none(self) -> Self: ... def all(self) -> Self: ... @@ -155,18 +176,24 @@ class QuerySet(Generic[_Model, _Row], Iterable[_Row], Sized): def complex_filter(self, filter_obj: Any) -> Self: ... def count(self) -> int: ... async def acount(self) -> int: ... - def union(self, *other_qs: Any, all: bool = False) -> Self: ... - def intersection(self, *other_qs: Any) -> Self: ... - def difference(self, *other_qs: Any) -> Self: ... + def union(self, *other_qs: QuerySet[Model, Any], all: bool = False) -> Self: ... + def intersection(self, *other_qs: QuerySet[Model, Any]) -> Self: ... + def difference(self, *other_qs: QuerySet[Model, Any]) -> Self: ... def select_for_update( self, nowait: bool = False, skip_locked: bool = False, of: Sequence[str] = (), no_key: bool = False ) -> Self: ... - def select_related(self, *fields: Any) -> Self: ... - def prefetch_related(self, *lookups: Any) -> Self: ... + @overload + def select_related(self, clear: None, /) -> Self: ... + @overload + def select_related(self, *fields: str) -> Self: ... + @overload + def prefetch_related(self, clear: None, /) -> Self: ... + @overload + def prefetch_related(self, *lookups: str | Prefetch[_LookupT, _PrefetchedQuerySetT, _ToAttrT]) -> Self: ... def annotate(self, *args: Any, **kwargs: Any) -> Self: ... def alias(self, *args: Any, **kwargs: Any) -> Self: ... - def order_by(self, *field_names: Any) -> Self: ... - def distinct(self, *field_names: Any) -> Self: ... + def order_by(self, *field_names: _OrderByFieldName) -> Self: ... + def distinct(self, *field_names: str) -> Self: ... # extra() return type won't be supported any time soon def extra( self, @@ -174,12 +201,15 @@ class QuerySet(Generic[_Model, _Row], Iterable[_Row], Sized): where: Sequence[str] | None = None, params: Sequence[Any] | None = None, tables: Sequence[str] | None = None, - order_by: Sequence[str] | None = None, + order_by: Sequence[_OrderByFieldName] | None = None, select_params: Sequence[Any] | None = None, ) -> QuerySet[Any, Any]: ... def reverse(self) -> Self: ... - def defer(self, *fields: Any) -> Self: ... - def only(self, *fields: Any) -> Self: ... + @overload + def defer(self, clear: None, /) -> Self: ... + @overload + def defer(self, *fields: str) -> Self: ... + def only(self, *fields: str) -> Self: ... def using(self, alias: str | None) -> Self: ... @property def ordered(self) -> bool: ... @@ -219,7 +249,7 @@ class RawQuerySet(Iterable[_Model], Sized): @overload def __getitem__(self, k: str) -> Any: ... @overload - def __getitem__(self, k: slice) -> RawQuerySet[_Model]: ... + def __getitem__(self, k: slice) -> Self: ... @cached_property def columns(self) -> list[str]: ... @property @@ -227,19 +257,24 @@ class RawQuerySet(Iterable[_Model], Sized): def iterator(self) -> Iterator[_Model]: ... @cached_property def model_fields(self) -> dict[str, str]: ... - def prefetch_related(self, *lookups: Any) -> RawQuerySet[_Model]: ... + @overload + def prefetch_related(self, clear: None, /) -> Self: ... + @overload + def prefetch_related(self, *lookups: str | Prefetch[_LookupT, _PrefetchedQuerySetT, _ToAttrT]) -> Self: ... def resolve_model_init_order(self) -> tuple[list[str], list[int], list[tuple[str, int]]]: ... - def using(self, alias: str | None) -> RawQuerySet[_Model]: ... + def using(self, alias: str | None) -> Self: ... # Deprecated alias of QuerySet, for compatibility only. _QuerySet: TypeAlias = QuerySet # noqa: PYI047 -class Prefetch: +class Prefetch(Generic[_LookupT, _PrefetchedQuerySetT, _ToAttrT]): prefetch_through: str prefetch_to: str - queryset: QuerySet | None - to_attr: str | None - def __init__(self, lookup: str, queryset: QuerySet | None = None, to_attr: str | None = None) -> None: ... + queryset: _PrefetchedQuerySetT | None + to_attr: _ToAttrT | None + def __init__( + self, lookup: _LookupT, queryset: _PrefetchedQuerySetT | None = None, to_attr: _ToAttrT | None = None + ) -> None: ... def __getstate__(self) -> dict[str, Any]: ... def add_prefix(self, prefix: str) -> None: ... def get_current_prefetch_to(self, level: int) -> str: ... @@ -247,8 +282,8 @@ class Prefetch: @deprecated( "get_current_queryset() is deprecated and will be removed in Django 6.0. Use get_current_querysets() instead." ) - def get_current_queryset(self, level: int) -> QuerySet | None: ... - def get_current_querysets(self, level: int) -> list[QuerySet] | None: ... + def get_current_queryset(self, level: int) -> _PrefetchedQuerySetT | None: ... + def get_current_querysets(self, level: int) -> list[_PrefetchedQuerySetT] | None: ... def prefetch_related_objects(model_instances: Iterable[_Model], *related_lookups: str | Prefetch) -> None: ... async def aprefetch_related_objects(model_instances: Iterable[_Model], *related_lookups: str | Prefetch) -> None: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/query_utils.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/query_utils.pyi index eaa5a44fbbe0..3be70efe3b01 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/query_utils.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/query_utils.pyi @@ -27,9 +27,11 @@ class PathInfo(NamedTuple): def subclasses(cls: type[RegisterLookupMixin]) -> Iterator[type[RegisterLookupMixin]]: ... class Q(tree.Node): - AND: str - OR: str + AND: Literal["AND"] + OR: Literal["OR"] + XOR: Literal["XOR"] conditional: bool + connectors: tuple[None, Literal["AND"], Literal["OR"], Literal["XOR"]] def __init__(self, *args: Any, **kwargs: Any) -> None: ... # Fake signature, the real is # def __init__(self, *args: Any, _connector: Any | None = ..., _negated: bool = ..., **kwargs: Any) -> None: ... @@ -50,6 +52,7 @@ class Q(tree.Node): def deconstruct(self) -> tuple[str, Sequence[Any], dict[str, Any]]: ... @cached_property def referenced_base_fields(self) -> set[str]: ... + def replace_expressions(self, replacements: dict[tree.Node, tree.Node]) -> tree.Node: ... class DeferredAttribute: field: Field diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/__init__.pyi index b8c93b825eb3..796a8991d573 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/__init__.pyi @@ -8,4 +8,4 @@ from .where import AND as AND from .where import OR as OR from .where import XOR as XOR -__all__ = ["Query", "AND", "OR", "XOR"] +__all__ = ["AND", "OR", "XOR", "Query"] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/query.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/query.pyi index 93e951c44c28..c0d33809257e 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/query.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/query.pyi @@ -4,9 +4,10 @@ from typing import Any, Literal, NamedTuple from django.db.backends.utils import CursorWrapper from django.db.models import Field, FilteredRelation, Model, Q -from django.db.models.expressions import BaseExpression, Combinable, Expression, OrderBy +from django.db.models.expressions import BaseExpression, Combinable, Expression from django.db.models.lookups import Lookup, Transform from django.db.models.options import Options +from django.db.models.query import _OrderByFieldName from django.db.models.query_utils import PathInfo from django.db.models.sql.datastructures import BaseTable, Join from django.db.models.sql.where import WhereNode @@ -58,7 +59,7 @@ class Query(BaseExpression): filter_is_sticky: bool subquery: bool group_by: None | Sequence[Combinable] | Sequence[str] | Literal[True] - order_by: Sequence[Any] + order_by: Sequence[_OrderByFieldName] distinct: bool distinct_fields: tuple[str, ...] select: Sequence[BaseExpression] @@ -78,7 +79,7 @@ class Query(BaseExpression): combined_queries: tuple extra_select_mask: set[str] | None extra_tables: tuple - extra_order_by: Sequence[Any] + extra_order_by: Sequence[_OrderByFieldName] deferred_loading: tuple[set[str] | frozenset[str], bool] explain_query: bool explain_format: str | None @@ -188,9 +189,9 @@ class Query(BaseExpression): def clear_select_clause(self) -> None: ... def clear_select_fields(self) -> None: ... def set_select(self, cols: list[Expression]) -> None: ... - def add_distinct_fields(self, *field_names: Any) -> None: ... + def add_distinct_fields(self, *field_names: str) -> None: ... def add_fields(self, field_names: Iterable[str], allow_m2m: bool = True) -> None: ... - def add_ordering(self, *ordering: str | OrderBy) -> None: ... + def add_ordering(self, *ordering: _OrderByFieldName) -> None: ... def clear_where(self) -> None: ... def clear_ordering(self, force: bool = False, clear_default: bool = True) -> None: ... def set_group_by(self, allow_aliases: bool = True) -> None: ... @@ -202,7 +203,7 @@ class Query(BaseExpression): where: Sequence[str] | None, params: Sequence[str] | None, tables: Sequence[str] | None, - order_by: Sequence[str] | None, + order_by: Sequence[_OrderByFieldName] | None, ) -> None: ... def clear_deferred_loading(self) -> None: ... def add_deferred_loading(self, field_names: Iterable[str]) -> None: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/subqueries.pyi b/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/subqueries.pyi index b7865ad8048e..289b9754c4c5 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/subqueries.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/db/models/sql/subqueries.pyi @@ -41,4 +41,4 @@ class AggregateQuery(Query): where: WhereNode where_class: type[WhereNode] -__all__ = ["DeleteQuery", "UpdateQuery", "InsertQuery", "AggregateQuery"] +__all__ = ["AggregateQuery", "DeleteQuery", "InsertQuery", "UpdateQuery"] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/forms/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/forms/__init__.pyi index 3de001e05df7..fd7c1d1dd245 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/forms/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/forms/__init__.pyi @@ -45,28 +45,4 @@ from .models import inlineformset_factory as inlineformset_factory from .models import model_to_dict as model_to_dict from .models import modelform_factory as modelform_factory from .models import modelformset_factory as modelformset_factory -from .widgets import CheckboxInput as CheckboxInput -from .widgets import CheckboxSelectMultiple as CheckboxSelectMultiple -from .widgets import ClearableFileInput as ClearableFileInput -from .widgets import DateInput as DateInput -from .widgets import DateTimeInput as DateTimeInput -from .widgets import EmailInput as EmailInput -from .widgets import FileInput as FileInput -from .widgets import HiddenInput as HiddenInput -from .widgets import Media as Media -from .widgets import MultipleHiddenInput as MultipleHiddenInput -from .widgets import MultiWidget as MultiWidget -from .widgets import NullBooleanSelect as NullBooleanSelect -from .widgets import NumberInput as NumberInput -from .widgets import PasswordInput as PasswordInput -from .widgets import RadioSelect as RadioSelect -from .widgets import Select as Select -from .widgets import SelectDateWidget as SelectDateWidget -from .widgets import SelectMultiple as SelectMultiple -from .widgets import SplitDateTimeWidget as SplitDateTimeWidget -from .widgets import SplitHiddenDateTimeWidget as SplitHiddenDateTimeWidget -from .widgets import Textarea as Textarea -from .widgets import TextInput as TextInput -from .widgets import TimeInput as TimeInput -from .widgets import URLInput as URLInput -from .widgets import Widget as Widget +from .widgets import * diff --git a/python/helpers/bundled_stubs/Django/django-stubs/forms/fields.pyi b/python/helpers/bundled_stubs/Django/django-stubs/forms/fields.pyi index c9d86d018da1..07c4a354620f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/forms/fields.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/forms/fields.pyi @@ -559,32 +559,32 @@ class JSONField(CharField): def has_changed(self, initial: Any | None, data: Any | None) -> bool: ... __all__ = ( - "Field", - "CharField", - "IntegerField", - "DateField", - "TimeField", - "DateTimeField", - "DurationField", - "RegexField", - "EmailField", - "FileField", - "ImageField", - "URLField", "BooleanField", - "NullBooleanField", + "CharField", "ChoiceField", - "MultipleChoiceField", "ComboField", - "MultiValueField", - "FloatField", + "DateField", + "DateTimeField", "DecimalField", - "SplitDateTimeField", - "GenericIPAddressField", + "DurationField", + "EmailField", + "Field", + "FileField", "FilePathField", + "FloatField", + "GenericIPAddressField", + "ImageField", + "IntegerField", "JSONField", + "MultiValueField", + "MultipleChoiceField", + "NullBooleanField", + "RegexField", "SlugField", + "SplitDateTimeField", + "TimeField", "TypedChoiceField", "TypedMultipleChoiceField", + "URLField", "UUIDField", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/forms/forms.pyi b/python/helpers/bundled_stubs/Django/django-stubs/forms/forms.pyi index e4af63a59c13..4e86ad21f2f8 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/forms/forms.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/forms/forms.pyi @@ -1,5 +1,5 @@ -from collections.abc import Iterable, Iterator, MutableMapping -from typing import Any, ClassVar +from collections.abc import Iterable, Iterator, Mapping, MutableMapping, Sequence +from typing import Any, ClassVar, overload from django.core.exceptions import ValidationError from django.forms.boundfield import BoundField @@ -58,7 +58,16 @@ class BaseForm(RenderableFormMixin): @property def template_name(self) -> str: ... def non_field_errors(self) -> ErrorList: ... - def add_error(self, field: str | None, error: ValidationError | _StrOrPromise) -> None: ... + @overload + def add_error( + self, + field: None, + error: Mapping[str, ValidationError | _StrOrPromise | Sequence[ValidationError | _StrOrPromise]], + ) -> None: ... + @overload + def add_error( + self, field: str | None, error: ValidationError | _StrOrPromise | Sequence[ValidationError | _StrOrPromise] + ) -> None: ... def has_error(self, field: str | None, code: str | None = None) -> bool: ... def full_clean(self) -> None: ... def clean(self) -> dict[str, Any] | None: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/forms/formsets.pyi b/python/helpers/bundled_stubs/Django/django-stubs/forms/formsets.pyi index d7aa524a4302..fbf221118ed3 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/forms/formsets.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/forms/formsets.pyi @@ -25,7 +25,7 @@ class ManagementForm(Form): def __init__(self, *args: Any, **kwargs: Any) -> None: ... def clean(self) -> dict[str, int | None]: ... -class BaseFormSet(Generic[_F], Sized, RenderableFormMixin): +class BaseFormSet(Sized, RenderableFormMixin, Generic[_F]): form: type[_F] extra: int can_order: bool @@ -125,4 +125,4 @@ def formset_factory( ) -> type[BaseFormSet[_F]]: ... def all_valid(formsets: Sequence[BaseFormSet[_F]]) -> bool: ... -__all__ = ("BaseFormSet", "formset_factory", "all_valid") +__all__ = ("BaseFormSet", "all_valid", "formset_factory") diff --git a/python/helpers/bundled_stubs/Django/django-stubs/forms/models.pyi b/python/helpers/bundled_stubs/Django/django-stubs/forms/models.pyi index 1d243f60eaf1..dd80293ddced 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/forms/models.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/forms/models.pyi @@ -67,7 +67,7 @@ class ModelFormOptions(Generic[_M]): class ModelFormMetaclass(DeclarativeFieldsMetaclass): ... -class BaseModelForm(Generic[_M], BaseForm): +class BaseModelForm(BaseForm, Generic[_M]): instance: _M _meta: ModelFormOptions[_M] def __init__( @@ -108,7 +108,7 @@ def modelform_factory( _ModelFormT = TypeVar("_ModelFormT", bound=ModelForm) -class BaseModelFormSet(Generic[_M, _ModelFormT], BaseFormSet[_ModelFormT]): +class BaseModelFormSet(BaseFormSet[_ModelFormT], Generic[_M, _ModelFormT]): model: type[_M] edit_only: bool unique_fields: Collection[str] @@ -171,7 +171,7 @@ def modelformset_factory( edit_only: bool = False, ) -> type[BaseModelFormSet[_M, _ModelFormT]]: ... -class BaseInlineFormSet(Generic[_M, _ParentM, _ModelFormT], BaseModelFormSet[_M, _ModelFormT]): +class BaseInlineFormSet(BaseModelFormSet[_M, _ModelFormT], Generic[_M, _ParentM, _ModelFormT]): instance: _ParentM save_as_new: bool unique_fields: Collection[str] @@ -316,16 +316,16 @@ def _get_foreign_key( ) -> ForeignKey: ... __all__ = ( - "ModelForm", - "BaseModelForm", - "model_to_dict", - "fields_for_model", - "ModelChoiceField", - "ModelMultipleChoiceField", "ALL_FIELDS", - "BaseModelFormSet", - "modelformset_factory", "BaseInlineFormSet", + "BaseModelForm", + "BaseModelFormSet", + "ModelChoiceField", + "ModelForm", + "ModelMultipleChoiceField", + "fields_for_model", "inlineformset_factory", + "model_to_dict", "modelform_factory", + "modelformset_factory", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/forms/widgets.pyi b/python/helpers/bundled_stubs/Django/django-stubs/forms/widgets.pyi index 0aec27db8bff..9a3b9c1b5ae5 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/forms/widgets.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/forms/widgets.pyi @@ -320,34 +320,34 @@ class SelectDateWidget(Widget): def value_omitted_from_data(self, data: _DataT, files: _FilesT, name: str) -> bool: ... __all__ = ( - "Script", - "Media", - "MediaDefiningClass", - "Widget", - "TextInput", - "NumberInput", - "EmailInput", - "URLInput", - "ColorInput", - "SearchInput", - "TelInput", - "PasswordInput", - "HiddenInput", - "MultipleHiddenInput", - "FileInput", + "CheckboxInput", + "CheckboxSelectMultiple", "ClearableFileInput", - "Textarea", + "ColorInput", "DateInput", "DateTimeInput", - "TimeInput", - "CheckboxInput", - "Select", - "NullBooleanSelect", - "SelectMultiple", - "RadioSelect", - "CheckboxSelectMultiple", + "EmailInput", + "FileInput", + "HiddenInput", + "Media", + "MediaDefiningClass", "MultiWidget", + "MultipleHiddenInput", + "NullBooleanSelect", + "NumberInput", + "PasswordInput", + "RadioSelect", + "Script", + "SearchInput", + "Select", + "SelectDateWidget", + "SelectMultiple", "SplitDateTimeWidget", "SplitHiddenDateTimeWidget", - "SelectDateWidget", + "TelInput", + "TextInput", + "Textarea", + "TimeInput", + "URLInput", + "Widget", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/http/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/http/__init__.pyi index 0707caf95041..0a37ce1c6023 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/http/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/http/__init__.pyi @@ -23,27 +23,27 @@ from .response import JsonResponse as JsonResponse from .response import StreamingHttpResponse as StreamingHttpResponse __all__ = [ - "SimpleCookie", - "parse_cookie", + "BadHeaderError", + "FileResponse", + "Http404", "HttpHeaders", "HttpRequest", + "HttpResponse", + "HttpResponseBadRequest", + "HttpResponseBase", + "HttpResponseForbidden", + "HttpResponseGone", + "HttpResponseNotAllowed", + "HttpResponseNotFound", + "HttpResponseNotModified", + "HttpResponsePermanentRedirect", + "HttpResponseRedirect", + "HttpResponseServerError", + "JsonResponse", "QueryDict", "RawPostDataException", - "UnreadablePostError", - "HttpResponse", - "HttpResponseBase", + "SimpleCookie", "StreamingHttpResponse", - "HttpResponseRedirect", - "HttpResponsePermanentRedirect", - "HttpResponseNotModified", - "HttpResponseBadRequest", - "HttpResponseForbidden", - "HttpResponseNotFound", - "HttpResponseNotAllowed", - "HttpResponseGone", - "HttpResponseServerError", - "Http404", - "BadHeaderError", - "JsonResponse", - "FileResponse", + "UnreadablePostError", + "parse_cookie", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/http/multipartparser.pyi b/python/helpers/bundled_stubs/Django/django-stubs/http/multipartparser.pyi index 2e107f9ffdc2..5cc81c2cf9d1 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/http/multipartparser.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/http/multipartparser.pyi @@ -59,4 +59,4 @@ class Parser: def __init__(self, stream: LazyStream, boundary: bytes) -> None: ... def __iter__(self) -> Iterator[tuple[str, dict[str, tuple[str, dict[str, bytes | str]]], LazyStream]]: ... -__all__ = ("MultiPartParser", "MultiPartParserError", "InputStreamExhausted") +__all__ = ("InputStreamExhausted", "MultiPartParser", "MultiPartParserError") diff --git a/python/helpers/bundled_stubs/Django/django-stubs/http/response.pyi b/python/helpers/bundled_stubs/Django/django-stubs/http/response.pyi index 96db5266a96a..ba044930140f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/http/response.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/http/response.pyi @@ -6,7 +6,7 @@ from json import JSONEncoder from typing import Any, Literal, NoReturn, TypeVar, overload, type_check_only from django.utils.datastructures import CaseInsensitiveMapping, _PropertyDescriptor -from django.utils.functional import cached_property +from django.utils.functional import _StrOrPromise, cached_property class BadHeaderError(ValueError): ... @@ -132,7 +132,9 @@ class FileResponse(StreamingHttpResponse): class HttpResponseRedirectBase(HttpResponse): allowed_schemes: list[str] - def __init__(self, redirect_to: str, preserve_request: bool = False, *args: Any, **kwargs: Any) -> None: ... + def __init__( + self, redirect_to: _StrOrPromise, preserve_request: bool = False, *args: Any, **kwargs: Any + ) -> None: ... @property def url(self) -> str: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/middleware/common.pyi b/python/helpers/bundled_stubs/Django/django-stubs/middleware/common.pyi index 3fb1651f5592..39ace2008a1a 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/middleware/common.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/middleware/common.pyi @@ -1,11 +1,11 @@ -from typing import Any +from typing import ClassVar from django.http.request import HttpRequest -from django.http.response import HttpResponseBase, HttpResponsePermanentRedirect +from django.http.response import HttpResponseBase, HttpResponsePermanentRedirect, HttpResponseRedirectBase from django.utils.deprecation import MiddlewareMixin class CommonMiddleware(MiddlewareMixin): - response_redirect_class: Any + response_redirect_class: ClassVar[type[HttpResponseRedirectBase]] def process_request(self, request: HttpRequest) -> HttpResponsePermanentRedirect | None: ... def should_redirect_with_slash(self, request: HttpRequest) -> bool: ... def get_full_path_with_slash(self, request: HttpRequest) -> str: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/middleware/locale.pyi b/python/helpers/bundled_stubs/Django/django-stubs/middleware/locale.pyi index b772011f79da..4c190e02989f 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/middleware/locale.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/middleware/locale.pyi @@ -1,10 +1,10 @@ -from typing import Any +from typing import ClassVar from django.http.request import HttpRequest -from django.http.response import HttpResponseBase +from django.http.response import HttpResponseBase, HttpResponseRedirectBase from django.utils.deprecation import MiddlewareMixin class LocaleMiddleware(MiddlewareMixin): - response_redirect_class: Any + response_redirect_class: ClassVar[type[HttpResponseRedirectBase]] def process_request(self, request: HttpRequest) -> None: ... def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/shortcuts.pyi b/python/helpers/bundled_stubs/Django/django-stubs/shortcuts.pyi index 659990e74c85..fb8587855c58 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/shortcuts.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/shortcuts.pyi @@ -5,6 +5,7 @@ from django.db.models import Manager, QuerySet from django.db.models.base import Model from django.http import HttpRequest from django.http.response import HttpResponse, HttpResponsePermanentRedirect, HttpResponseRedirect +from django.utils.functional import _StrOrPromise def render( request: HttpRequest | None, @@ -45,4 +46,4 @@ def get_object_or_404(klass: type[_T] | Manager[_T] | QuerySet[_T], *args: Any, async def aget_object_or_404(klass: type[_T] | Manager[_T] | QuerySet[_T], *args: Any, **kwargs: Any) -> _T: ... def get_list_or_404(klass: type[_T] | Manager[_T] | QuerySet[_T], *args: Any, **kwargs: Any) -> list[_T]: ... async def aget_list_or_404(klass: type[_T] | Manager[_T] | QuerySet[_T], *args: Any, **kwargs: Any) -> list[_T]: ... -def resolve_url(to: Callable | Model | str, *args: Any, **kwargs: Any) -> str: ... +def resolve_url(to: Callable | Model | _StrOrPromise, *args: Any, **kwargs: Any) -> str: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/template/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/template/__init__.pyi index 33387bbaed9b..0d192cdb211c 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/template/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/template/__init__.pyi @@ -18,4 +18,4 @@ from .utils import EngineHandler as EngineHandler engines: EngineHandler -__all__ = ("Engine", "engines", "Template", "Context", "RequestContext") +__all__ = ("Context", "Engine", "RequestContext", "Template", "engines") diff --git a/python/helpers/bundled_stubs/Django/django-stubs/test/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/test/__init__.pyi index 1a4fa297fe7c..0f2404255e91 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/test/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/test/__init__.pyi @@ -19,17 +19,17 @@ __all__ = [ "AsyncClient", "AsyncRequestFactory", "Client", + "LiveServerTestCase", "RequestFactory", + "SimpleTestCase", "TestCase", "TransactionTestCase", - "SimpleTestCase", - "LiveServerTestCase", - "skipIfDBFeature", - "skipUnlessAnyDBFeature", - "skipUnlessDBFeature", "ignore_warnings", "modify_settings", "override_settings", "override_system_checks", + "skipIfDBFeature", + "skipUnlessAnyDBFeature", + "skipUnlessDBFeature", "tag", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/test/client.pyi b/python/helpers/bundled_stubs/Django/django-stubs/test/client.pyi index 7325d0dc6867..0b58abd61774 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/test/client.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/test/client.pyi @@ -18,7 +18,7 @@ from django.http.response import HttpResponseBase from django.template.base import Template from django.test.utils import ContextList from django.urls import ResolverMatch -from django.utils.functional import cached_property +from django.utils.functional import _StrOrPromise, cached_property BOUNDARY: str MULTIPART_CONTENT: str @@ -88,7 +88,7 @@ class _RequestFactory(Generic[_T]): def request(self, **request: Any) -> _T: ... def get( self, - path: str, + path: _StrOrPromise, data: _GetDataType = ..., secure: bool = ..., *, @@ -98,7 +98,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def post( self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., secure: bool = ..., @@ -109,7 +109,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def head( self, - path: str, + path: _StrOrPromise, data: Any = ..., secure: bool = ..., *, @@ -119,7 +119,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def trace( self, - path: str, + path: _StrOrPromise, secure: bool = ..., *, headers: Mapping[str, Any] | None = ..., @@ -128,7 +128,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def options( self, - path: str, + path: _StrOrPromise, data: dict[str, str] | str = ..., content_type: str = ..., secure: bool = ..., @@ -139,7 +139,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def put( self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., secure: bool = ..., @@ -150,7 +150,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def patch( self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., secure: bool = ..., @@ -161,7 +161,7 @@ class _RequestFactory(Generic[_T]): ) -> _T: ... def delete( self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., secure: bool = ..., @@ -173,7 +173,7 @@ class _RequestFactory(Generic[_T]): def generic( self, method: str, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str | None = ..., secure: bool = ..., @@ -283,7 +283,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): def request(self, **request: Any) -> _MonkeyPatchedWSGIResponse: ... def get( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: _GetDataType = ..., follow: bool = ..., secure: bool = ..., @@ -294,7 +294,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def post( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -306,7 +306,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def head( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., follow: bool = ..., secure: bool = ..., @@ -317,7 +317,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def options( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: dict[str, str] | str = ..., content_type: str = ..., follow: bool = ..., @@ -329,7 +329,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def put( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -341,7 +341,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def patch( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -353,7 +353,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def delete( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -365,7 +365,7 @@ class Client(ClientMixin, _RequestFactory[_MonkeyPatchedWSGIResponse]): ) -> _MonkeyPatchedWSGIResponse: ... def trace( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., follow: bool = ..., secure: bool = ..., @@ -393,7 +393,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI async def request(self, **request: Any) -> _MonkeyPatchedASGIResponse: ... async def get( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: _GetDataType = ..., follow: bool = ..., secure: bool = ..., @@ -404,7 +404,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def post( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -416,7 +416,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def head( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., follow: bool = ..., secure: bool = ..., @@ -427,7 +427,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def options( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: dict[str, str] | str = ..., content_type: str = ..., follow: bool = ..., @@ -439,7 +439,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def put( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -451,7 +451,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def patch( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -463,7 +463,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def delete( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., content_type: str = ..., follow: bool = ..., @@ -475,7 +475,7 @@ class AsyncClient(ClientMixin, _AsyncRequestFactory[Awaitable[_MonkeyPatchedASGI ) -> _MonkeyPatchedASGIResponse: ... async def trace( # type: ignore[override] self, - path: str, + path: _StrOrPromise, data: Any = ..., follow: bool = ..., secure: bool = ..., diff --git a/python/helpers/bundled_stubs/Django/django-stubs/test/testcases.pyi b/python/helpers/bundled_stubs/Django/django-stubs/test/testcases.pyi index 3efd2a72d34c..a593220dc0ea 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/test/testcases.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/test/testcases.pyi @@ -20,7 +20,7 @@ from django.template.base import Template from django.test.client import AsyncClient, Client from django.test.html import Element from django.test.utils import CaptureQueriesContext, ContextList -from django.utils.functional import classproperty +from django.utils.functional import _StrOrPromise, classproperty from typing_extensions import Self def to_list(value: Any) -> list[Any]: ... @@ -78,14 +78,14 @@ class SimpleTestCase(unittest.TestCase): ) -> None: ... def assertURLEqual( self, - url1: str | Any, # Any for reverse_lazy() support - url2: str | Any, + url1: _StrOrPromise, + url2: _StrOrPromise, msg_prefix: str = ..., ) -> None: ... def assertContains( self, response: HttpResponseBase, - text: bytes | int | str, + text: bytes | int | _StrOrPromise, count: int | None = ..., status_code: int = ..., msg_prefix: str = ..., @@ -94,7 +94,7 @@ class SimpleTestCase(unittest.TestCase): def assertNotContains( self, response: HttpResponseBase, - text: bytes | str, + text: bytes | int | _StrOrPromise, status_code: int = ..., msg_prefix: str = ..., html: bool = ..., @@ -249,4 +249,4 @@ class SerializeMixin: def connections_support_transactions(aliases: Iterable[str] | None = ...) -> bool: ... -__all__ = ("TestCase", "TransactionTestCase", "SimpleTestCase", "skipIfDBFeature", "skipUnlessDBFeature") +__all__ = ("SimpleTestCase", "TestCase", "TransactionTestCase", "skipIfDBFeature", "skipUnlessDBFeature") diff --git a/python/helpers/bundled_stubs/Django/django-stubs/test/utils.pyi b/python/helpers/bundled_stubs/Django/django-stubs/test/utils.pyi index ef1c9a8c4c6a..95dca9e0ddca 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/test/utils.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/test/utils.pyi @@ -173,19 +173,19 @@ def garbage_collect() -> None: ... __all__ = ( "Approximate", + "CaptureQueriesContext", "ContextList", - "isolate_lru_cache", "garbage_collect", "get_runner", - "CaptureQueriesContext", "ignore_warnings", "isolate_apps", + "isolate_lru_cache", "modify_settings", "override_settings", "override_system_checks", - "tag", "requires_tz_support", "setup_databases", "setup_test_environment", + "tag", "teardown_test_environment", ) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/urls/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/urls/__init__.pyi index 3d2c61c766e4..0bb0faa3af54 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/urls/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/urls/__init__.pyi @@ -42,10 +42,10 @@ _AnyURL: TypeAlias = URLPattern | URLResolver # noqa: PYI047 __all__ = [ "LocalePrefixPattern", "NoReverseMatch", - "URLPattern", - "URLResolver", "Resolver404", "ResolverMatch", + "URLPattern", + "URLResolver", "clear_script_prefix", "clear_url_caches", "get_callable", diff --git a/python/helpers/bundled_stubs/Django/django-stubs/urls/base.pyi b/python/helpers/bundled_stubs/Django/django-stubs/urls/base.pyi index d714ad688cb3..c576a85bcd2e 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/urls/base.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/urls/base.pyi @@ -4,26 +4,36 @@ from typing import Any, Literal, TypeAlias from django.http.request import QueryDict from django.http.response import HttpResponseBase from django.urls.resolvers import ResolverMatch +from django.utils.functional import _StrPromise # https://github.com/python/typeshed/blob/87f599dc8312ac67b941b5f2b47274534a1a2d3a/stdlib/urllib/parse.pyi#L136-L138 _QueryType: TypeAlias = ( Mapping[Any, Any] | Mapping[Any, Sequence[Any]] | Sequence[tuple[Any, Any]] | Sequence[tuple[Any, Sequence[Any]]] ) -def resolve(path: str, urlconf: str | None = ...) -> ResolverMatch: ... +def resolve(path: str | _StrPromise, urlconf: str | None = ...) -> ResolverMatch: ... + +# NOTE: make sure `reverse` and `reverse_lazy` objects are in sync: def reverse( viewname: Callable[..., HttpResponseBase] | str | None, - urlconf: str | None = ..., - args: Sequence[Any] | None = ..., - kwargs: dict[str, Any] | None = ..., - current_app: str | None = ..., + urlconf: str | None = None, + args: Sequence[Any] | None = None, + kwargs: dict[str, Any] | None = None, + current_app: str | None = None, *, - query: QueryDict | _QueryType | None = ..., - fragment: str | None = ..., + query: QueryDict | _QueryType | None = None, + fragment: str | None = None, ) -> str: ... - -reverse_lazy: Any - +def reverse_lazy( + viewname: Callable[..., HttpResponseBase] | str | None, + urlconf: str | None = None, + args: Sequence[Any] | None = None, + kwargs: dict[str, Any] | None = None, + current_app: str | None = None, + *, + query: QueryDict | _QueryType | None = None, + fragment: str | None = None, +) -> _StrPromise: ... def clear_url_caches() -> None: ... def set_script_prefix(prefix: str) -> None: ... def get_script_prefix() -> str: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/urls/resolvers.pyi b/python/helpers/bundled_stubs/Django/django-stubs/urls/resolvers.pyi index 17c407735298..b93f85aec5a7 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/urls/resolvers.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/urls/resolvers.pyi @@ -45,8 +45,6 @@ def get_ns_resolver(ns_pattern: str, resolver: URLResolver, converters: tuple) - _Pattern: TypeAlias = RegexPattern | RoutePattern | LocalePrefixPattern class LocaleRegexDescriptor: - attr: str - def __init__(self, attr: Any) -> None: ... @overload def __get__(self, instance: None, cls: type[_Pattern] = ...) -> LocaleRegexDescriptor: ... @overload diff --git a/python/helpers/bundled_stubs/Django/django-stubs/utils/datastructures.pyi b/python/helpers/bundled_stubs/Django/django-stubs/utils/datastructures.pyi index 134fbbbc1ab6..253ab3fec79b 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/utils/datastructures.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/utils/datastructures.pyi @@ -62,7 +62,7 @@ class MultiValueDict(dict[_K, _V]): def __init__(self, key_to_list_mapping: Mapping[_K, list[_V] | None]) -> None: ... @overload def __init__(self, key_to_list_mapping: Iterable[tuple[_K, list[_V]]] = ()) -> None: ... - @overload # type: ignore[override] + @overload def get(self, key: _K, default: None = None) -> _V | None: ... @overload def get(self, key: _K, default: _V) -> _V: ... diff --git a/python/helpers/bundled_stubs/Django/django-stubs/utils/functional.pyi b/python/helpers/bundled_stubs/Django/django-stubs/utils/functional.pyi index 683b329ffd05..2d3a480a3a8d 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/utils/functional.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/utils/functional.pyi @@ -1,4 +1,4 @@ -from collections.abc import Callable +from collections.abc import Callable, Iterable # Mypy has special handling for functools.cached_property, reuse typeshed's definition instead of defining our own from functools import cached_property as cached_property @@ -84,7 +84,7 @@ class SimpleLazyObject(LazyObject): _PartitionMember = TypeVar("_PartitionMember") def partition( - predicate: Callable[[_PartitionMember], int | bool], values: list[_PartitionMember] + predicate: Callable[[_PartitionMember], int | bool], values: Iterable[_PartitionMember] ) -> tuple[list[_PartitionMember], list[_PartitionMember]]: ... _Get = TypeVar("_Get", covariant=True) diff --git a/python/helpers/bundled_stubs/Django/django-stubs/utils/timezone.pyi b/python/helpers/bundled_stubs/Django/django-stubs/utils/timezone.pyi index 0ec29c9d0441..31c8e909a9ac 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/utils/timezone.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/utils/timezone.pyi @@ -39,19 +39,19 @@ def make_aware(value: datetime, timezone: tzinfo | None = None) -> datetime: ... def make_naive(value: datetime, timezone: tzinfo | None = None) -> datetime: ... __all__ = [ - "get_fixed_timezone", - "get_default_timezone", - "get_default_timezone_name", - "get_current_timezone", - "get_current_timezone_name", "activate", "deactivate", - "override", - "localtime", - "localdate", - "now", + "get_current_timezone", + "get_current_timezone_name", + "get_default_timezone", + "get_default_timezone_name", + "get_fixed_timezone", "is_aware", "is_naive", + "localdate", + "localtime", "make_aware", "make_naive", + "now", + "override", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/utils/translation/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/utils/translation/__init__.pyi index 34c2c8edd671..413eea909b8c 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/utils/translation/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/utils/translation/__init__.pyi @@ -50,24 +50,24 @@ def round_away_from_one(value: int) -> int: ... __all__ = [ "activate", + "check_for_language", "deactivate", - "override", "deactivate_all", "get_language", + "get_language_bidi", "get_language_from_request", "get_language_info", - "get_language_bidi", - "check_for_language", - "to_language", - "to_locale", - "templatize", "gettext", "gettext_lazy", "gettext_noop", "ngettext", "ngettext_lazy", - "pgettext", - "pgettext_lazy", "npgettext", "npgettext_lazy", + "override", + "pgettext", + "pgettext_lazy", + "templatize", + "to_language", + "to_locale", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/__init__.pyi b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/__init__.pyi index 92676b0eadb3..0b818d3f293a 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/__init__.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/__init__.pyi @@ -18,21 +18,21 @@ from .list import ListView as ListView class GenericViewError(Exception): ... __all__ = [ - "View", - "TemplateView", - "RedirectView", "ArchiveIndexView", - "YearArchiveView", - "MonthArchiveView", - "WeekArchiveView", - "DayArchiveView", - "TodayArchiveView", + "CreateView", "DateDetailView", + "DayArchiveView", + "DeleteView", "DetailView", "FormView", - "CreateView", - "UpdateView", - "DeleteView", - "ListView", "GenericViewError", + "ListView", + "MonthArchiveView", + "RedirectView", + "TemplateView", + "TodayArchiveView", + "UpdateView", + "View", + "WeekArchiveView", + "YearArchiveView", ] diff --git a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/detail.pyi b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/detail.pyi index b2f04dc470e9..ebac37f50c93 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/detail.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/detail.pyi @@ -6,7 +6,7 @@ from django.views.generic.base import ContextMixin, TemplateResponseMixin, View _M = TypeVar("_M", bound=models.Model) -class SingleObjectMixin(Generic[_M], ContextMixin): +class SingleObjectMixin(ContextMixin, Generic[_M]): model: type[_M] queryset: models.query.QuerySet[_M] | None slug_field: str diff --git a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/edit.pyi b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/edit.pyi index 0ec2af6518d0..c464f2417e1a 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/edit.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/edit.pyi @@ -5,6 +5,7 @@ from django.forms.forms import BaseForm from django.forms.models import BaseModelForm from django.http import HttpRequest, HttpResponse from django.utils.datastructures import _ListOrTuple +from django.utils.functional import _StrOrPromise from django.views.generic.base import ContextMixin, TemplateResponseMixin, View from django.views.generic.detail import BaseDetailView, SingleObjectMixin, SingleObjectTemplateResponseMixin @@ -12,10 +13,10 @@ _FormT = TypeVar("_FormT", bound=BaseForm) _ModelFormT = TypeVar("_ModelFormT", bound=BaseModelForm) _M = TypeVar("_M", bound=models.Model) -class FormMixin(Generic[_FormT], ContextMixin): +class FormMixin(ContextMixin, Generic[_FormT]): initial: dict[str, Any] form_class: type[_FormT] | None - success_url: str | None + success_url: _StrOrPromise | None = None prefix: str | None def get_initial(self) -> dict[str, Any]: ... def get_prefix(self) -> str | None: ... @@ -27,7 +28,7 @@ class FormMixin(Generic[_FormT], ContextMixin): def form_invalid(self, form: _FormT) -> HttpResponse: ... def get_context_data(self, **kwargs: Any) -> dict[str, Any]: ... -class ModelFormMixin(Generic[_M, _ModelFormT], FormMixin[_ModelFormT], SingleObjectMixin[_M]): +class ModelFormMixin(FormMixin[_ModelFormT], SingleObjectMixin[_M], Generic[_M, _ModelFormT]): fields: _ListOrTuple[str] | Literal["__all__"] | None def get_form_class(self) -> type[_ModelFormT]: ... def get_form_kwargs(self) -> dict[str, Any]: ... @@ -59,15 +60,15 @@ class UpdateView(SingleObjectTemplateResponseMixin, BaseUpdateView[_M, _ModelFor template_name_suffix: str class DeletionMixin(Generic[_M]): - success_url: str | None + success_url: _StrOrPromise | None = None object: _M def post(self, request: HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ... def delete(self, request: HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ... def get_success_url(self) -> str: ... -class BaseDeleteView(Generic[_M, _ModelFormT], DeletionMixin[_M], FormMixin[_ModelFormT], BaseDetailView[_M]): +class BaseDeleteView(DeletionMixin[_M], FormMixin[_ModelFormT], BaseDetailView[_M], Generic[_M, _ModelFormT]): object: _M -class DeleteView(Generic[_M, _ModelFormT], SingleObjectTemplateResponseMixin, BaseDeleteView[_M, _ModelFormT]): +class DeleteView(SingleObjectTemplateResponseMixin, BaseDeleteView[_M, _ModelFormT], Generic[_M, _ModelFormT]): object: _M template_name_suffix: str diff --git a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/list.pyi b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/list.pyi index 785a81aa8e3b..0c3147dedca3 100644 --- a/python/helpers/bundled_stubs/Django/django-stubs/views/generic/list.pyi +++ b/python/helpers/bundled_stubs/Django/django-stubs/views/generic/list.pyi @@ -13,7 +13,7 @@ class _HasModel(Protocol): @property def model(self) -> type[Model]: ... -class MultipleObjectMixin(Generic[_M], ContextMixin): +class MultipleObjectMixin(ContextMixin, Generic[_M]): allow_empty: bool queryset: QuerySet[_M] | None model: type[_M] | None