Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove class Meta from Model and Form class stubs #2000

Merged
merged 24 commits into from
Apr 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
00dd125
remove incorrect `forms.BaseForm.Meta`
jorenham Mar 11, 2024
95f5c69
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 11, 2024
bcc175b
add missing `Meta` for specific forms
jorenham Mar 11, 2024
b4476d9
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 11, 2024
dca57cb
corrected unbound typevars for form Meta classes
jorenham Mar 11, 2024
2d50e21
add `django_stubs_ext.db.models.ModelMeta`
jorenham Mar 12, 2024
cfa2675
add `django_stubs_ext.db.models.Mode;WithMeta`
jorenham Mar 12, 2024
48f754c
make models with `Meta` a `ModelWithMeta`
jorenham Mar 12, 2024
b32e9ba
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 12, 2024
68cd002
removed `ModelWithMeta`
jorenham Mar 12, 2024
4232c7e
fix subtypes of `ModelWithMeta`
jorenham Mar 12, 2024
2434812
Merge branch 'master' into patch-1
jorenham Mar 18, 2024
8c42cfc
fix misplaced `import`
jorenham Mar 18, 2024
2336642
remove unused allowlist entries
jorenham Mar 18, 2024
5a185b2
Merge branch 'master' into patch-1
jorenham Mar 19, 2024
9cc9b4f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 19, 2024
7c7773d
restored some allowlist entries
jorenham Mar 19, 2024
33b5bee
remove inner `Meta` types in forms and models
jorenham Mar 25, 2024
c5029e0
removed unused `ModelMeta` union type
jorenham Mar 25, 2024
637b630
remove unused allowlist entries
jorenham Mar 25, 2024
130bfe1
add allowlist entries for inner `Meta`
jorenham Mar 25, 2024
4501bb7
Update ext/django_stubs_ext/db/models/__init__.py
jorenham Apr 2, 2024
304ea1f
undo misplaced typing fix
jorenham Apr 2, 2024
eee1abc
move `Meta` entries from `allowlist_todo.txt` to `allowlist.txt`, as …
jorenham Apr 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions django-stubs/contrib/gis/db/backends/oracle/models.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@ class OracleGeometryColumns(models.Model):
srid: Any
objects: ClassVar[Manager[Self]]

class Meta:
app_label: str
db_table: str
managed: bool

@classmethod
def table_name_col(cls) -> Any: ...
@classmethod
Expand All @@ -30,10 +25,5 @@ class OracleSpatialRefSys(models.Model, SpatialRefSysMixin):
cs_bounds: Any
objects: ClassVar[Manager[Self]]

class Meta:
app_label: str
db_table: str
managed: bool

@property
def wkt(self) -> Any: ...
10 changes: 0 additions & 10 deletions django-stubs/contrib/gis/db/backends/postgis/models.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,6 @@ class PostGISGeometryColumns(models.Model):
type: Any
objects: ClassVar[models.Manager[Self]]

class Meta:
app_label: str
db_table: str
managed: bool

@classmethod
def table_name_col(cls) -> Any: ...
@classmethod
Expand All @@ -32,10 +27,5 @@ class PostGISSpatialRefSys(models.Model, SpatialRefSysMixin):
proj4text: Any
objects: ClassVar[models.Manager[Self]]

class Meta:
app_label: str
db_table: str
managed: bool

@property
def wkt(self) -> Any: ...
10 changes: 0 additions & 10 deletions django-stubs/contrib/gis/db/backends/spatialite/models.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ class SpatialiteGeometryColumns(models.Model):
type: Any
objects: ClassVar[models.Manager[Self]]

class Meta:
app_label: str
db_table: str
managed: bool

@classmethod
def table_name_col(cls) -> Any: ...
@classmethod
Expand All @@ -32,10 +27,5 @@ class SpatialiteSpatialRefSys(models.Model, SpatialRefSysMixin):
srtext: Any
objects: ClassVar[models.Manager[Self]]

class Meta:
app_label: str
db_table: str
managed: bool

@property
def wkt(self) -> Any: ...
1 change: 0 additions & 1 deletion django-stubs/db/models/base.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ class Model(metaclass=ModelBase):
# to only exist on subclasses it exists on during runtime.
objects: ClassVar[Manager[Self]]

class Meta: ...
_meta: ClassVar[Options[Self]]
pk: Any
_state: ModelState
Expand Down
5 changes: 1 addition & 4 deletions django-stubs/forms/forms.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from collections.abc import Iterable, Iterator, Mapping, Sequence
from collections.abc import Iterable, Iterator, Mapping
from typing import Any, ClassVar

from django.core.exceptions import ValidationError
Expand All @@ -13,9 +13,6 @@ from django.utils.safestring import SafeString
class DeclarativeFieldsMetaclass(MediaDefiningClass): ...

class BaseForm(RenderableFormMixin):
class Meta:
fields: Sequence[str]

default_renderer: BaseRenderer | type[BaseRenderer] | None
field_order: Iterable[str] | None
use_required_attribute: bool
Expand Down
10 changes: 10 additions & 0 deletions scripts/stubtest/allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -387,3 +387,13 @@ django.urls.resolvers.URLPattern.lookup_str
django.urls.resolvers.URLResolver.url_patterns
django.urls.resolvers.URLResolver.urlconf_module
django.utils.connection.BaseConnectionHandler.settings

# Ignore missing inner `Meta` class, see PR #2000 for the related discussion
django.contrib.auth.base_user.AbstractBaseUser.Meta
django.contrib.auth.forms.BaseUserCreationForm.Meta
django.contrib.auth.forms.UserChangeForm.Meta
django.contrib.auth.models.AbstractBaseUser.Meta
django.contrib.auth.models.AbstractUser.Meta
django.contrib.auth.models.PermissionsMixin.Meta
django.contrib.flatpages.forms.FlatpageForm.Meta
django.contrib.sessions.base_session.AbstractBaseSession.Meta
26 changes: 0 additions & 26 deletions scripts/stubtest/allowlist_todo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,17 @@ django.contrib.auth.admin.UserAdmin.form
django.contrib.auth.admin.UserAdmin.get_form
django.contrib.auth.backends.RemoteUserBackend.authenticate
django.contrib.auth.backends.RemoteUserBackend.configure_user
django.contrib.auth.base_user.AbstractBaseUser.Meta.abstract
django.contrib.auth.base_user.AbstractBaseUser.get_session_auth_fallback_hash
django.contrib.auth.base_user.AbstractBaseUser.last_login
django.contrib.auth.base_user.AbstractBaseUser.password
django.contrib.auth.decorators.login_required
django.contrib.auth.default_app_config
django.contrib.auth.forms.AdminPasswordChangeForm
django.contrib.auth.forms.AuthenticationForm
django.contrib.auth.forms.BaseUserCreationForm.Meta.field_classes
django.contrib.auth.forms.BaseUserCreationForm.Meta.model
django.contrib.auth.forms.BaseUserCreationForm.declared_fields
django.contrib.auth.forms.PasswordChangeForm
django.contrib.auth.forms.PasswordResetForm
django.contrib.auth.forms.SetPasswordForm
django.contrib.auth.forms.UserChangeForm.Meta.field_classes
django.contrib.auth.forms.UserChangeForm.Meta.model
django.contrib.auth.forms.UserChangeForm.declared_fields
django.contrib.auth.forms.UserCreationForm.declared_fields
django.contrib.auth.forms.UserModel
Expand All @@ -129,13 +124,9 @@ django.contrib.auth.hashers.reset_hashers
django.contrib.auth.management.commands.createsuperuser.Command.get_input_data
django.contrib.auth.management.commands.createsuperuser.Command.username_is_unique
django.contrib.auth.management.commands.createsuperuser.PASSWORD_FIELD
django.contrib.auth.models.AbstractBaseUser.Meta.abstract
django.contrib.auth.models.AbstractBaseUser.get_session_auth_fallback_hash
django.contrib.auth.models.AbstractBaseUser.last_login
django.contrib.auth.models.AbstractBaseUser.password
django.contrib.auth.models.AbstractUser.Meta.abstract
django.contrib.auth.models.AbstractUser.Meta.verbose_name
django.contrib.auth.models.AbstractUser.Meta.verbose_name_plural
django.contrib.auth.models.AbstractUser.date_joined
django.contrib.auth.models.AbstractUser.email
django.contrib.auth.models.AbstractUser.email_user
Expand Down Expand Up @@ -163,7 +154,6 @@ django.contrib.auth.models.Permission.content_type_id
django.contrib.auth.models.Permission.id
django.contrib.auth.models.Permission.name
django.contrib.auth.models.PermissionManager.__slotnames__
django.contrib.auth.models.PermissionsMixin.Meta.abstract
django.contrib.auth.models.PermissionsMixin.groups
django.contrib.auth.models.PermissionsMixin.is_superuser
django.contrib.auth.models.PermissionsMixin.user_permissions
Expand Down Expand Up @@ -214,7 +204,6 @@ django.contrib.contenttypes.models.ContentType.permission_set
django.contrib.contenttypes.models.ContentTypeManager.__init__
django.contrib.contenttypes.models.ContentTypeManager.__slotnames__
django.contrib.flatpages.admin.FlatPageAdmin
django.contrib.flatpages.forms.FlatpageForm.Meta.model
django.contrib.flatpages.forms.FlatpageForm.declared_fields
django.contrib.flatpages.models.FlatPage.content
django.contrib.flatpages.models.FlatPage.enable_comments
Expand Down Expand Up @@ -253,23 +242,17 @@ django.contrib.gis.db.backends.oracle.features.DatabaseFeatures.django_test_skip
django.contrib.gis.db.backends.oracle.features.DatabaseFeatures.supports_tolerance_parameter
django.contrib.gis.db.backends.oracle.features.DatabaseFeatures.unsupported_geojson_options
django.contrib.gis.db.backends.oracle.introspection
django.contrib.gis.db.backends.oracle.models.OracleGeometryColumns.Meta
django.contrib.gis.db.backends.oracle.models.OracleSpatialRefSys.Meta
django.contrib.gis.db.backends.oracle.operations
django.contrib.gis.db.backends.postgis.adapter.PostGISAdapter.prepare
django.contrib.gis.db.backends.postgis.features.DatabaseFeatures.empty_intersection_returns_none
django.contrib.gis.db.backends.postgis.features.DatabaseFeatures.supports_geography
django.contrib.gis.db.backends.postgis.models.PostGISGeometryColumns.Meta
django.contrib.gis.db.backends.postgis.models.PostGISSpatialRefSys.Meta
django.contrib.gis.db.backends.postgis.operations.PostGISOperations.convert_extent
django.contrib.gis.db.backends.postgis.operations.PostGISOperations.convert_extent3d
django.contrib.gis.db.backends.postgis.operations.PostGISOperator.check_geography
django.contrib.gis.db.backends.postgis.schema.PostGISSchemaEditor.rast_index_template
django.contrib.gis.db.backends.spatialite.base.DatabaseWrapper.ops
django.contrib.gis.db.backends.spatialite.features.DatabaseFeatures.can_alter_geometry_field
django.contrib.gis.db.backends.spatialite.features.DatabaseFeatures.django_test_skips
django.contrib.gis.db.backends.spatialite.models.SpatialiteGeometryColumns.Meta
django.contrib.gis.db.backends.spatialite.models.SpatialiteSpatialRefSys.Meta
django.contrib.gis.db.backends.spatialite.operations.SpatiaLiteOperations.convert_extent
django.contrib.gis.db.backends.spatialite.operations.SpatiaLiteOperations.from_text
django.contrib.gis.db.backends.spatialite.operations.SpatiaLiteOperations.geom_lib_version
Expand Down Expand Up @@ -403,7 +386,6 @@ django.contrib.gis.db.models.ManyToManyField.reverse_path_infos
django.contrib.gis.db.models.ManyToManyRel.identity
django.contrib.gis.db.models.ManyToOneRel.__init__
django.contrib.gis.db.models.ManyToOneRel.identity
django.contrib.gis.db.models.Model.Meta
django.contrib.gis.db.models.Model.add_to_class
django.contrib.gis.db.models.ObjectDoesNotExist
django.contrib.gis.db.models.OneToOneField.__get__
Expand Down Expand Up @@ -464,7 +446,6 @@ django.contrib.gis.db.models.functions.Length.as_sql
django.contrib.gis.db.models.lookups.RasterBandTransform.as_sql
django.contrib.gis.default_app_config
django.contrib.gis.forms.ALL_FIELDS
django.contrib.gis.forms.BaseForm.Meta
django.contrib.gis.forms.BaseForm.__init__
django.contrib.gis.forms.BaseFormSet.__init__
django.contrib.gis.forms.BaseFormSet.deletion_widget
Expand Down Expand Up @@ -646,9 +627,6 @@ django.contrib.sessions.backends.base.SessionBase.get
django.contrib.sessions.backends.base.SessionBase.setdefault
django.contrib.sessions.backends.base.SessionBase.update
django.contrib.sessions.backends.signed_cookies.SessionStore.exists
django.contrib.sessions.base_session.AbstractBaseSession.Meta.abstract
django.contrib.sessions.base_session.AbstractBaseSession.Meta.verbose_name
django.contrib.sessions.base_session.AbstractBaseSession.Meta.verbose_name_plural
django.contrib.sessions.base_session.AbstractBaseSession.expire_date
django.contrib.sessions.base_session.AbstractBaseSession.get_next_by_expire_date
django.contrib.sessions.base_session.AbstractBaseSession.get_previous_by_expire_date
Expand Down Expand Up @@ -952,7 +930,6 @@ django.db.models.ManyToManyField.reverse_path_infos
django.db.models.ManyToManyRel.identity
django.db.models.ManyToOneRel.__init__
django.db.models.ManyToOneRel.identity
django.db.models.Model.Meta
django.db.models.Model.add_to_class
django.db.models.ObjectDoesNotExist
django.db.models.OneToOneField.__get__
Expand Down Expand Up @@ -1007,7 +984,6 @@ django.db.models.aggregates.StdDev.__init__
django.db.models.aggregates.Variance.__init__
django.db.models.base.DEFERRED
django.db.models.base.Deferred
django.db.models.base.Model.Meta
django.db.models.base.Model.add_to_class
django.db.models.base.ModelBase.__new__
django.db.models.base.ModelBase.add_to_class
Expand Down Expand Up @@ -1469,7 +1445,6 @@ django.db.utils.ConnectionHandler.ensure_defaults
django.db.utils.ConnectionHandler.prepare_test_settings
django.db.utils.DatabaseErrorWrapper.__call__
django.forms.ALL_FIELDS
django.forms.BaseForm.Meta
django.forms.BaseForm.__init__
django.forms.BaseFormSet.__init__
django.forms.BaseFormSet.deletion_widget
Expand Down Expand Up @@ -1520,7 +1495,6 @@ django.forms.fields.FileField.bound_data
django.forms.fields.MultiValueField.__deepcopy__
django.forms.fields.MultipleChoiceField.hidden_widget
django.forms.fields.SplitDateTimeField.hidden_widget
django.forms.forms.BaseForm.Meta
django.forms.forms.BaseForm.__init__
django.forms.forms.DeclarativeFieldsMetaclass.__new__
django.forms.forms.Form
Expand Down
Loading