From 8590532aebb1861db5aa200369cab9a03f496838 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:12:08 +0200 Subject: [PATCH 01/19] Fix no exception type(s) specified on getattr --- astroid/brain/brain_gi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/astroid/brain/brain_gi.py b/astroid/brain/brain_gi.py index 3255abcaa3..b6acd4d645 100644 --- a/astroid/brain/brain_gi.py +++ b/astroid/brain/brain_gi.py @@ -83,7 +83,7 @@ def _gi_build_stub(parent): try: obj = getattr(parent, name) - except: + except AttributeError: continue if inspect.isclass(obj): From efbf076491d6693f2de780105acfc43e20c6f687 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:46:33 +0200 Subject: [PATCH 02/19] Fix legacy no-member by disabling the warning --- astroid/interpreter/_import/spec.py | 8 +++++--- astroid/manager.py | 5 ++++- tests/unittest_manager.py | 4 +++- tests/unittest_raw_building.py | 4 +++- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/astroid/interpreter/_import/spec.py b/astroid/interpreter/_import/spec.py index 8059e94c69..bc6d9eaea4 100644 --- a/astroid/interpreter/_import/spec.py +++ b/astroid/interpreter/_import/spec.py @@ -297,13 +297,15 @@ def _precache_zipimporters(path=None): new_paths = _cached_set_diff(req_paths, cached_paths) for entry_path in new_paths: try: - pic[entry_path] = zipimport.zipimporter(entry_path) - except zipimport.ZipImportError: + pic[entry_path] = zipimport.zipimporter( # pylint: disable=no-member + entry_path + ) + except zipimport.ZipImportError: # pylint: disable=no-member continue return { key: value for key, value in pic.items() - if isinstance(value, zipimport.zipimporter) + if isinstance(value, zipimport.zipimporter) # pylint: disable=no-member } diff --git a/astroid/manager.py b/astroid/manager.py index 453f0b3477..1c56f8be71 100644 --- a/astroid/manager.py +++ b/astroid/manager.py @@ -137,6 +137,7 @@ def _can_load_extension(self, modname): def ast_from_module_name(self, modname, context_file=None): """given a module name, return the astroid object""" + # pylint: disable=no-member if modname in self.astroid_cache: return self.astroid_cache[modname] if modname == "__main__": @@ -215,7 +216,9 @@ def zip_import_data(self, filepath): except ValueError: continue try: - importer = zipimport.zipimporter(eggpath + ext) + importer = zipimport.zipimporter( # pylint: disable=no-member + eggpath + ext + ) zmodname = resource.replace(os.path.sep, ".") if importer.is_package(resource): zmodname = zmodname + ".__init__" diff --git a/tests/unittest_manager.py b/tests/unittest_manager.py index ed6c30153e..73b9379a81 100644 --- a/tests/unittest_manager.py +++ b/tests/unittest_manager.py @@ -228,7 +228,9 @@ def test_file_from_module(self): """check if the unittest filepath is equals to the result of the method""" self.assertEqual( _get_file_from_object(unittest), - self.manager.file_from_module_name("unittest", None).location, + self.manager.file_from_module_name( # pylint: disable=no-member + "unittest", None + ).location, ) def test_file_from_module_name_astro_building_exception(self): diff --git a/tests/unittest_raw_building.py b/tests/unittest_raw_building.py index ca8551709f..2b27a64dfe 100644 --- a/tests/unittest_raw_building.py +++ b/tests/unittest_raw_building.py @@ -51,6 +51,7 @@ def test_build_function(self): def test_build_function_args(self): args = ["myArgs1", "myArgs2"] + # pylint: disable=no-member node = build_function("MyFunction", args) self.assertEqual("myArgs1", node.args.args[0].name) self.assertEqual("myArgs2", node.args.args[1].name) @@ -58,12 +59,13 @@ def test_build_function_args(self): def test_build_function_defaults(self): defaults = ["defaults1", "defaults2"] + # pylint: disable=no-member node = build_function(name="MyFunction", args=None, defaults=defaults) self.assertEqual(2, len(node.args.defaults)) def test_build_function_posonlyargs(self): node = build_function(name="MyFunction", posonlyargs=["a", "b"]) - self.assertEqual(2, len(node.args.posonlyargs)) + self.assertEqual(2, len(node.args.posonlyargs)) # pylint: disable=no-member def test_build_from_import(self): names = ["exceptions, inference, inspector"] From b594e55e5fcfd0676910115ed1096bd514da1272 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:47:45 +0200 Subject: [PATCH 03/19] Fix a yoda constant in unittest_regrtest.py --- tests/unittest_regrtest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unittest_regrtest.py b/tests/unittest_regrtest.py index 3337b09be4..cc2e4e4839 100644 --- a/tests/unittest_regrtest.py +++ b/tests/unittest_regrtest.py @@ -352,7 +352,7 @@ def fu(self, objects): delitem #@ """ inferred = next(extract_node(code).infer()) - assert "builtins.dict.__delitem__" == inferred.qname() + assert inferred.qname() == "builtins.dict.__delitem__" if __name__ == "__main__": From 3140683f539db1048c10207362e68dd6d2693379 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:48:48 +0200 Subject: [PATCH 04/19] Fix Unused variable 'ex' --- tests/unittest_scoped_nodes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unittest_scoped_nodes.py b/tests/unittest_scoped_nodes.py index 7d44386c9c..d885571812 100644 --- a/tests/unittest_scoped_nodes.py +++ b/tests/unittest_scoped_nodes.py @@ -1561,7 +1561,7 @@ def test_mro_generic_error_1(self): class A(Generic[T1], Generic[T2]): ... """ ) - with self.assertRaises(DuplicateBasesError) as ex: + with self.assertRaises(DuplicateBasesError): cls.mro() @test_utils.require_version(minver="3.7") @@ -1574,7 +1574,7 @@ class A(Generic[T]): ... class B(A[T], A[T]): ... """ ) - with self.assertRaises(DuplicateBasesError) as ex: + with self.assertRaises(DuplicateBasesError): cls.mro() def test_generator_from_infer_call_result_parent(self): From 63549e45061769b05a70453db4fcd3397c2e57fc Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:50:41 +0200 Subject: [PATCH 05/19] Fix Unused variable 'meth_inf' --- tests/unittest_brain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unittest_brain.py b/tests/unittest_brain.py index b62b365585..b1d38ae3ef 100644 --- a/tests/unittest_brain.py +++ b/tests/unittest_brain.py @@ -1003,7 +1003,7 @@ def test_invalid_type_subscript(self): self.assertIsInstance(val_inf, astroid.ClassDef) self.assertEqual(val_inf.name, "str") with self.assertRaises(astroid.exceptions.AttributeInferenceError): - meth_inf = val_inf.getattr("__class_getitem__")[0] + val_inf.getattr("__class_getitem__")[0] @test_utils.require_version(minver="3.9") def test_builtin_subscriptable(self): From 4f4c2d19c940a7bf09327a9b6606b4fdcdeba401 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:55:01 +0200 Subject: [PATCH 06/19] Ignore cyclic import and wrong import position for now --- pylintrc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pylintrc b/pylintrc index cda021dabb..edc173ae05 100644 --- a/pylintrc +++ b/pylintrc @@ -81,9 +81,10 @@ confidence= disable=fixme, invalid-name, missing-docstring, too-few-public-methods, too-many-public-methods, - # We know about it and we're doing our best to remove it - # in 2.0 + # We know about it and we're doing our best to remove it in 2.0 (oups) cyclic-import, + wrong-import-position, + wrong-import-order, # The check is faulty in most cases and it doesn't take in # account how the variable is being used. For instance, # using a variable that is a list or a generator in an @@ -248,7 +249,7 @@ ignore-comments=yes ignore-docstrings=yes # Ignore imports when computing similarities. -ignore-imports=no +ignore-imports=yes [SPELLING] From 6dc8ce9495c2b4ddddbb43038bff15e182eea676 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 21:56:04 +0200 Subject: [PATCH 07/19] Ignore duplicate code for now because astroid/brain is full of it --- pylintrc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pylintrc b/pylintrc index edc173ae05..a3582fdf02 100644 --- a/pylintrc +++ b/pylintrc @@ -104,7 +104,9 @@ disable=fixme, invalid-name, missing-docstring, too-few-public-methods, # black handles these format, # temporary until we fix the problems with InferenceContexts - no-member + no-member, + # everything here is legacy not checked in astroid/brain + duplicate-code, [BASIC] From 62964eb89ce986da640b423d72791513f2141110 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:05:19 +0200 Subject: [PATCH 08/19] Fix useless return at end of function or method --- astroid/brain/brain_functools.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/astroid/brain/brain_functools.py b/astroid/brain/brain_functools.py index eebade6ed0..ae45512269 100644 --- a/astroid/brain/brain_functools.py +++ b/astroid/brain/brain_functools.py @@ -52,7 +52,7 @@ def attr_cache_clear(self): return BoundMethod(proxy=node, bound=self._instance.parent.scope()) -def _transform_lru_cache(node, context=None): +def _transform_lru_cache(node, context=None) -> None: # TODO: this is not ideal, since the node should be immutable, # but due to https://github.com/PyCQA/astroid/issues/354, # there's not much we can do now. @@ -60,7 +60,6 @@ def _transform_lru_cache(node, context=None): # in pylint, the old node would still be available, leading # to spurious false positives. node.special_attributes = LruWrappedModel()(node) - return def _functools_partial_inference(node, context=None): From 6694b8ca29434c380e4903ddd6c526b8b93dbe12 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:06:37 +0200 Subject: [PATCH 09/19] Fix inconsistent return statements --- astroid/brain/brain_functools.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/astroid/brain/brain_functools.py b/astroid/brain/brain_functools.py index ae45512269..94f77eb3df 100644 --- a/astroid/brain/brain_functools.py +++ b/astroid/brain/brain_functools.py @@ -135,16 +135,17 @@ def _looks_like_lru_cache(node): return False -def _looks_like_functools_member(node, member): +def _looks_like_functools_member(node, member) -> bool: """Check if the given Call node is a functools.partial call""" if isinstance(node.func, astroid.Name): return node.func.name == member - elif isinstance(node.func, astroid.Attribute): + if isinstance(node.func, astroid.Attribute): return ( node.func.attrname == member and isinstance(node.func.expr, astroid.Name) and node.func.expr.name == "functools" ) + return False _looks_like_partial = partial(_looks_like_functools_member, member="partial") From 4ada97583013fdf8b836917baa36622427909394 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:08:23 +0200 Subject: [PATCH 10/19] Fix Expression is assigned to nothing --- tests/unittest_brain.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unittest_brain.py b/tests/unittest_brain.py index b1d38ae3ef..8af00d3291 100644 --- a/tests/unittest_brain.py +++ b/tests/unittest_brain.py @@ -1003,6 +1003,7 @@ def test_invalid_type_subscript(self): self.assertIsInstance(val_inf, astroid.ClassDef) self.assertEqual(val_inf.name, "str") with self.assertRaises(astroid.exceptions.AttributeInferenceError): + # pylint: disable=expression-not-assigned val_inf.getattr("__class_getitem__")[0] @test_utils.require_version(minver="3.9") From 8b986b60e312b27b05cb536168530b17207b2113 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:09:02 +0200 Subject: [PATCH 11/19] Fix redefining name 'bases' from outer scope --- tests/unittest_brain.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/unittest_brain.py b/tests/unittest_brain.py index 8af00d3291..f7e72ca6a1 100644 --- a/tests/unittest_brain.py +++ b/tests/unittest_brain.py @@ -498,8 +498,7 @@ class B(six.with_metaclass(A, C)): inferred = next(ast_node.infer()) self.assertIsInstance(inferred, nodes.ClassDef) self.assertEqual(inferred.name, "B") - bases = inferred.bases - self.assertIsInstance(bases[0], nodes.Call) + self.assertIsInstance(inferred.bases[0], nodes.Call) ancestors = tuple(inferred.ancestors()) self.assertIsInstance(ancestors[0], nodes.ClassDef) self.assertEqual(ancestors[0].name, "C") From 924f7bd9d0d8cc42b3957947eeffec57f9ecfc43 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:18:24 +0200 Subject: [PATCH 12/19] Fix pylint warnings in astroid.brain.brain_builtin_inference --- astroid/brain/brain_builtin_inference.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/astroid/brain/brain_builtin_inference.py b/astroid/brain/brain_builtin_inference.py index 056398e4f7..10847e3484 100644 --- a/astroid/brain/brain_builtin_inference.py +++ b/astroid/brain/brain_builtin_inference.py @@ -153,7 +153,7 @@ def _extend_builtins(class_transforms): def _builtin_filter_predicate(node, builtin_name): - if ( + if ( # pylint: disable=too-many-boolean-expressions builtin_name == "type" and node.root().name == "re" and isinstance(node.func, nodes.Name) @@ -232,10 +232,12 @@ def _container_generic_inference(node, context, node_type, transform): return transformed -def _container_generic_transform(arg, context, klass, iterables, build_elts): +def _container_generic_transform( # pylint: disable=inconsistent-return-statements + arg, context, klass, iterables, build_elts +): if isinstance(arg, klass): return arg - elif isinstance(arg, iterables): + if isinstance(arg, iterables): if all(isinstance(elt, nodes.Const) for elt in arg.elts): elts = [elt.value for elt in arg.elts] else: @@ -371,7 +373,7 @@ def infer_dict(node, context=None): if not args and not kwargs: # dict() return nodes.Dict() - elif kwargs and not args: + if kwargs and not args: # dict(a=1, b=2, c=4) items = [(nodes.Const(key), value) for key, value in kwargs] elif len(args) == 1 and kwargs: @@ -383,7 +385,6 @@ def infer_dict(node, context=None): items = _get_elts(args[0], context) else: raise UseInferenceDefault() - value = nodes.Dict( col_offset=node.col_offset, lineno=node.lineno, parent=node.parent ) @@ -417,7 +418,7 @@ def infer_super(node, context=None): raise UseInferenceDefault cls = scoped_nodes.get_wrapping_class(scope) - if not len(node.args): + if not node.args: mro_pointer = cls # In we are in a classmethod, the interpreter will fill # automatically the class as the second argument, not an instance. @@ -877,15 +878,14 @@ def _build_dict_with_elements(elements): elements_with_value = [(element, default) for element in elements] return _build_dict_with_elements(elements_with_value) - - elif isinstance(inferred_values, nodes.Const) and isinstance( + if isinstance(inferred_values, nodes.Const) and isinstance( inferred_values.value, (str, bytes) ): elements = [ (nodes.Const(element), default) for element in inferred_values.value ] return _build_dict_with_elements(elements) - elif isinstance(inferred_values, nodes.Dict): + if isinstance(inferred_values, nodes.Dict): keys = inferred_values.itered() for key in keys: if not isinstance(key, accepted_iterable_elements): From 5ee5d31662aab62827237d77feb34dd9b7dfb9af Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:27:29 +0200 Subject: [PATCH 13/19] Fix pylint warnings in astroid/brain/brain_six --- astroid/brain/brain_six.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/astroid/brain/brain_six.py b/astroid/brain/brain_six.py index df20f6817e..7a65855f74 100644 --- a/astroid/brain/brain_six.py +++ b/astroid/brain/brain_six.py @@ -172,7 +172,7 @@ def _looks_like_decorated_with_six_add_metaclass(node): return False -def transform_six_add_metaclass(node): +def transform_six_add_metaclass(node): # pylint: disable=inconsistent-return-statements """Check if the given class node is decorated with *six.add_metaclass* If so, inject its argument as the metaclass of the underlying class. @@ -192,6 +192,7 @@ def transform_six_add_metaclass(node): metaclass = decorator.args[0] node._metaclass = metaclass return node + return def _looks_like_nested_from_six_with_metaclass(node): From e6d27d5c332cb665ba7f33966ebe3dc56620b1ce Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:27:44 +0200 Subject: [PATCH 14/19] Fix pylint warnings in astroid/brain/brain_namedtuple_enum --- astroid/brain/brain_namedtuple_enum.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/astroid/brain/brain_namedtuple_enum.py b/astroid/brain/brain_namedtuple_enum.py index a929f9bf4d..69998aa64f 100644 --- a/astroid/brain/brain_namedtuple_enum.py +++ b/astroid/brain/brain_namedtuple_enum.py @@ -51,15 +51,15 @@ def _infer_first(node, context): value = next(node.infer(context=context)) if value is util.Uninferable: raise UseInferenceDefault() - else: - return value + return value except StopIteration as exc: raise InferenceError from exc def _find_func_form_arguments(node, context): - def _extract_namedtuple_arg_or_keyword(position, key_name=None): - + def _extract_namedtuple_arg_or_keyword( # pylint: disable=inconsistent-return-statements + position, key_name=None + ): if len(args) > position: return _infer_first(args[position], context) if key_name and key_name in found_keywords: @@ -229,7 +229,7 @@ def _get_renamed_namedtuple_attributes(field_names): names = list(field_names) seen = set() for i, name in enumerate(field_names): - if ( + if ( # pylint: disable=too-many-boolean-expressions not all(c.isalnum() or c == "_" for c in name) or keyword.iskeyword(name) or not name From 4d0516160c01a8e3c7ae4409c660adf58b985f43 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:32:05 +0200 Subject: [PATCH 15/19] Ignore the too-many-warnings we're not refactoring anyway --- pylintrc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pylintrc b/pylintrc index a3582fdf02..386d306d49 100644 --- a/pylintrc +++ b/pylintrc @@ -79,8 +79,14 @@ confidence= # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=fixme, invalid-name, missing-docstring, too-few-public-methods, +disable=fixme, + invalid-name, + missing-docstring, + too-few-public-methods, too-many-public-methods, + too-many-boolean-expressions, + too-many-branches, + too-many-statements, # We know about it and we're doing our best to remove it in 2.0 (oups) cyclic-import, wrong-import-position, From fa7d5c13b38b946589563d71f27dc7c659af867b Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:38:15 +0200 Subject: [PATCH 16/19] Fix pylint warnings in astroid/brain/brain_fstrings --- astroid/brain/brain_fstrings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/astroid/brain/brain_fstrings.py b/astroid/brain/brain_fstrings.py index 53eaf27217..db0c9edb9a 100644 --- a/astroid/brain/brain_fstrings.py +++ b/astroid/brain/brain_fstrings.py @@ -31,7 +31,7 @@ def _clone_node_with_lineno(node, parent, lineno): return new_node -def _transform_formatted_value(node): +def _transform_formatted_value(node): # pylint: disable=inconsistent-return-statements if node.value and node.value.lineno == 1: if node.lineno != node.value.lineno: new_node = astroid.FormattedValue( From 43f231c03024ecf09d1b3f99b507046bffcc1420 Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:38:27 +0200 Subject: [PATCH 17/19] Fix pylint warnings in astroid/brain/brain_typing.py --- astroid/brain/brain_typing.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/astroid/brain/brain_typing.py b/astroid/brain/brain_typing.py index cf61a60ca2..41e3ea6386 100644 --- a/astroid/brain/brain_typing.py +++ b/astroid/brain/brain_typing.py @@ -105,10 +105,10 @@ def looks_like_typing_typevar_or_newtype(node): return False -def infer_typing_typevar_or_newtype(node, context=None): +def infer_typing_typevar_or_newtype(node, context_itton=None): """Infer a typing.TypeVar(...) or typing.NewType(...) call""" try: - func = next(node.func.infer(context=context)) + func = next(node.func.infer(context=context_itton)) except InferenceError as exc: raise UseInferenceDefault from exc @@ -119,16 +119,16 @@ def infer_typing_typevar_or_newtype(node, context=None): typename = node.args[0].as_string().strip("'") node = extract_node(TYPING_TYPE_TEMPLATE.format(typename)) - return node.infer(context=context) + return node.infer(context=context_itton) def _looks_like_typing_subscript(node): """Try to figure out if a Subscript node *might* be a typing-related subscript""" if isinstance(node, nodes.Name): return node.name in TYPING_MEMBERS - elif isinstance(node, nodes.Attribute): + if isinstance(node, nodes.Attribute): return node.attrname in TYPING_MEMBERS - elif isinstance(node, nodes.Subscript): + if isinstance(node, nodes.Subscript): return _looks_like_typing_subscript(node.value) return False @@ -232,8 +232,7 @@ def full_raiser(origin_func, attr, *args, **kwargs): """ if attr == "__class_getitem__": raise AttributeInferenceError("__class_getitem__ access is not allowed") - else: - return origin_func(attr, *args, **kwargs) + return origin_func(attr, *args, **kwargs) try: node.getattr("__class_getitem__") From 1e1ea99ff248cb10e3c270d69fbf8da0499d6ecb Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:41:52 +0200 Subject: [PATCH 18/19] Fix pylint warnings in astroid/brain/brain_gi --- astroid/brain/brain_gi.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/astroid/brain/brain_gi.py b/astroid/brain/brain_gi.py index b6acd4d645..ee415e0376 100644 --- a/astroid/brain/brain_gi.py +++ b/astroid/brain/brain_gi.py @@ -19,6 +19,8 @@ Helps with understanding everything imported from 'gi.repository' """ +# pylint:disable=import-error,import-outside-toplevel + import inspect import itertools import sys @@ -188,11 +190,14 @@ def _import_gi_module(modname): # Just inspecting the code can raise gi deprecation # warnings, so ignore them. try: - from gi import PyGIDeprecationWarning, PyGIWarning + from gi import ( # pylint:disable=import-error + PyGIDeprecationWarning, + PyGIWarning, + ) warnings.simplefilter("ignore", PyGIDeprecationWarning) warnings.simplefilter("ignore", PyGIWarning) - except Exception: + except Exception: # pylint:disable=broad-except pass __import__(m) @@ -242,7 +247,7 @@ def _register_require_version(node): import gi gi.require_version(node.args[0].value, node.args[1].value) - except Exception: + except Exception: # pylint:disable=broad-except pass return node From b86bdf14793362740a10e7cd46964ac6ce351eaf Mon Sep 17 00:00:00 2001 From: Pierre Sassoulas Date: Sun, 18 Apr 2021 22:43:51 +0200 Subject: [PATCH 19/19] Fix redefining name 'astroid' from outer scope --- tests/unittest_nodes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unittest_nodes.py b/tests/unittest_nodes.py index a58f1ba06d..fb9ffc2510 100644 --- a/tests/unittest_nodes.py +++ b/tests/unittest_nodes.py @@ -1166,8 +1166,8 @@ def f(a): # type: (A) -> A pass """ - astroid = builder.parse(data) - f = astroid.body[0] + parsed_data = builder.parse(data) + f = parsed_data.body[0] assert f.type_comment_args[0].parent is f assert f.type_comment_returns.parent is f