mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 10:48:32 +00:00
Add dangling comment handling to dictionary key-value pairs (#7495)
## Summary This PR fixes a formatting instability by changing the comment handling around the `:` in a dictionary to mirror that of the `:` in a lambda: we treat comments around the `:` as dangling, then format them after the `:`. Closes https://github.com/astral-sh/ruff/issues/7458. ## Test Plan `cargo test` No change in similarity. Before: | project | similarity index | total files | changed files | |--------------|------------------:|------------------:|------------------:| | cpython | 0.76083 | 1789 | 1631 | | django | 0.99983 | 2760 | 36 | | transformers | 0.99956 | 2587 | 404 | | twine | 1.00000 | 33 | 0 | | typeshed | 0.99983 | 3496 | 18 | | warehouse | 0.99929 | 648 | 16 | | zulip | 0.99969 | 1437 | 21 | After: | project | similarity index | total files | changed files | |--------------|------------------:|------------------:|------------------:| | cpython | 0.76083 | 1789 | 1631 | | django | 0.99983 | 2760 | 36 | | transformers | 0.99956 | 2587 | 404 | | twine | 1.00000 | 33 | 0 | | typeshed | 0.99983 | 3496 | 18 | | warehouse | 0.99929 | 648 | 16 | | zulip | 0.99969 | 1437 | 21 |
This commit is contained in:
parent
b792140579
commit
e07670ad97
7 changed files with 567 additions and 77 deletions
|
@ -65,13 +65,88 @@ a = {
|
|||
|
||||
x={ # dangling end of line comment
|
||||
}
|
||||
|
||||
# Comments between keys and values.
|
||||
query = {
|
||||
"must":
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
],
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": # queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
],
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": (
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": ( # queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": (
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
"must" # queries => map(pluck("fragment")) => flatten()
|
||||
) : [
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
"must"
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
) : [
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Output
|
||||
```py
|
||||
# before
|
||||
{ # open
|
||||
key: value # key # colon # value
|
||||
key: # key
|
||||
# colon
|
||||
value # value
|
||||
} # close
|
||||
# after
|
||||
|
||||
|
@ -135,6 +210,51 @@ a = {
|
|||
|
||||
x = { # dangling end of line comment
|
||||
}
|
||||
|
||||
# Comments between keys and values.
|
||||
query = {
|
||||
"must":
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]],
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": # queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]],
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": (
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
)
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": ( # queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
)
|
||||
}
|
||||
|
||||
query = {
|
||||
"must": (
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
)
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
"must" # queries => map(pluck("fragment")) => flatten()
|
||||
): [clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
"must"
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
): [clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
|
|
@ -115,6 +115,74 @@ a = {
|
|||
aaaaaaaaaaaaaaaaaaaaa = {
|
||||
k: o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||
}
|
||||
|
||||
# Comments between keys and values.
|
||||
query = {
|
||||
key:
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
key: # queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
key: (
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
)
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
key: ( # queries => map(pluck("fragment")) => flatten()
|
||||
[
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
)
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
key
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
): [
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
key # queries => map(pluck("fragment")) => flatten()
|
||||
): [
|
||||
clause
|
||||
for kf_pair in queries
|
||||
for clause in kf_pair["fragment"]
|
||||
]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
```
|
||||
|
||||
## Output
|
||||
|
@ -290,6 +358,50 @@ a = {
|
|||
aaaaaaaaaaaaaaaaaaaaa = {
|
||||
k: o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||
}
|
||||
|
||||
# Comments between keys and values.
|
||||
query = {
|
||||
key:
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
key: # queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
key: (
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
)
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
key: ( # queries => map(pluck("fragment")) => flatten()
|
||||
[clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
)
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
key
|
||||
# queries => map(pluck("fragment")) => flatten()
|
||||
): [clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
|
||||
query = {
|
||||
(
|
||||
key # queries => map(pluck("fragment")) => flatten()
|
||||
): [clause for kf_pair in queries for clause in kf_pair["fragment"]]
|
||||
for key, queries in self._filters.items()
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue