ruff/crates
Dhruv Manilawala dbd84c947b
Formatter parentheses support for `IpyEscapeCommand` (#8207)
## Summary

This PR removes the `todo!()` around `IpyEscapeCommand` in the
formatter.

The `NeedsParentheses` trait needs to be implemented which always return
`Never`. The reason being that if an escape command is parenthesized,
then that's not parsed as an escape command. IOW, the parentheses
shouldn't be present around an escape command.

In the similar way, the `CanSkipOptionalParenthesesVisitor` will skip
this node.

## Test Plan

Updated the `unformatted.ipynb` fixture with new cells containing
IPython escape commands and the corresponding snapshot was verified.
Also, tested it out in a few open source repositories containing
notebooks (`openai/openai-cookbook`, `huggingface/notebooks`).

#### New cells in `unformatted.ipynb`

**Cell 2**
```markdown
A markdown cell
```

**Cell 3**
```python
def some_function(foo, bar):
    pass
%matplotlib inline
```

**Cell 4**
```python
foo = %pwd
def some_function(foo,bar,):
	foo = %pwd
    print(foo
	)
```

fixes: #8204
2023-10-25 14:01:50 +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 Formatter parentheses support for `IpyEscapeCommand` (#8207) 2023-10-25 14:01:50 +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 [`pylint`] Add buffer methods to `bad-dunder-method-name` (`PLW3201`) exclusions (#8190) 2023-10-25 00:03:44 -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 Formatter parentheses support for `IpyEscapeCommand` (#8207) 2023-10-25 14:01:50 +00:00
ruff_python_index Use source type to determine parser mode for formatting (#8205) 2023-10-25 19:20:02 +05:30
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 Refine warning about incompatible `isort` settings (#8192) 2023-10-25 08:41:17 +01:00