mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-01 14:21:24 +00:00
[pylint
] Do not report methods with only one EM101
-compatible raise
(PLR6301
) (#15507)
This commit is contained in:
parent
1ecb7ce645
commit
dbfdaaded1
4 changed files with 80 additions and 1 deletions
|
@ -103,3 +103,40 @@ class Foo:
|
||||||
def validate_y(self, attribute, value):
|
def validate_y(self, attribute, value):
|
||||||
if value <= 0:
|
if value <= 0:
|
||||||
raise ValueError("y must be a positive integer")
|
raise ValueError("y must be a positive integer")
|
||||||
|
|
||||||
|
|
||||||
|
class Foo:
|
||||||
|
|
||||||
|
# No errors
|
||||||
|
|
||||||
|
def string(self):
|
||||||
|
msg = ""
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
|
def fstring(self, x):
|
||||||
|
msg = f"{x}"
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
|
def docstring(self):
|
||||||
|
"""Lorem ipsum dolor sit amet."""
|
||||||
|
msg = ""
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
|
|
||||||
|
# Errors
|
||||||
|
|
||||||
|
def non_simple_assignment(self):
|
||||||
|
msg = foo = ""
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
|
def non_simple_assignment_2(self):
|
||||||
|
msg[0] = ""
|
||||||
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
|
def unused_message(self):
|
||||||
|
msg = ""
|
||||||
|
raise NotImplementedError("")
|
||||||
|
|
||||||
|
def unused_message_2(self, x):
|
||||||
|
msg = ""
|
||||||
|
raise NotImplementedError(x)
|
||||||
|
|
|
@ -359,7 +359,7 @@ fn call<'a>(
|
||||||
///
|
///
|
||||||
/// [`is_stub`]: function_type::is_stub
|
/// [`is_stub`]: function_type::is_stub
|
||||||
/// [`EM101`]: https://docs.astral.sh/ruff/rules/raw-string-in-exception/
|
/// [`EM101`]: https://docs.astral.sh/ruff/rules/raw-string-in-exception/
|
||||||
fn is_not_implemented_stub_with_variable(
|
pub(crate) fn is_not_implemented_stub_with_variable(
|
||||||
function_def: &StmtFunctionDef,
|
function_def: &StmtFunctionDef,
|
||||||
semantic: &SemanticModel,
|
semantic: &SemanticModel,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
|
|
|
@ -8,6 +8,7 @@ use ruff_python_semantic::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::checkers::ast::Checker;
|
use crate::checkers::ast::Checker;
|
||||||
|
use crate::rules::flake8_unused_arguments::rules::is_not_implemented_stub_with_variable;
|
||||||
|
|
||||||
/// ## What it does
|
/// ## What it does
|
||||||
/// Checks for the presence of unused `self` parameter in methods definitions.
|
/// Checks for the presence of unused `self` parameter in methods definitions.
|
||||||
|
@ -97,6 +98,7 @@ pub(crate) fn no_self_use(
|
||||||
|| visibility::is_overload(decorator_list, semantic)
|
|| visibility::is_overload(decorator_list, semantic)
|
||||||
|| visibility::is_property(decorator_list, extra_property_decorators, semantic)
|
|| visibility::is_property(decorator_list, extra_property_decorators, semantic)
|
||||||
|| visibility::is_validator(decorator_list, semantic)
|
|| visibility::is_validator(decorator_list, semantic)
|
||||||
|
|| is_not_implemented_stub_with_variable(func, semantic)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,3 +35,43 @@ no_self_use.py:103:9: PLR6301 Method `validate_y` could be a function, class met
|
||||||
104 | if value <= 0:
|
104 | if value <= 0:
|
||||||
105 | raise ValueError("y must be a positive integer")
|
105 | raise ValueError("y must be a positive integer")
|
||||||
|
|
|
|
||||||
|
|
||||||
|
no_self_use.py:128:9: PLR6301 Method `non_simple_assignment` could be a function, class method, or static method
|
||||||
|
|
|
||||||
|
126 | # Errors
|
||||||
|
127 |
|
||||||
|
128 | def non_simple_assignment(self):
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^ PLR6301
|
||||||
|
129 | msg = foo = ""
|
||||||
|
130 | raise NotImplementedError(msg)
|
||||||
|
|
|
||||||
|
|
||||||
|
no_self_use.py:132:9: PLR6301 Method `non_simple_assignment_2` could be a function, class method, or static method
|
||||||
|
|
|
||||||
|
130 | raise NotImplementedError(msg)
|
||||||
|
131 |
|
||||||
|
132 | def non_simple_assignment_2(self):
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^ PLR6301
|
||||||
|
133 | msg[0] = ""
|
||||||
|
134 | raise NotImplementedError(msg)
|
||||||
|
|
|
||||||
|
|
||||||
|
no_self_use.py:136:9: PLR6301 Method `unused_message` could be a function, class method, or static method
|
||||||
|
|
|
||||||
|
134 | raise NotImplementedError(msg)
|
||||||
|
135 |
|
||||||
|
136 | def unused_message(self):
|
||||||
|
| ^^^^^^^^^^^^^^ PLR6301
|
||||||
|
137 | msg = ""
|
||||||
|
138 | raise NotImplementedError("")
|
||||||
|
|
|
||||||
|
|
||||||
|
no_self_use.py:140:9: PLR6301 Method `unused_message_2` could be a function, class method, or static method
|
||||||
|
|
|
||||||
|
138 | raise NotImplementedError("")
|
||||||
|
139 |
|
||||||
|
140 | def unused_message_2(self, x):
|
||||||
|
| ^^^^^^^^^^^^^^^^ PLR6301
|
||||||
|
141 | msg = ""
|
||||||
|
142 | raise NotImplementedError(x)
|
||||||
|
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue