Skip to content

Commit

Permalink
[pylint] Also emit PLR0206 for properties with variadic parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexWaygood committed Apr 29, 2024
1 parent 87929ad commit e63c645
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,13 @@ def example(self):
@abstractmethod
def example(self, value):
"""Setter."""


class VariadicParameters:
@property
def attribute_var_args(self, *args): # [property-with-parameters]
return sum(args)

@property
def attribute_var_kwargs(self, **kwargs): #[property-with-parameters]
return {key: value * 2 for key, value in kwargs.items()}
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,13 @@ pub(crate) fn property_with_parameters(
decorator_list: &[Decorator],
parameters: &Parameters,
) {
let semantic = checker.semantic();
if !decorator_list
.iter()
.any(|decorator| semantic.match_builtin_expr(&decorator.expression, "property"))
{
if parameters.len() <= 1 {
return;
}
if parameters
.posonlyargs
let semantic = checker.semantic();
if decorator_list
.iter()
.chain(&parameters.args)
.chain(&parameters.kwonlyargs)
.count()
> 1
.any(|decorator| semantic.match_builtin_expr(&decorator.expression, "property"))
{
checker
.diagnostics
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,19 @@ property_with_parameters.py:15:9: PLR0206 Cannot have defined parameters for pro
16 | return param + param1
|

property_with_parameters.py:35:9: PLR0206 Cannot have defined parameters for properties
|
33 | class VariadicParameters:
34 | @property
35 | def attribute_var_args(self, *args): # [property-with-parameters]
| ^^^^^^^^^^^^^^^^^^ PLR0206
36 | return sum(args)
|

property_with_parameters.py:39:9: PLR0206 Cannot have defined parameters for properties
|
38 | @property
39 | def attribute_var_kwargs(self, **kwargs): #[property-with-parameters]
| ^^^^^^^^^^^^^^^^^^^^ PLR0206
40 | return {key: value * 2 for key, value in kwargs.items()}
|

0 comments on commit e63c645

Please sign in to comment.