mirror of https://github.com/astral-sh/ruff
Document `reimplemented-starmap` performance effects (#7846)
## 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`
This commit is contained in:
parent
0fc76ba276
commit
805fd1bc93
|
|
@ -17,7 +17,14 @@ use crate::registry::AsRule;
|
||||||
/// When unpacking values from iterators to pass them directly to
|
/// When unpacking values from iterators to pass them directly to
|
||||||
/// a function, prefer `itertools.starmap`.
|
/// 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
|
/// ## Example
|
||||||
/// ```python
|
/// ```python
|
||||||
|
|
@ -53,6 +60,9 @@ use crate::registry::AsRule;
|
||||||
///
|
///
|
||||||
/// ## References
|
/// ## References
|
||||||
/// - [Python documentation: `itertools.starmap`](https://docs.python.org/3/library/itertools.html#itertools.starmap)
|
/// - [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]
|
#[violation]
|
||||||
pub struct ReimplementedStarmap;
|
pub struct ReimplementedStarmap;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue