Skip to content

Commit

Permalink
Fix "# pyright: ignore" comment mobility
Browse files Browse the repository at this point in the history
  • Loading branch information
etripier committed Apr 26, 2023
1 parent de65741 commit 03600c9
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 1 deletion.
3 changes: 3 additions & 0 deletions CHANGES.md
Expand Up @@ -14,6 +14,9 @@

<!-- Changes that affect Black's preview style -->

- Black now avoids breaking up lines containing a comment beginning with "# pyright:
ignore". (#3661)

### Configuration

<!-- Changes to how Black can be configured -->
Expand Down
4 changes: 3 additions & 1 deletion src/black/nodes.py
Expand Up @@ -821,7 +821,9 @@ def is_type_comment(leaf: Leaf, suffix: str = "") -> bool:
Only returns true for type comments for now."""
t = leaf.type
v = leaf.value
return t in {token.COMMENT, STANDALONE_COMMENT} and v.startswith("# type:" + suffix)
return t in {token.COMMENT, STANDALONE_COMMENT} and (
v.startswith(f"# pyright:{suffix}") or v.startswith(f"# type:{suffix}")
)


def wrap_in_parentheses(parent: Node, child: LN, *, visible: bool = True) -> None:
Expand Down
1 change: 1 addition & 0 deletions tests/data/preview/comments7.py
Expand Up @@ -187,6 +187,7 @@ def func():
0.0789,
a[-1], # type: ignore
)
c = call(0.0123, 0.0456, 0.0789, 0.0123, 0.0789, a[-1]) # pyright: ignore[reportGeneralTypeIssues]
c = call(0.0123, 0.0456, 0.0789, 0.0123, 0.0789, a[-1]) # type: ignore
c = call(
0.0123,
Expand Down
14 changes: 14 additions & 0 deletions tests/data/preview/prefer_rhs_split.py
Expand Up @@ -55,6 +55,20 @@
)


# Make sure unsplittable pyright: ignore comments won't be moved.
some_kind_of_table[some_key] = util.some_function( # pyright: ignore[reportGeneralTypeIssues] # noqa: E501
some_arg
).intersection(pk_cols)

some_kind_of_table[
some_key
] = lambda obj: obj.some_long_named_method() # pyright: ignore[reportGeneralTypeIssues] # noqa: E501

some_kind_of_table[
some_key # pyright: ignore[reportGeneralTypeIssues] # noqa: E501
] = lambda obj: obj.some_long_named_method()


# Make sure unsplittable type ignore won't be moved.
some_kind_of_table[some_key] = util.some_function( # type: ignore # noqa: E501
some_arg
Expand Down
26 changes: 26 additions & 0 deletions tests/data/simple_cases/comments6.py
Expand Up @@ -86,6 +86,19 @@ def f(
def func(
a=some_list[0], # type: int
): # type: () -> int
c = call(
0.0123,
0.0456,
0.0789,
0.0123,
0.0456,
0.0789,
0.0123,
0.0456,
0.0789,
a[-1], # pyright: ignore[reportGeneralTypeIssues]
)

c = call(
0.0123,
0.0456,
Expand All @@ -99,6 +112,10 @@ def func(
a[-1], # type: ignore
)

c = call(
"aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa" # pyright: ignore[reportGeneralTypeIssues]
)

c = call(
"aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa" # type: ignore
)
Expand All @@ -108,11 +125,20 @@ def func(
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

AAAAAAAAAAAAA = [AAAAAAAAAAAAA] + SHARED_AAAAAAAAAAAAA + USER_AAAAAAAAAAAAA + AAAAAAAAAAAAA # pyright: ignore[reportGeneralTypeIssues]

AAAAAAAAAAAAA = [AAAAAAAAAAAAA] + SHARED_AAAAAAAAAAAAA + USER_AAAAAAAAAAAAA + AAAAAAAAAAAAA # type: ignore

call_to_some_function_asdf(
foo,
[AAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAAAAAAAAA, BBBBBBBBBBBB], # pyright: ignore[reportGeneralTypeIssues]
)

call_to_some_function_asdf(
foo,
[AAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAAAAAAAAA, BBBBBBBBBBBB], # type: ignore
)

aaaaaaaaaaaaa, bbbbbbbbb = map(list, map(itertools.chain.from_iterable, zip(*items))) # pyright: ignore[reportGeneralTypeIssues]

aaaaaaaaaaaaa, bbbbbbbbb = map(list, map(itertools.chain.from_iterable, zip(*items))) # type: ignore[arg-type]

0 comments on commit 03600c9

Please sign in to comment.