Skip to content

Commit

Permalink
Split tuples in return positions by comma first
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaReiser committed Oct 27, 2023
1 parent e2b5c6a commit 303e301
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,35 @@
len(node.parents) for node in self.node_map.values()
)
)

# Regression tests for https://github.com/astral-sh/ruff/issues/8042
def f():
return (
self.get_filename() + ".csv" +
"text/csv" +
output.getvalue().encode("utf-8----------------"),
)


def f():
return (
self.get_filename() + ".csv" + "text/csv",
output.getvalue().encode("utf-8----------------")
)

def f():
return (
self.get_filename() + ".csv",
"text/csv",
output.getvalue().encode("utf-8----------------")
)


def f():
return self.get_filename() + ".csv" + "text/csv" + output.getvalue().encode("utf-8----------------"),

def f():
return self.get_filename() + ".csv" + "text/csv", output.getvalue().encode("utf-8----------------")

def f():
return self.get_filename() + ".csv", "text/csv", output.getvalue().encode("utf-8----------------")
7 changes: 5 additions & 2 deletions crates/ruff_python_formatter/src/expression/expr_tuple.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,13 @@ impl FormatNodeRule<ExprTuple> for FormatExprTuple {
.finish()
}
TupleParentheses::Preserve => group(&ExprSequence::new(item)).fmt(f),
TupleParentheses::NeverPreserve | TupleParentheses::OptionalParentheses => {
TupleParentheses::NeverPreserve => {
optional_parentheses(&ExprSequence::new(item)).fmt(f)
}
TupleParentheses::Default => {
TupleParentheses::OptionalParentheses if item.elts.len() == 2 => {
optional_parentheses(&ExprSequence::new(item)).fmt(f)
}
TupleParentheses::Default | TupleParentheses::OptionalParentheses => {
parenthesize_if_expands(&ExprSequence::new(item)).fmt(f)
}
},
Expand Down
11 changes: 4 additions & 7 deletions crates/ruff_python_formatter/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -206,13 +206,10 @@ if True:
#[test]
fn quick_test() {
let source = r#"
def main() -> None:
if True:
some_very_long_variable_name_abcdefghijk = Foo()
some_very_long_variable_name_abcdefghijk = some_very_long_variable_name_abcdefghijk[
some_very_long_variable_name_abcdefghijk.some_very_long_attribute_name
== "This is a very long string abcdefghijk"
]
if True:
return await a and b and bbbbb, ccc, len(
self.cddddddddddddeeeeeeeaaafffffffgggggghhhhiiiiikkkkllllmmmmmnn
)
"#;
let source_type = PySourceType::Python;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,38 @@ return (
len(node.parents) for node in self.node_map.values()
)
)
# Regression tests for https://github.com/astral-sh/ruff/issues/8042
def f():
return (
self.get_filename() + ".csv" +
"text/csv" +
output.getvalue().encode("utf-8----------------"),
)
def f():
return (
self.get_filename() + ".csv" + "text/csv",
output.getvalue().encode("utf-8----------------")
)
def f():
return (
self.get_filename() + ".csv",
"text/csv",
output.getvalue().encode("utf-8----------------")
)
def f():
return self.get_filename() + ".csv" + "text/csv" + output.getvalue().encode("utf-8----------------"),
def f():
return self.get_filename() + ".csv" + "text/csv", output.getvalue().encode("utf-8----------------")
def f():
return self.get_filename() + ".csv", "text/csv", output.getvalue().encode("utf-8----------------")
```

## Output
Expand All @@ -38,6 +70,54 @@ return (
len(self.nodeseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee),
sum(len(node.parents) for node in self.node_map.values()),
)
# Regression tests for https://github.com/astral-sh/ruff/issues/8042
def f():
return (
self.get_filename()
+ ".csv"
+ "text/csv"
+ output.getvalue().encode("utf-8----------------"),
)
def f():
return (
self.get_filename() + ".csv" + "text/csv",
output.getvalue().encode("utf-8----------------"),
)
def f():
return (
self.get_filename() + ".csv",
"text/csv",
output.getvalue().encode("utf-8----------------"),
)
def f():
return (
self.get_filename()
+ ".csv"
+ "text/csv"
+ output.getvalue().encode("utf-8----------------"),
)
def f():
return self.get_filename() + ".csv" + "text/csv", output.getvalue().encode(
"utf-8----------------"
)
def f():
return (
self.get_filename() + ".csv",
"text/csv",
output.getvalue().encode("utf-8----------------"),
)
```


Expand Down

0 comments on commit 303e301

Please sign in to comment.