summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--astroid/brain/brain_numpy_utils.py11
-rw-r--r--astroid/modutils.py6
-rw-r--r--astroid/nodes/node_classes.py17
-rw-r--r--astroid/nodes/node_ng.py7
-rw-r--r--astroid/nodes/scoped_nodes.py6
-rw-r--r--pylintrc4
-rw-r--r--requirements_test_pre_commit.txt2
-rw-r--r--tests/unittest_brain.py5
-rw-r--r--tests/unittest_inference.py2
-rw-r--r--tests/unittest_nodes.py4
10 files changed, 24 insertions, 40 deletions
diff --git a/astroid/brain/brain_numpy_utils.py b/astroid/brain/brain_numpy_utils.py
index 97c88e3f..96713850 100644
--- a/astroid/brain/brain_numpy_utils.py
+++ b/astroid/brain/brain_numpy_utils.py
@@ -59,13 +59,10 @@ def _is_a_numpy_module(node: Name) -> bool:
potential_import_target = [
x for x in node.lookup(module_nickname)[1] if isinstance(x, Import)
]
- for target in potential_import_target:
- if ("numpy", module_nickname) in target.names or (
- "numpy",
- None,
- ) in target.names:
- return True
- return False
+ return any(
+ ("numpy", module_nickname) in target.names or ("numpy", None) in target.names
+ for target in potential_import_target
+ )
def looks_like_numpy_member(member_name: str, node: NodeNG) -> bool:
diff --git a/astroid/modutils.py b/astroid/modutils.py
index e39c6813..ef8b39da 100644
--- a/astroid/modutils.py
+++ b/astroid/modutils.py
@@ -555,10 +555,8 @@ def is_standard_module(modname, std_path=None):
return False
if std_path is None:
std_path = STD_LIB_DIRS
- for path in std_path:
- if filename.startswith(_cache_normalize_path(path)):
- return True
- return False
+
+ return any(filename.startswith(_cache_normalize_path(path)) for path in std_path)
def is_relative(modname, from_file):
diff --git a/astroid/nodes/node_classes.py b/astroid/nodes/node_classes.py
index 52698943..295f7d8c 100644
--- a/astroid/nodes/node_classes.py
+++ b/astroid/nodes/node_classes.py
@@ -2759,10 +2759,7 @@ class ExceptHandler(mixins.MultiLineBlockMixin, mixins.AssignTypeMixin, Statemen
"""
if self.type is None or exceptions is None:
return True
- for node in self.type._get_name_nodes():
- if node.name in exceptions:
- return True
- return False
+ return any(node.name in exceptions for node in self.type._get_name_nodes())
class ExtSlice(NodeNG):
@@ -3724,10 +3721,9 @@ class Raise(Statement):
"""
if not self.exc:
return False
- for name in self.exc._get_name_nodes():
- if name.name == "NotImplementedError":
- return True
- return False
+ return any(
+ name.name == "NotImplementedError" for name in self.exc._get_name_nodes()
+ )
def get_children(self):
if self.exc is not None:
@@ -5571,10 +5567,7 @@ def const_factory(value):
def is_from_decorator(node):
"""Return True if the given node is the child of a decorator"""
- for parent in node.node_ancestors():
- if isinstance(parent, Decorators):
- return True
- return False
+ return any(isinstance(parent, Decorators) for parent in node.node_ancestors())
def _get_if_statement_ancestor(node: NodeNG) -> Optional[If]:
diff --git a/astroid/nodes/node_ng.py b/astroid/nodes/node_ng.py
index 85df0cc5..b871aa88 100644
--- a/astroid/nodes/node_ng.py
+++ b/astroid/nodes/node_ng.py
@@ -276,10 +276,7 @@ class NodeNG:
False otherwise.
:rtype: bool
"""
- for parent in node.node_ancestors():
- if self is parent:
- return True
- return False
+ return any(self is parent for parent in node.node_ancestors())
@overload
def statement(
@@ -448,7 +445,7 @@ class NodeNG:
We need this method since not all nodes have :attr:`lineno` set.
"""
line = self.lineno
- _node: Optional[NodeNG] = self
+ _node: Optional[NodeNG] = self # pylint: disable = used-before-assignment
try:
while line is None:
_node = next(_node.get_children())
diff --git a/astroid/nodes/scoped_nodes.py b/astroid/nodes/scoped_nodes.py
index 46aca3d3..25824d98 100644
--- a/astroid/nodes/scoped_nodes.py
+++ b/astroid/nodes/scoped_nodes.py
@@ -2398,10 +2398,8 @@ class ClassDef(mixins.FilterStmtsMixin, LocalsDictNodeNG, node_classes.Statement
"""
if self.qname() == type_name:
return True
- for anc in self.ancestors(context=context):
- if anc.qname() == type_name:
- return True
- return False
+
+ return any(anc.qname() == type_name for anc in self.ancestors(context=context))
def _infer_type_call(self, caller, context):
try:
diff --git a/pylintrc b/pylintrc
index e7f44bf1..2644057c 100644
--- a/pylintrc
+++ b/pylintrc
@@ -28,6 +28,7 @@ load-plugins=
pylint.extensions.code_style,
pylint.extensions.set_membership,
pylint.extensions.redefined_variable_type,
+ pylint.extensions.for_any_all,
# Use multiple processes to speed up Pylint.
jobs=1
@@ -300,6 +301,9 @@ ignored-modules=typed_ast.ast3
# (useful for classes with attributes dynamically set).
ignored-classes=SQLObject
+# Regex pattern to define which classes are considered mixins.
+mixin-class-rgx=.*Mix[i|I]n
+
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed. Python regular
# expressions are accepted.
diff --git a/requirements_test_pre_commit.txt b/requirements_test_pre_commit.txt
index 21b92f62..c5ab3d58 100644
--- a/requirements_test_pre_commit.txt
+++ b/requirements_test_pre_commit.txt
@@ -1,5 +1,5 @@
black==21.7b0
-pylint==2.11.1
+pylint==2.12.1
isort==5.9.2
flake8==4.0.1
flake8-typing-imports==1.11.0
diff --git a/tests/unittest_brain.py b/tests/unittest_brain.py
index f2e15eca..ab009715 100644
--- a/tests/unittest_brain.py
+++ b/tests/unittest_brain.py
@@ -1238,10 +1238,7 @@ def streams_are_fine():
PY3 only
"""
- for stream in (sys.stdout, sys.stderr, sys.stdin):
- if not isinstance(stream, io.IOBase):
- return False
- return True
+ return all(isinstance(s, io.IOBase) for s in (sys.stdout, sys.stderr, sys.stdin))
class IOBrainTest(unittest.TestCase):
diff --git a/tests/unittest_inference.py b/tests/unittest_inference.py
index d6e5e4bf..b18f0925 100644
--- a/tests/unittest_inference.py
+++ b/tests/unittest_inference.py
@@ -6469,7 +6469,7 @@ def test_infer_generated_setter() -> None:
assert isinstance(inferred.args, nodes.Arguments)
# This line used to crash because property generated functions
# did not have args properly set
- assert list(inferred.nodes_of_class(nodes.Const)) == []
+ assert not list(inferred.nodes_of_class(nodes.Const))
def test_infer_list_of_uninferables_does_not_crash() -> None:
diff --git a/tests/unittest_nodes.py b/tests/unittest_nodes.py
index 2b8bad2e..68e2b335 100644
--- a/tests/unittest_nodes.py
+++ b/tests/unittest_nodes.py
@@ -1717,12 +1717,12 @@ class TestPatternMatching:
assert isinstance(case2.pattern, nodes.MatchSingleton)
assert case2.pattern.value is None
- assert list(case2.pattern.get_children()) == []
+ assert not list(case2.pattern.get_children())
assert isinstance(case3.pattern, nodes.MatchAs)
assert case3.pattern.name is None
assert case3.pattern.pattern is None
- assert list(case3.pattern.get_children()) == []
+ assert not list(case3.pattern.get_children())
@staticmethod
def test_match_sequence():