Skip to content

Commit

Permalink
Document reimplemented-starmap performance effects (#7846)
Browse files Browse the repository at this point in the history
## Summary

Document the performance effects of `itertools.starmap`, including that
it is actually slower than comprehensions in Python 3.12.

Closes #7771.

## Test Plan

`python scripts/check_docs_formatted.py`
  • Loading branch information
tjkuson authored Oct 7, 2023
1 parent 0fc76ba commit 805fd1b
Showing 1 changed file with 11 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,14 @@ use crate::registry::AsRule;
/// When unpacking values from iterators to pass them directly to
/// a function, prefer `itertools.starmap`.
///
/// Using `itertools.starmap` is more concise and readable.
/// Using `itertools.starmap` is more concise and readable. Furthermore, it is
/// more efficient than generator expressions, and in some versions of Python,
/// it is more efficient than comprehensions.
///
/// ## Known problems
/// Since Python 3.12, `itertools.starmap` is less efficient than
/// comprehensions ([#7771]). This is due to [PEP 709], which made
/// comprehensions faster.
///
/// ## Example
/// ```python
Expand Down Expand Up @@ -53,6 +60,9 @@ use crate::registry::AsRule;
///
/// ## References
/// - [Python documentation: `itertools.starmap`](https://docs.python.org/3/library/itertools.html#itertools.starmap)
///
/// [PEP 709]: https://peps.python.org/pep-0709/
/// [#7771]: https://github.com/astral-sh/ruff/issues/7771
#[violation]
pub struct ReimplementedStarmap;

Expand Down

0 comments on commit 805fd1b

Please sign in to comment.