mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-06 16:40:39 +00:00
Avoid triggering PD errors on method calls (#1537)
This commit is contained in:
parent
65c34c56d6
commit
2cf6d05586
4 changed files with 7 additions and 9 deletions
3
foo.py
3
foo.py
|
@ -1,3 +0,0 @@
|
||||||
import mock.mock
|
|
||||||
|
|
||||||
x = mock.mock.Mock()
|
|
|
@ -1629,6 +1629,11 @@ where
|
||||||
] {
|
] {
|
||||||
if self.settings.enabled.contains(&code) {
|
if self.settings.enabled.contains(&code) {
|
||||||
if attr == name {
|
if attr == name {
|
||||||
|
if let Some(parent) = self.current_expr_parent() {
|
||||||
|
if matches!(parent.0.node, ExprKind::Call { .. }) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
self.add_check(Check::new(code.kind(), Range::from_located(expr)));
|
self.add_check(Check::new(code.kind(), Range::from_located(expr)));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,8 +81,7 @@ mod tests {
|
||||||
#[test_case("result = df.to_array()", &[]; "PD011_pass_to_array")]
|
#[test_case("result = df.to_array()", &[]; "PD011_pass_to_array")]
|
||||||
#[test_case("result = df.array", &[]; "PD011_pass_array")]
|
#[test_case("result = df.array", &[]; "PD011_pass_array")]
|
||||||
#[test_case("result = df.values", &[CheckCode::PD011]; "PD011_fail_values")]
|
#[test_case("result = df.values", &[CheckCode::PD011]; "PD011_fail_values")]
|
||||||
// TODO(edgarrmondragon): Check that the attribute access is NOT a method call.
|
#[test_case("result = {}.values()", &[]; "PD011_pass_values_call")]
|
||||||
// #[test_case("result = {}.values()", &[]; "PD011_pass_values_call")]
|
|
||||||
#[test_case("result = values", &[]; "PD011_pass_node_name")]
|
#[test_case("result = values", &[]; "PD011_pass_node_name")]
|
||||||
#[test_case("employees = pd.read_csv(input_file)", &[]; "PD012_pass_read_csv")]
|
#[test_case("employees = pd.read_csv(input_file)", &[]; "PD012_pass_read_csv")]
|
||||||
#[test_case("employees = pd.read_table(input_file)", &[CheckCode::PD012]; "PD012_fail_read_table")]
|
#[test_case("employees = pd.read_table(input_file)", &[CheckCode::PD012]; "PD012_fail_read_table")]
|
||||||
|
|
|
@ -17,10 +17,7 @@ fn contains_await(expr: &Expr) -> bool {
|
||||||
ExprKind::IfExp { test, body, orelse } => {
|
ExprKind::IfExp { test, body, orelse } => {
|
||||||
contains_await(test) || contains_await(body) || contains_await(orelse)
|
contains_await(test) || contains_await(body) || contains_await(orelse)
|
||||||
}
|
}
|
||||||
ExprKind::Dict { keys, values } => keys
|
ExprKind::Dict { keys, values } => keys.iter().chain(values.iter()).any(contains_await),
|
||||||
.iter()
|
|
||||||
.chain(values.iter())
|
|
||||||
.any(contains_await),
|
|
||||||
ExprKind::Set { elts } => elts.iter().any(contains_await),
|
ExprKind::Set { elts } => elts.iter().any(contains_await),
|
||||||
ExprKind::ListComp { elt, .. } => contains_await(elt),
|
ExprKind::ListComp { elt, .. } => contains_await(elt),
|
||||||
ExprKind::SetComp { elt, .. } => contains_await(elt),
|
ExprKind::SetComp { elt, .. } => contains_await(elt),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue