Opened 9 days ago

Closed 8 days ago

#35893 closed Cleanup/optimization (duplicate)

Using list comprehension (instead of a generator) to any/all where the items are side-effect free is a performance error

Reported by: john-parton Owned by: john-parton
Component: contrib.admin Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

When passing a generator to any() or all(), Python can perform short-circuit evaluation to avoid needless computation.

Directly passing a list using list-comprehension is generally not recommended, unless the list-comprehension has a side-effect (for example calling a method that sets attributes on an object)

There's at least one place in the code-base where it's safe to replace list comprehension with a generator and get the short-circuit optimization for "free."

Change History (3)

comment:1 by john-parton, 9 days ago

Has patch: set

comment:3 by Sarah Boyce, 8 days ago

Resolution: duplicate
Status: assignedclosed

I will track this with #23968 and update the commit to Refs

Note: See TracTickets for help on using tickets.
Back to Top