* automatic detection of deprecated Python 2 forms of print statements
and exec statements in the formatted file (#49)
+* use proper spaces for complex expressions in default values of typed
+ function arguments (#60)
+
* only return exit code 1 when --check is used (#50)
* don't remove single trailing commas from square bracket indexing
"""Returns True if there is an yet unmatched open bracket on the line."""
return bool(self.bracket_match)
- def max_priority(self, exclude: Iterable[LeafID] =()) -> int:
+ def max_priority(self, exclude: Iterable[LeafID] = ()) -> int:
"""Returns the highest priority of a delimiter found on the line.
Values are consistent with what `is_delimiter()` returns.
return SPACE if prevp.type == token.COMMA else NO
if prevp.type == token.EQUAL:
- if prevp.parent and prevp.parent.type in {
- syms.arglist,
- syms.argument,
- syms.parameters,
- syms.typedargslist,
- syms.varargslist,
- }:
- return NO
+ if prevp.parent:
+ if prevp.parent.type in {
+ syms.arglist, syms.argument, syms.parameters, syms.varargslist
+ }:
+ return NO
+
+ elif prevp.parent.type == syms.typedargslist:
+ # A bit hacky: if the equal sign has whitespace, it means we
+ # previously found it's a typed argument. So, we're using
+ # that, too.
+ return prevp.prefix
elif prevp.type == token.DOUBLESTAR:
if prevp.parent and prevp.parent.type in {
if not prev or prev.type != token.COMMA:
return NO
- if p.type == syms.varargslist:
+ elif p.type == syms.varargslist:
# lambdas
if t == token.RPAR:
return NO
def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r''):
offset = attr.ib(default=attr.Factory( lambda: _r.uniform(10000, 200000)))
assert task._cancel_stack[:len(old_stack)] == old_stack
+def spaces_types(a: int = 1, b: tuple = (), c: list = [], d: dict = {}, e: bool = True, f: int = -1, g: int = 1 if False else 2, h: str = "", i: str = r''): ...
def spaces2(result= _core.Value(None)):
...
def example(session):
assert task._cancel_stack[:len(old_stack)] == old_stack
+def spaces_types(
+ a: int = 1,
+ b: tuple = (),
+ c: list = [],
+ d: dict = {},
+ e: bool = True,
+ f: int = -1,
+ g: int = 1 if False else 2,
+ h: str = "",
+ i: str = r'',
+):
+ ...
+
+
def spaces2(result=_core.Value(None)):
...