Opened 3 years ago
Last modified 3 years ago
#32971 closed Cleanup/optimization
Internal Field.check() methods don't need to construct and return lists — at Initial Version
Reported by: | Chris Jerdonek | Owned by: | nobody |
---|---|---|---|
Component: | Core (System checks) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I noticed that many of the internal "check()" methods used by Field
subclasses return lists (including the empty list) when they can just yield items (or yield nothing). This is because the concrete check()
implementations unpack the return value when constructing a new list. See here for one example of such a check()
method: https://github.com/django/django/blob/f331eba6d576752dd79c4b37c41d981daa537fe6/django/db/models/fields/__init__.py#L196-L205
The proposed change, then, would be to change methods like the following to yield their items instead of creating and returning a list: https://github.com/django/django/blob/f331eba6d576752dd79c4b37c41d981daa537fe6/django/db/models/fields/__init__.py#L243-L254