
* Add support to style function definitions containing newlines before function stubs * Relocated implementation for removal of newlines before function stubs with added tests for comments --------- Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
250 lines
3.3 KiB
Python
250 lines
3.3 KiB
Python
from typing import NoReturn, Protocol, Union, overload
|
|
|
|
class Empty:
|
|
...
|
|
|
|
def dummy(a): ...
|
|
async def other(b): ...
|
|
|
|
|
|
@overload
|
|
def a(arg: int) -> int: ...
|
|
@overload
|
|
def a(arg: str) -> str: ...
|
|
@overload
|
|
def a(arg: object) -> NoReturn: ...
|
|
def a(arg: Union[int, str, object]) -> Union[int, str]:
|
|
if not isinstance(arg, (int, str)):
|
|
raise TypeError
|
|
return arg
|
|
|
|
class Proto(Protocol):
|
|
def foo(self, a: int) -> int:
|
|
...
|
|
|
|
def bar(self, b: str) -> str: ...
|
|
def baz(self, c: bytes) -> str:
|
|
...
|
|
|
|
|
|
def dummy_two():
|
|
...
|
|
@dummy
|
|
def dummy_three():
|
|
...
|
|
|
|
def dummy_four():
|
|
...
|
|
|
|
@overload
|
|
def b(arg: int) -> int: ...
|
|
|
|
@overload
|
|
def b(arg: str) -> str: ...
|
|
@overload
|
|
def b(arg: object) -> NoReturn: ...
|
|
|
|
def b(arg: Union[int, str, object]) -> Union[int, str]:
|
|
if not isinstance(arg, (int, str)):
|
|
raise TypeError
|
|
return arg
|
|
|
|
def has_comment():
|
|
... # still a dummy
|
|
|
|
if some_condition:
|
|
...
|
|
|
|
if already_dummy: ...
|
|
|
|
class AsyncCls:
|
|
async def async_method(self):
|
|
...
|
|
|
|
async def async_function(self):
|
|
...
|
|
|
|
@decorated
|
|
async def async_function(self):
|
|
...
|
|
|
|
class ClassA:
|
|
def f(self):
|
|
|
|
...
|
|
|
|
|
|
class ClassB:
|
|
def f(self):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
class ClassC:
|
|
def f(self):
|
|
|
|
...
|
|
# Comment
|
|
|
|
|
|
class ClassD:
|
|
def f(self):# Comment 1
|
|
|
|
...# Comment 2
|
|
# Comment 3
|
|
|
|
|
|
class ClassE:
|
|
def f(self):
|
|
|
|
...
|
|
def f2(self):
|
|
print(10)
|
|
|
|
|
|
class ClassF:
|
|
def f(self):
|
|
|
|
...# Comment 2
|
|
|
|
|
|
class ClassG:
|
|
def f(self):#Comment 1
|
|
|
|
...# Comment 2
|
|
|
|
|
|
class ClassH:
|
|
def f(self):
|
|
#Comment
|
|
|
|
...
|
|
|
|
|
|
# output
|
|
|
|
from typing import NoReturn, Protocol, Union, overload
|
|
|
|
|
|
class Empty: ...
|
|
|
|
|
|
def dummy(a): ...
|
|
async def other(b): ...
|
|
|
|
|
|
@overload
|
|
def a(arg: int) -> int: ...
|
|
@overload
|
|
def a(arg: str) -> str: ...
|
|
@overload
|
|
def a(arg: object) -> NoReturn: ...
|
|
def a(arg: Union[int, str, object]) -> Union[int, str]:
|
|
if not isinstance(arg, (int, str)):
|
|
raise TypeError
|
|
return arg
|
|
|
|
|
|
class Proto(Protocol):
|
|
def foo(self, a: int) -> int: ...
|
|
|
|
def bar(self, b: str) -> str: ...
|
|
def baz(self, c: bytes) -> str: ...
|
|
|
|
|
|
def dummy_two(): ...
|
|
@dummy
|
|
def dummy_three(): ...
|
|
|
|
|
|
def dummy_four(): ...
|
|
|
|
|
|
@overload
|
|
def b(arg: int) -> int: ...
|
|
|
|
|
|
@overload
|
|
def b(arg: str) -> str: ...
|
|
@overload
|
|
def b(arg: object) -> NoReturn: ...
|
|
|
|
|
|
def b(arg: Union[int, str, object]) -> Union[int, str]:
|
|
if not isinstance(arg, (int, str)):
|
|
raise TypeError
|
|
return arg
|
|
|
|
|
|
def has_comment(): ... # still a dummy
|
|
|
|
|
|
if some_condition:
|
|
...
|
|
|
|
if already_dummy:
|
|
...
|
|
|
|
|
|
class AsyncCls:
|
|
async def async_method(self): ...
|
|
|
|
|
|
async def async_function(self): ...
|
|
|
|
|
|
@decorated
|
|
async def async_function(self): ...
|
|
|
|
|
|
class ClassA:
|
|
def f(self): ...
|
|
|
|
|
|
class ClassB:
|
|
def f(self): ...
|
|
|
|
|
|
class ClassC:
|
|
def f(self):
|
|
|
|
...
|
|
# Comment
|
|
|
|
|
|
class ClassD:
|
|
def f(self): # Comment 1
|
|
|
|
... # Comment 2
|
|
# Comment 3
|
|
|
|
|
|
class ClassE:
|
|
def f(self): ...
|
|
def f2(self):
|
|
print(10)
|
|
|
|
|
|
class ClassF:
|
|
def f(self): ... # Comment 2
|
|
|
|
|
|
class ClassG:
|
|
def f(self): # Comment 1
|
|
... # Comment 2
|
|
|
|
|
|
class ClassH:
|
|
def f(self):
|
|
# Comment
|
|
|
|
...
|