Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
lpar, *args, rpar = arglist
args = args[0].args if args else []
# If the trailing argument doesn't have a comma, then it owns the
# trailing whitespace before the rpar. Otherwise, the comma owns
# it.
if len(args) > 0 and args[-1].comma == MaybeSentinel.DEFAULT:
args[-1] = args[-1].with_changes(
whitespace_after_arg=parse_parenthesizable_whitespace(
config, rpar.whitespace_before
)
)
decoratornode = Call(
func=name,
whitespace_after_func=parse_simple_whitespace(
config, lpar.whitespace_before
),
whitespace_before_args=parse_parenthesizable_whitespace(
config, lpar.whitespace_after
),
args=tuple(args),
)
return Decorator(
leading_lines=parse_empty_lines(config, atsign.whitespace_before),
whitespace_after_at=parse_simple_whitespace(config, atsign.whitespace_after),
decorator=decoratornode,
trailing_whitespace=newline,
)
whitespace_before_colon=parse_simple_whitespace(
config, colon_token.whitespace_before
),
body=suite,
)
else:
raise Exception("Logic error!")
elif isinstance(clause, ExceptClausePartial):
handlers.append(
ExceptHandler(
body=suite,
type=clause.type,
name=clause.name,
leading_lines=clause.leading_lines,
whitespace_after_except=clause.whitespace_after_except,
whitespace_before_colon=parse_simple_whitespace(
config, colon_token.whitespace_before
),
)
)
else:
raise Exception("Logic error!")
return Try(
leading_lines=parse_empty_lines(config, trytoken.whitespace_before),
whitespace_before_colon=parse_simple_whitespace(
config, try_colon_token.whitespace_before
),
body=try_suite,
handlers=tuple(handlers),
orelse=orelse,
finalbody=finalbody,
def convert_assign(config: ParserConfig, children: Sequence[Any]) -> Any:
equal, expr = children
return AssignPartial(
equal=AssignEqual(
whitespace_before=parse_simple_whitespace(config, equal.whitespace_before),
whitespace_after=parse_simple_whitespace(config, equal.whitespace_after),
),
value=expr.value,
)
def convert_assign(config: ParserConfig, children: Sequence[Any]) -> Any:
equal, expr = children
return AssignPartial(
equal=AssignEqual(
whitespace_before=parse_simple_whitespace(config, equal.whitespace_before),
whitespace_after=parse_simple_whitespace(config, equal.whitespace_after),
),
value=expr.value,
)
def _construct_nameitems(config: ParserConfig, names: Sequence[Any]) -> List[NameItem]:
nameitems: List[NameItem] = []
for name, maybe_comma in grouper(names, 2):
if maybe_comma is None:
nameitems.append(NameItem(Name(name.string)))
else:
nameitems.append(
NameItem(
Name(name.string),
comma=Comma(
whitespace_before=parse_simple_whitespace(
config, maybe_comma.whitespace_before
),
whitespace_after=parse_simple_whitespace(
config, maybe_comma.whitespace_after
),
),
)
)
return nameitems
def convert_del_stmt(config: ParserConfig, children: Sequence[Any]) -> Any:
(del_name, exprlist) = children
return WithLeadingWhitespace(
Del(
target=exprlist.value,
whitespace_after_del=parse_simple_whitespace(
config, del_name.whitespace_after
),
),
del_name.whitespace_before,
)
assert_node = Assert(
whitespace_after_assert=parse_simple_whitespace(
config, test.whitespace_before
),
test=test.value,
msg=None,
)
else:
(assert_token, test, comma_token, msg) = children
assert_node = Assert(
whitespace_after_assert=parse_simple_whitespace(
config, test.whitespace_before
),
test=test.value,
comma=Comma(
whitespace_before=parse_simple_whitespace(
config, comma_token.whitespace_before
),
whitespace_after=parse_simple_whitespace(config, msg.whitespace_before),
),
msg=msg.value,
)
return WithLeadingWhitespace(assert_node, assert_token.whitespace_before)
)
decoratornode = Call(
func=name,
whitespace_after_func=parse_simple_whitespace(
config, lpar.whitespace_before
),
whitespace_before_args=parse_parenthesizable_whitespace(
config, lpar.whitespace_after
),
args=tuple(args),
)
return Decorator(
leading_lines=parse_empty_lines(config, atsign.whitespace_before),
whitespace_after_at=parse_simple_whitespace(config, atsign.whitespace_after),
decorator=decoratornode,
trailing_whitespace=newline,
)
def convert_simple_stmt_suite(config: ParserConfig, children: Sequence[Any]) -> Any:
"""
This function is similar to convert_simple_stmt_line, but yields a different type
"""
(partial,) = children
return SimpleStatementSuite(
partial.body,
leading_whitespace=parse_simple_whitespace(config, partial.whitespace_before),
trailing_whitespace=partial.trailing_whitespace,
)
config, rpartoken.whitespace_before
)
)
# If we have a relative-only import, then we need to relocate the space
# after the final dot to be owned by the import token.
if len(import_relative.relative) > 0 and import_relative.module is None:
whitespace_before_import = import_relative.relative[-1].whitespace_after
relative = (
*import_relative.relative[:-1],
import_relative.relative[-1].with_changes(
whitespace_after=SimpleWhitespace("")
),
)
else:
whitespace_before_import = parse_simple_whitespace(
config, importtoken.whitespace_before
)
relative = import_relative.relative
return WithLeadingWhitespace(
ImportFrom(
whitespace_after_from=parse_simple_whitespace(
config, fromtoken.whitespace_after
),
relative=relative,
module=import_relative.module,
whitespace_before_import=whitespace_before_import,
whitespace_after_import=parse_simple_whitespace(
config, importtoken.whitespace_after
),
lpar=lpar,