mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-29 13:25:17 +00:00

## Summary This PR implements the `no_blank_line_before_class_docstring` preview style. ## Test Plan Update existing snapshots. ### Formatter ecosystem `main` | project | similarity index | total files | changed files | |----------------|------------------:|------------------:|------------------:| | cpython | 0.75804 | 1799 | 1648 | | django | 0.99984 | 2772 | 34 | | home-assistant | 0.99955 | 10596 | 213 | | poetry | 0.99905 | 321 | 15 | | transformers | 0.99967 | 2657 | 324 | | twine | 1.00000 | 33 | 0 | | typeshed | 0.99980 | 3669 | 18 | | warehouse | 0.99976 | 654 | 14 | | zulip | 0.99958 | 1459 | 36 | `dhruv/no-blank-line-docstring` | project | similarity index | total files | changed files | |----------------|------------------:|------------------:|------------------:| | cpython | 0.75804 | 1799 | 1648 | | django | 0.99984 | 2772 | 34 | | home-assistant | 0.99955 | 10596 | 213 | | poetry | 0.99905 | 321 | 15 | | transformers | 0.99967 | 2657 | 324 | | twine | 1.00000 | 33 | 0 | | typeshed | 0.99980 | 3669 | 18 | | warehouse | 0.99976 | 654 | 14 | | zulip | 0.99958 | 1459 | 36 | fixes: #8888
239 lines
5.8 KiB
Text
239 lines
5.8 KiB
Text
---
|
|
source: crates/ruff_python_formatter/tests/fixtures.rs
|
|
input_file: crates/ruff_python_formatter/resources/test/fixtures/ruff/preview.py
|
|
---
|
|
## Input
|
|
```python
|
|
"""
|
|
Black's `Preview.module_docstring_newlines`
|
|
"""
|
|
first_stmt_after_module_level_docstring = 1
|
|
|
|
|
|
class CachedRepository:
|
|
# Black's `Preview.dummy_implementations`
|
|
def get_release_info(self): ...
|
|
|
|
|
|
def raw_docstring():
|
|
|
|
r"""Black's `Preview.accept_raw_docstrings`
|
|
a
|
|
b
|
|
"""
|
|
pass
|
|
|
|
|
|
def reference_docstring_newlines():
|
|
|
|
"""A regular docstring for comparison
|
|
a
|
|
b
|
|
"""
|
|
pass
|
|
|
|
|
|
class RemoveNewlineBeforeClassDocstring:
|
|
|
|
"""Black's `Preview.no_blank_line_before_class_docstring`"""
|
|
|
|
|
|
def f():
|
|
"""Black's `Preview.prefer_splitting_right_hand_side_of_assignments`"""
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
|
|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
] = cccccccc.ccccccccccccc.cccccccc
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
|
|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
] = cccccccc.ccccccccccccc().cccccccc
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
|
|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
] = cccccccc.ccccccccccccc(d).cccccccc
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc(d).cccccccc + e
|
|
)
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc + e
|
|
)
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc
|
|
+ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
|
|
)
|
|
|
|
self._cache: dict[
|
|
DependencyCacheKey, list[list[DependencyPackage]]
|
|
] = collections.defaultdict(list)
|
|
self._cached_dependencies_by_level: dict[
|
|
int, list[DependencyCacheKey]
|
|
] = collections.defaultdict(list)
|
|
```
|
|
|
|
## Outputs
|
|
### Output 1
|
|
```
|
|
indent-style = space
|
|
line-width = 88
|
|
indent-width = 4
|
|
quote-style = Double
|
|
line-ending = LineFeed
|
|
magic-trailing-comma = Respect
|
|
docstring-code = Disabled
|
|
docstring-code-line-width = "dynamic"
|
|
preview = Disabled
|
|
```
|
|
|
|
```python
|
|
"""
|
|
Black's `Preview.module_docstring_newlines`
|
|
"""
|
|
first_stmt_after_module_level_docstring = 1
|
|
|
|
|
|
class CachedRepository:
|
|
# Black's `Preview.dummy_implementations`
|
|
def get_release_info(self):
|
|
...
|
|
|
|
|
|
def raw_docstring():
|
|
r"""Black's `Preview.accept_raw_docstrings`
|
|
a
|
|
b
|
|
"""
|
|
pass
|
|
|
|
|
|
def reference_docstring_newlines():
|
|
"""A regular docstring for comparison
|
|
a
|
|
b
|
|
"""
|
|
pass
|
|
|
|
|
|
class RemoveNewlineBeforeClassDocstring:
|
|
|
|
"""Black's `Preview.no_blank_line_before_class_docstring`"""
|
|
|
|
|
|
def f():
|
|
"""Black's `Preview.prefer_splitting_right_hand_side_of_assignments`"""
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
|
|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
] = cccccccc.ccccccccccccc.cccccccc
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
|
|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
] = cccccccc.ccccccccccccc().cccccccc
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
|
|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
] = cccccccc.ccccccccccccc(d).cccccccc
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc(d).cccccccc + e
|
|
)
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc + e
|
|
)
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc
|
|
+ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
|
|
)
|
|
|
|
self._cache: dict[
|
|
DependencyCacheKey, list[list[DependencyPackage]]
|
|
] = collections.defaultdict(list)
|
|
self._cached_dependencies_by_level: dict[
|
|
int, list[DependencyCacheKey]
|
|
] = collections.defaultdict(list)
|
|
```
|
|
|
|
|
|
### Output 2
|
|
```
|
|
indent-style = space
|
|
line-width = 88
|
|
indent-width = 4
|
|
quote-style = Double
|
|
line-ending = LineFeed
|
|
magic-trailing-comma = Respect
|
|
docstring-code = Disabled
|
|
docstring-code-line-width = "dynamic"
|
|
preview = Enabled
|
|
```
|
|
|
|
```python
|
|
"""
|
|
Black's `Preview.module_docstring_newlines`
|
|
"""
|
|
|
|
first_stmt_after_module_level_docstring = 1
|
|
|
|
|
|
class CachedRepository:
|
|
# Black's `Preview.dummy_implementations`
|
|
def get_release_info(self): ...
|
|
|
|
|
|
def raw_docstring():
|
|
r"""Black's `Preview.accept_raw_docstrings`
|
|
a
|
|
b
|
|
"""
|
|
pass
|
|
|
|
|
|
def reference_docstring_newlines():
|
|
"""A regular docstring for comparison
|
|
a
|
|
b
|
|
"""
|
|
pass
|
|
|
|
|
|
class RemoveNewlineBeforeClassDocstring:
|
|
"""Black's `Preview.no_blank_line_before_class_docstring`"""
|
|
|
|
|
|
def f():
|
|
"""Black's `Preview.prefer_splitting_right_hand_side_of_assignments`"""
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc
|
|
)
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc().cccccccc
|
|
)
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc(d).cccccccc
|
|
)
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc(d).cccccccc + e
|
|
)
|
|
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc + e
|
|
)
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (
|
|
cccccccc.ccccccccccccc.cccccccc
|
|
+ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
|
|
)
|
|
|
|
self._cache: dict[DependencyCacheKey, list[list[DependencyPackage]]] = (
|
|
collections.defaultdict(list)
|
|
)
|
|
self._cached_dependencies_by_level: dict[int, list[DependencyCacheKey]] = (
|
|
collections.defaultdict(list)
|
|
)
|
|
```
|
|
|
|
|
|
|