From 9c9f6eb6d53c4a38c46acfcffa1c90a787a72a77 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Langa?= Date: Fri, 16 Mar 2018 17:32:55 -0700 Subject: [PATCH] Remove the trailing comma if there is only one argument to a call This makes it consistent with removing the trailing comma when multiple arguments to a call fit in a single line. It also makes it a tiny bit more likely that an expression will fit a line that didn't use to. --- README.md | 5 +++++ black.py | 10 +++++++--- tests/expression.py | 10 ++++++++-- tests/function.py | 4 ++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c1fd95a..69616ff 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,11 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). ### 18.3a2 (unreleased) +* ignore empty bracket pairs while splitting. This avoids very weirdly + looking formattings (#34, #35) + +* remove a trailing comma if there is a single argument to a call + * fixed missing space in numpy-style array indexing (#33) * fixed spurious space after star-based unary expressions (#31) diff --git a/black.py b/black.py index b343da7..27691dd 100644 --- a/black.py +++ b/black.py @@ -508,6 +508,10 @@ class Line: bracket_depth = leaf.bracket_depth if bracket_depth == depth and leaf.type == token.COMMA: commas += 1 + if leaf.parent and leaf.parent.type == syms.arglist: + commas += 1 + break + if commas > 1: self.leaves.pop() return True @@ -1480,7 +1484,7 @@ def assert_equivalent(src: str, dst: str) -> None: raise AssertionError( f"INTERNAL ERROR: Black produced invalid code: {exc}. " f"Please report a bug on https://github.com/ambv/black/issues. " - f"This invalid output might be helpful: {log}", + f"This invalid output might be helpful: {log}" ) from None src_ast_str = '\n'.join(_v(src_ast)) @@ -1491,7 +1495,7 @@ def assert_equivalent(src: str, dst: str) -> None: f"INTERNAL ERROR: Black produced code that is not equivalent to " f"the source. " f"Please report a bug on https://github.com/ambv/black/issues. " - f"This diff might be helpful: {log}", + f"This diff might be helpful: {log}" ) from None @@ -1510,7 +1514,7 @@ def assert_stable(src: str, dst: str, line_length: int) -> None: f"INTERNAL ERROR: Black produced different code on the second pass " f"of the formatter. " f"Please report a bug on https://github.com/ambv/black/issues. " - f"This diff might be helpful: {log}", + f"This diff might be helpful: {log}" ) from None diff --git a/tests/expression.py b/tests/expression.py index 2e7f275..e7054e3 100644 --- a/tests/expression.py +++ b/tests/expression.py @@ -106,15 +106,15 @@ a = (1,) b = 1, c = 1 d = (1,) + a + (2,) +e = (1,).count(1) what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove) what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove) - +result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all() def gen(): yield from outside_of_generator a = (yield) - async def f(): await some.complicated[0].call(with_args=(True or (1 is not 1))) @@ -239,12 +239,18 @@ a = (1,) b = 1, c = 1 d = (1,) + a + (2,) +e = (1,).count(1) what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set( vars_to_remove ) what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set( vars_to_remove ) +result = session.query(models.Customer.id).filter( + models.Customer.account_id == account_id, models.Customer.email == email_address +).order_by( + models.Customer.id.asc() +).all() def gen(): diff --git a/tests/function.py b/tests/function.py index 29de408..7fa6866 100644 --- a/tests/function.py +++ b/tests/function.py @@ -37,7 +37,7 @@ def example(session): models.Customer.account_id == account_id, models.Customer.email == email_address, ).order_by( - models.Customer.id.asc(), + models.Customer.id.asc() ).all() def long_lines(): if True: @@ -129,7 +129,7 @@ def example(session): result = session.query(models.Customer.id).filter( models.Customer.account_id == account_id, models.Customer.email == email_address ).order_by( - models.Customer.id.asc(), + models.Customer.id.asc() ).all() -- 2.39.5