Skip to content

Astroid 2.4 and pylint 2.5: KeyError: <class '_ast.And'> #773

@jlintusaari

Description

@jlintusaari

Hi, the newest pylint==2.5 + astroid==2.4 pair cause the error below when running pylint in our project. Everything was working fine with pylint==2.4.4 and astroid=2.3.3.

python -m pylint project

Traceback (most recent call las):
  ​File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_mai
    ​"__main__", mod_spc)
  ​File "/usr/lib/python3.6/runpy.py", line 85, in _run_cod
    ​exec(code, run_globas)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/__main__.py", line 7, in <module
    ​pylint.run_pylin()
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/__init__.py", line 20, in run_pylin
    ​Run(sys.argv[1])
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/lint.py", line 1731, in __init_
    ​linter.check(ars)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/lint.py", line 1004, in chec
    ​self._do_check(files_or_moduls)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/lint.py", line 1165, in _do_chec
    ​self.check_astroid_module(ast_node, walker, rawcheckers, tokencheckes)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/lint.py", line 1252, in check_astroid_modul
    ​walker.walk(ast_noe)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/utils/ast_walker.py", line 77, in wal
    ​self.walk(chid)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/utils/ast_walker.py", line 74, in wal
    ​callback(astrod)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/checkers/imports.py", line 514, in visit_importfro
    ​imported_module = self._get_imported_module(node, basenae)
  ​File "feautre/py36/lib/python3.6/site-packages/pylint/checkers/imports.py", line 774, in _get_imported_modul
    ​return importnode.do_import_module(modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/mixins.py", line 100, in do_import_modul
    ​modname, level=level, relative_only=level and level > 1
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 138, in file_buil
    ​return self._post_build(module, encodig)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 158, in _post_buil
    ​self.delayed_assattr(delayd)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 225, in delayed_assatt
    ​for inferred in node.expr.infer):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 93, in wrappe
    ​generator = _func(node, context, **kwars)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 850, in infer_assig
    ​stmts = list(self.assigned_stmts(context=contex))
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/protocols.py", line 331, in _arguments_infer_argnam
    ​is_metaclass = isinstance(cls, nodes.ClassDef) and cls.type == "metaclas"
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 1830, in _class_typ
    ​if _is_metaclass(klas):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 1799, in _is_metaclas
    ​for baseobj in base.infer):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 293, in infer_attribut
    ​for owner in self.expr.infer(contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 93, in wrappe
    ​generator = _func(node, context, **kwars)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 280, in infer_import_fro
    ​stmts = module.getattr(name, ignore_locals=module is self.root))
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 547, in getatt
    ​result = [self.import_module(name, relative_only=Tru)]
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 138, in file_buil
    ​return self._post_build(module, encodig)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 158, in _post_buil
    ​self.delayed_assattr(delayd)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 225, in delayed_assatt
    ​for inferred in node.expr.infer):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 93, in wrappe
    ​generator = _func(node, context, **kwars)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 850, in infer_assig
    ​stmts = list(self.assigned_stmts(context=contex))
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/protocols.py", line 331, in _arguments_infer_argnam
    ​is_metaclass = isinstance(cls, nodes.ClassDef) and cls.type == "metaclas"
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 1830, in _class_typ
    ​if _is_metaclass(klas):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 1799, in _is_metaclas
    ​for baseobj in base.infer):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 293, in infer_attribut
    ​for owner in self.expr.infer(contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 93, in wrappe
    ​generator = _func(node, context, **kwars)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 280, in infer_import_fro
    ​stmts = module.getattr(name, ignore_locals=module is self.root))
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 547, in getatt
    ​result = [self.import_module(name, relative_only=Tru)]
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 138, in file_buil
    ​return self._post_build(module, encodig)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 158, in _post_buil
    ​self.delayed_assattr(delayd)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 225, in delayed_assatt
    ​for inferred in node.expr.infer):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 227, in infer_cal
    ​for callee in self.func.infer(contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 293, in infer_attribut
    ​for owner in self.expr.infer(contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 96, in wrappe
    ​res = next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/bases.py", line 136, in _infer_stmt
    ​for inferred in stmt.infer(context=contex):
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/util.py", line 160, in limit_inferenc
    ​yield from islice(iterator, sie)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/context.py", line 113, in cache_generato
    ​for result in generatr:
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 132, in raise_if_nothing_inferre
    ​yield next(generatr)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/decorators.py", line 93, in wrappe
    ​generator = _func(node, context, **kwars)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/inference.py", line 273, in infer_import_fro
    ​module = self.do_import_modul()
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/mixins.py", line 100, in do_import_modul
    ​modname, level=level, relative_only=level and level > 1
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 138, in file_buil
    ​return self._post_build(module, encodig)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 155, in _post_buil
    ​self.add_from_names_to_locals(from_noe)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 208, in add_from_names_to_local
    ​imported = node.do_import_modul()
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/mixins.py", line 100, in do_import_modul
    ​modname, level=level, relative_only=level and level > 1
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 138, in file_buil
    ​return self._post_build(module, encodig)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 155, in _post_buil
    ​self.add_from_names_to_locals(from_noe)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 208, in add_from_names_to_local
    ​imported = node.do_import_modul()
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/mixins.py", line 100, in do_import_modul
    ​modname, level=level, relative_only=level and level > 1
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 138, in file_buil
    ​return self._post_build(module, encodig)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 155, in _post_buil
    ​self.add_from_names_to_locals(from_noe)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 208, in add_from_names_to_local
    ​imported = node.do_import_modul()
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/mixins.py", line 100, in do_import_modul
    ​modname, level=level, relative_only=level and level > 1
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 642, in import_modul
    ​return MANAGER.ast_from_module_name(absmodnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 189, in ast_from_module_nam
    ​return self.ast_from_file(found_spec.location, modname, fallback=Fale)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/manager.py", line 98, in ast_from_fil
    ​return AstroidBuilder(self).file_build(filepath, modnae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 137, in file_buil
    ​module = self._data_build(data, modname, pah)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/builder.py", line 190, in _data_buil
    ​module = builder.visit_module(node, modname, node_file, packae)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 165, in visit_modul
    ​newnode.postinit([self.visit(child, newnode) for child in node.bod])
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 165, in <listcomp
    ​newnode.postinit([self.visit(child, newnode) for child in node.bod])
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 177, in visi
    ​return visit_method(node, paret)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 676, in visit_functionde
    ​return self._visit_functiondef(nodes.FunctionDef, node, paret)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 666, in _visit_functionde
    ​body=[self.visit(child, newnode) for child in node.bod],
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 666, in <listcomp
    ​body=[self.visit(child, newnode) for child in node.bod],
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 177, in visi
    ​return visit_method(node, paret)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 721, in visit_i
    ​self.visit(node.test, newnod),
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 177, in visi
    ​return visit_method(node, paret)
  ​File "feautre/py36/lib/python3.6/site-packages/astroid/rebuilder.py", line 394, in visit_boolo
    ​self._bool_op_classes[type(node.op)], node.lineno, node.col_offset, parent
KeyError: <class '_ast.And'>

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions