Skip to content

Commit 04216c2

Browse files
adamchainzsobolevn
andauthored
Ignore __slotnames__ (#2584)
Co-authored-by: sobolevn <mail@sobolevn.me>
1 parent c38a147 commit 04216c2

File tree

3 files changed

+5
-26
lines changed

3 files changed

+5
-26
lines changed

scripts/stubtest/allowlist.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,3 +517,8 @@ django.db.models.base.Model.save
517517
django.contrib.gis.db.models.GeneratedField.__init__
518518
django.db.models.GeneratedField.__init__
519519
django.db.models.fields.generated.GeneratedField.__init__
520+
521+
# cls.__slotnames__ gets added by Python’s pickling internals:
522+
# https://github.com/python/cpython/blob/5abff6960b4aecb0d5c81c7482cf3faa74e1983d/Lib/copyreg.py#L112-L161
523+
# Some Django classes get copied at import time, which leads stubtest to detect it.
524+
.*\.__slotnames__

scripts/stubtest/allowlist_todo.txt

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ django.contrib.admin.models.LogEntry.object_id
2626
django.contrib.admin.models.LogEntry.object_repr
2727
django.contrib.admin.models.LogEntry.user
2828
django.contrib.admin.models.LogEntry.user_id
29-
django.contrib.admin.models.LogEntryManager.__slotnames__
3029
django.contrib.admin.options.BaseModelAdmin
3130
django.contrib.admin.options.BaseModelAdmin.form
3231
django.contrib.admin.options.BaseModelAdmin.media
@@ -96,13 +95,11 @@ django.contrib.auth.models.AnonymousUser.__int__
9695
django.contrib.auth.models.Group.id
9796
django.contrib.auth.models.Group.name
9897
django.contrib.auth.models.Group.permissions
99-
django.contrib.auth.models.GroupManager.__slotnames__
10098
django.contrib.auth.models.Permission.codename
10199
django.contrib.auth.models.Permission.content_type
102100
django.contrib.auth.models.Permission.content_type_id
103101
django.contrib.auth.models.Permission.id
104102
django.contrib.auth.models.Permission.name
105-
django.contrib.auth.models.PermissionManager.__slotnames__
106103
django.contrib.auth.models.PermissionsMixin.groups
107104
django.contrib.auth.models.PermissionsMixin.is_superuser
108105
django.contrib.auth.models.PermissionsMixin.user_permissions
@@ -121,7 +118,6 @@ django.contrib.auth.models.User.last_name
121118
django.contrib.auth.models.User.password
122119
django.contrib.auth.models.User.user_permissions
123120
django.contrib.auth.models.User.username
124-
django.contrib.auth.models.UserManager.__slotnames__
125121
django.contrib.auth.password_validation.CommonPasswordValidator.DEFAULT_PASSWORD_LIST_PATH
126122
django.contrib.auth.password_validation.CommonPasswordValidator.__init__
127123
django.contrib.auth.password_validation.exceeds_maximum_length_ratio
@@ -148,7 +144,6 @@ django.contrib.contenttypes.models.ContentType.app_labeled_name
148144
django.contrib.contenttypes.models.ContentType.id
149145
django.contrib.contenttypes.models.ContentType.model
150146
django.contrib.contenttypes.models.ContentTypeManager.__init__
151-
django.contrib.contenttypes.models.ContentTypeManager.__slotnames__
152147
django.contrib.flatpages.admin.FlatPageAdmin
153148
django.contrib.flatpages.models.FlatPage.content
154149
django.contrib.flatpages.models.FlatPage.enable_comments
@@ -298,7 +293,6 @@ django.contrib.gis.db.models.Lookup.get_prep_lhs
298293
django.contrib.gis.db.models.Lookup.allowed_default
299294
django.contrib.gis.db.models.Lookup.lookup_name
300295
django.contrib.gis.db.models.Lookup.output_field
301-
django.contrib.gis.db.models.Manager.__slotnames__
302296
django.contrib.gis.db.models.ManyToManyField.__get__
303297
django.contrib.gis.db.models.ManyToManyField.contribute_to_class
304298
django.contrib.gis.db.models.ManyToManyField.formfield
@@ -367,11 +361,9 @@ django.contrib.gis.forms.BaseModelFormSet.save_m2m
367361
django.contrib.gis.forms.BoundWidget
368362
django.contrib.gis.forms.ChoiceField.__deepcopy__
369363
django.contrib.gis.forms.DateTimeBaseInput
370-
django.contrib.gis.forms.EmailInput.__slotnames__
371364
django.contrib.gis.forms.Field.__deepcopy__
372365
django.contrib.gis.forms.Field.hidden_widget
373366
django.contrib.gis.forms.FileField.bound_data
374-
django.contrib.gis.forms.HiddenInput.__slotnames__
375367
django.contrib.gis.forms.InlineForeignKeyField
376368
django.contrib.gis.forms.Input
377369
django.contrib.gis.forms.Media.__html__
@@ -383,13 +375,11 @@ django.contrib.gis.forms.ModelMultipleChoiceField.hidden_widget
383375
django.contrib.gis.forms.MultiValueField.__deepcopy__
384376
django.contrib.gis.forms.MultiWidget.use_fieldset
385377
django.contrib.gis.forms.MultipleChoiceField.hidden_widget
386-
django.contrib.gis.forms.PasswordInput.__slotnames__
387378
django.contrib.gis.forms.RadioSelect.id_for_label
388379
django.contrib.gis.forms.RadioSelect.use_fieldset
389380
django.contrib.gis.forms.SelectDateWidget.select_widget
390381
django.contrib.gis.forms.SelectDateWidget.use_fieldset
391382
django.contrib.gis.forms.SplitDateTimeField.hidden_widget
392-
django.contrib.gis.forms.TextInput.__slotnames__
393383
django.contrib.gis.forms.Widget.use_fieldset
394384
django.contrib.gis.forms.formset_factory
395385
django.contrib.gis.forms.inlineformset_factory
@@ -451,20 +441,17 @@ django.contrib.sessions.base_session.AbstractBaseSession.get_previous_by_expire_
451441
django.contrib.sessions.base_session.AbstractBaseSession.objects
452442
django.contrib.sessions.base_session.AbstractBaseSession.session_data
453443
django.contrib.sessions.base_session.AbstractBaseSession.session_key
454-
django.contrib.sessions.base_session.BaseSessionManager.__slotnames__
455444
django.contrib.sessions.models.Session.expire_date
456445
django.contrib.sessions.models.Session.get_next_by_expire_date
457446
django.contrib.sessions.models.Session.get_previous_by_expire_date
458447
django.contrib.sessions.models.Session.session_data
459448
django.contrib.sessions.models.Session.session_key
460-
django.contrib.sessions.models.SessionManager.__slotnames__
461449
django.contrib.sitemaps.views.SitemapIndexItem
462450
django.contrib.sites.admin.SiteAdmin
463451
django.contrib.sites.models.Site.domain
464452
django.contrib.sites.models.Site.flatpage_set
465453
django.contrib.sites.models.Site.id
466454
django.contrib.sites.models.Site.name
467-
django.contrib.sites.models.SiteManager.__slotnames__
468455
django.contrib.staticfiles.finders.BaseStorageFinder.storage
469456
django.contrib.staticfiles.finders.DefaultStorageFinder.storage
470457
django.contrib.staticfiles.storage.staticfiles_storage
@@ -689,7 +676,6 @@ django.db.models.Lookup.get_prep_lhs
689676
django.db.models.Lookup.lookup_name
690677
django.db.models.Lookup.allowed_default
691678
django.db.models.Lookup.output_field
692-
django.db.models.Manager.__slotnames__
693679
django.db.models.ManyToManyField.__get__
694680
django.db.models.ManyToManyField.contribute_to_class
695681
django.db.models.ManyToManyField.formfield
@@ -1041,7 +1027,6 @@ django.db.models.manager.BaseManager.update_or_create
10411027
django.db.models.manager.BaseManager.using
10421028
django.db.models.manager.BaseManager.values
10431029
django.db.models.manager.BaseManager.values_list
1044-
django.db.models.manager.Manager.__slotnames__
10451030
django.db.models.options.Options.concrete_fields
10461031
django.db.models.options.Options.installed
10471032
django.db.models.options.Options.local_concrete_fields
@@ -1112,11 +1097,9 @@ django.forms.BaseModelFormSet.save_m2m
11121097
django.forms.BoundWidget
11131098
django.forms.ChoiceField.__deepcopy__
11141099
django.forms.DateTimeBaseInput
1115-
django.forms.EmailInput.__slotnames__
11161100
django.forms.Field.__deepcopy__
11171101
django.forms.Field.hidden_widget
11181102
django.forms.FileField.bound_data
1119-
django.forms.HiddenInput.__slotnames__
11201103
django.forms.InlineForeignKeyField
11211104
django.forms.Input
11221105
django.forms.Media.__html__
@@ -1128,13 +1111,11 @@ django.forms.ModelMultipleChoiceField.hidden_widget
11281111
django.forms.MultiValueField.__deepcopy__
11291112
django.forms.MultiWidget.use_fieldset
11301113
django.forms.MultipleChoiceField.hidden_widget
1131-
django.forms.PasswordInput.__slotnames__
11321114
django.forms.RadioSelect.id_for_label
11331115
django.forms.RadioSelect.use_fieldset
11341116
django.forms.SelectDateWidget.select_widget
11351117
django.forms.SelectDateWidget.use_fieldset
11361118
django.forms.SplitDateTimeField.hidden_widget
1137-
django.forms.TextInput.__slotnames__
11381119
django.forms.Widget.use_fieldset
11391120
django.forms.boundfield.BoundWidget.__html__
11401121
django.forms.fields.ChoiceField.__deepcopy__
@@ -1165,18 +1146,14 @@ django.forms.models.modelform_factory
11651146
django.forms.models.modelformset_factory
11661147
django.forms.renderers.DjangoDivFormRenderer
11671148
django.forms.widgets.ChoiceWidget.template_name
1168-
django.forms.widgets.EmailInput.__slotnames__
1169-
django.forms.widgets.HiddenInput.__slotnames__
11701149
django.forms.widgets.Input.input_type
11711150
django.forms.widgets.Media.__html__
11721151
django.forms.widgets.MediaDefiningClass.__new__
11731152
django.forms.widgets.MultiWidget.use_fieldset
1174-
django.forms.widgets.PasswordInput.__slotnames__
11751153
django.forms.widgets.RadioSelect.id_for_label
11761154
django.forms.widgets.RadioSelect.use_fieldset
11771155
django.forms.widgets.SelectDateWidget.select_widget
11781156
django.forms.widgets.SelectDateWidget.use_fieldset
1179-
django.forms.widgets.TextInput.__slotnames__
11801157
django.forms.widgets.Widget.use_fieldset
11811158
django.http.HttpRequest.__init__
11821159
django.http.StreamingHttpResponse.content

scripts/stubtest/allowlist_todo_django51.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ django.contrib.contenttypes.fields.GenericForeignKey.get_attname_column
77
django.contrib.contenttypes.models.ContentType.get_object_for_this_type
88
django.contrib.gis.db.models.ForeignObjectRel.accessor_name
99
django.contrib.gis.forms.ModelChoiceField.validate_no_null_characters
10-
django.contrib.gis.forms.RadioSelect.__slotnames__
1110
django.contrib.gis.gdal.geometries.LineString.m
1211
django.contrib.gis.gdal.geometries.Point.m
1312
django.contrib.gis.gdal.prototypes.ds.GDAL_OF_ALL
@@ -53,9 +52,7 @@ django.db.models.fields.related.ForeignObjectRel.accessor_name
5352
django.db.models.fields.reverse_related.ForeignObjectRel.accessor_name
5453
django.db.models.lookups.In.get_refs
5554
django.forms.ModelChoiceField.validate_no_null_characters
56-
django.forms.RadioSelect.__slotnames__
5755
django.forms.models.ModelChoiceField.validate_no_null_characters
58-
django.forms.widgets.RadioSelect.__slotnames__
5956
django.test.signals.form_renderer_changed
6057
django.test.utils.garbage_collect
6158
django.urls.resolvers.whitespace_set

0 commit comments

Comments
 (0)