ruff/crates
Charlie Marsh 0236e0751c
Avoid sorting all paths in the format command (#8181)
## Summary

Related to https://github.com/astral-sh/ruff/issues/8135.

If we're not printing a `--diff`, or a summary of `--check` changes, we
can avoid sorting the list of results. Further, when sorting, we only
need to sort a small subset of the entries, in the common case (i.e., in
general, it's much more likely that a file is formatted than not).

## Test Plan

Local benchmarks suggest a 5-10% speedup on the cached behavior:

```
❯ hyperfine --warmup 3 "./target/release/ruff format ../airflow" "./target/release/sort format ../airflow"
Benchmark 1: ./target/release/ruff format ../airflow
  Time (mean ± σ):      70.3 ms ±   5.2 ms    [User: 52.1 ms, System: 59.0 ms]
  Range (min … max):    68.3 ms … 101.7 ms    42 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet PC without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

Benchmark 2: ./target/release/sort format ../airflow
  Time (mean ± σ):      66.0 ms ±   1.4 ms    [User: 48.3 ms, System: 58.4 ms]
  Range (min … max):    64.7 ms …  71.8 ms    44 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet PC without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

Summary
  './target/release/sort format ../airflow' ran
    1.07 ± 0.08 times faster than './target/release/ruff format ../airflow'
```
2023-10-24 20:54:06 +00:00
..
flake8_to_ruff Release 0.1.2 (#8168) 2023-10-24 15:21:29 +00:00
ruff_benchmark Bump codspeed-criterion-compat from 2.2.0 to 2.3.0 (#8128) 2023-10-23 10:04:19 +01:00
ruff_cache Introduce `FormatterSettings` (#7545) 2023-09-21 08:01:24 +02:00
ruff_cli Avoid sorting all paths in the format command (#8181) 2023-10-24 20:54:06 +00:00
ruff_dev Rework the documentation to incorporate the Ruff formatter (#7732) 2023-10-20 23:08:26 +00:00
ruff_diagnostics Add settings for promoting and demoting fixes (#7841) 2023-10-10 20:04:21 +00:00
ruff_formatter Rust 1.73 (#8007) 2023-10-23 02:12:25 +00:00
ruff_index Add unreachable code rule (#5384) 2023-07-04 14:27:23 +00:00
ruff_linter Add `external` option to `unused-noqa` documentation (#8171) 2023-10-24 12:38:42 -05:00
ruff_macros Add `#[automatically_derived]` to derived impls (#8080) 2023-10-20 00:12:27 +00:00
ruff_notebook Bump serde_with from 3.3.0 to 3.4.0 (#8130) 2023-10-23 09:05:52 +00:00
ruff_python_ast Remove leftover constant tuple reference (#8062) 2023-10-19 17:50:45 +00:00
ruff_python_codegen Add support for PEP 701 (#7376) 2023-09-29 02:55:39 +00:00
ruff_python_formatter Update the formatter README (#8166) 2023-10-24 14:17:32 +00:00
ruff_python_index Add support for PEP 701 (#7376) 2023-09-29 02:55:39 +00:00
ruff_python_literal Implement our own small-integer optimization (#7584) 2023-09-25 15:13:21 +00:00
ruff_python_parser Fix range of unparenthesized tuple subject in match statement (#8101) 2023-10-22 19:58:33 -04:00
ruff_python_resolver Replace `.map_or(false, $closure)` with `.is_some_and(closure)` (#6244) 2023-08-01 19:29:42 +02:00
ruff_python_semantic Rust 1.73 (#8007) 2023-10-23 02:12:25 +00:00
ruff_python_stdlib Improvements to RUF015 (#7848) 2023-10-08 14:49:45 +00:00
ruff_python_trivia Extend pragma comment cases (#7687) 2023-09-28 18:55:19 +00:00
ruff_shrinking Release 0.1.2 (#8168) 2023-10-24 15:21:29 +00:00
ruff_source_file Add `cell` field to JSON output format (#7664) 2023-10-13 01:06:02 +00:00
ruff_text_size Unify line size settings between ruff and the formatter (#6873) 2023-08-28 06:44:56 +00:00
ruff_wasm Rename `tab-size` to `indent-width` (#8082) 2023-10-24 10:01:24 -04:00
ruff_workspace Rename `tab-size` to `indent-width` (#8082) 2023-10-24 10:01:24 -04:00