Merge branch 'brent/fix-kwargs' into brent/indent-lambda-params

This commit is contained in:
Brent Westbrook 2025-12-09 15:42:05 -05:00
commit 65c943568c
No known key found for this signature in database
3 changed files with 88 additions and 0 deletions

View File

@ -725,3 +725,25 @@ transform = lambda left, right: ibis.timestamp("2017-04-01").cast(dt.date).betwe
x: x:
x x
) )
(
lambda
# comment
*x,
**y: x
)
(
lambda
* # comment 2
x,
**y:
x
)
(
lambda
** # comment 1
x:
x
)

View File

@ -241,6 +241,32 @@ impl FormatNodeRule<Parameters> for FormatParameters {
let num_parameters = item.len(); let num_parameters = item.len();
if self.parentheses == ParametersParentheses::Never { if self.parentheses == ParametersParentheses::Never {
// In a lambda, format any leading comments on the first parameter outside of the
// parameters group so that the parameters don't break. For example, format this input:
//
// ```py
// (
// lambda
// * # this becomes a leading comment on *x
// x, **y:
// x
// )
// ```
//
// as:
//
// ```py
// (
// lambda
// # this becomes a leading comment on *x
// *x, **y: x
// )
// ```
if let Some(first) = item.iter().next()
&& comments.has_leading(first.as_parameter())
{
leading_node_comments(first.as_parameter()).fmt(f)?;
}
write!(f, [group(&format_inner), dangling_comments(dangling)]) write!(f, [group(&format_inner), dangling_comments(dangling)])
} else if num_parameters == 0 { } else if num_parameters == 0 {
let mut f = WithNodeLevel::new(NodeLevel::ParenthesizedExpression, f); let mut f = WithNodeLevel::new(NodeLevel::ParenthesizedExpression, f);

View File

@ -731,6 +731,28 @@ transform = lambda left, right: ibis.timestamp("2017-04-01").cast(dt.date).betwe
x: x:
x x
) )
(
lambda
# comment
*x,
**y: x
)
(
lambda
* # comment 2
x,
**y:
x
)
(
lambda
** # comment 1
x:
x
)
``` ```
## Output ## Output
@ -1495,6 +1517,24 @@ transform = (
y, *x: # comment 2 y, *x: # comment 2
x x
) )
(
lambda
# comment
*x, **y: x
)
(
lambda
# comment 2
*x, **y: x
)
(
lambda
# comment 1
**x: x
)
``` ```