Skip to content

Crash AttributeError: 'PosixPath' object has no attribute 'startswith' #10764

@MathieuAgneray

Description

@MathieuAgneray

Bug description

When parsing the following a.py:

from sentence_transformers import SentenceTransformer


def compare_texts(text1: str, text2: str) -> float:
    """Compare two texts using sentence embeddings.

    Args:
        text1: First text to compare.
        text2: Second text to compare.

    Returns:
        Cosine similarity score.
    """
    model = SentenceTransformer("all-MiniLM-L6-v2")
    embeddings = model.encode([text1, text2], convert_to_numpy=True)
    return float(embeddings[0] @ embeddings[1])

Command used

pylint a.py

Pylint output

pylint crashed with a ``AstroidError`` and with the following stacktrace:
Traceback (most recent call last):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 318, in file_from_module_name
    value = self._mod_file_cache[(modname, contextfile)]
            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: ('transformers.models.bamba.processing_bamba', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/checkers/utils.py", line 1365, in safe_infer
    value = next(infer_gen)
            ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/bases.py", line 184, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/bases.py", line 184, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_classes.py", line 2867, in _infer
    module = self.do_import_module()
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 276, in ast_from_module_name
    return self.ast_from_file(found_spec.location, modname, fallback=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 166, in ast_from_file
    return AstroidBuilder(self).file_build(filepath, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 145, in file_build
    return self._post_build(module, builder, encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 169, in _post_build
    self.delayed_assattr(delayed)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 243, in delayed_assattr
    for inferred in node.expr.infer():
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/bases.py", line 184, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_classes.py", line 456, in _infer
    stmts = list(self.assigned_stmts(context=context))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/protocols.py", line 368, in _arguments_infer_argname
    is_metaclass = isinstance(cls, nodes.ClassDef) and cls.type == "metaclass"
                                                       ^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 1785, in _class_type
    if _is_metaclass(klass, context=context):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 1752, in _is_metaclass
    for baseobj in base.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/bases.py", line 184, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_classes.py", line 2867, in _infer
    module = self.do_import_module()
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 276, in ast_from_module_name
    return self.ast_from_file(found_spec.location, modname, fallback=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 166, in ast_from_file
    return AstroidBuilder(self).file_build(filepath, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 145, in file_build
    return self._post_build(module, builder, encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 169, in _post_build
    self.delayed_assattr(delayed)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 243, in delayed_assattr
    for inferred in node.expr.infer():
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/bases.py", line 184, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_classes.py", line 456, in _infer
    stmts = list(self.assigned_stmts(context=context))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/protocols.py", line 368, in _arguments_infer_argname
    is_metaclass = isinstance(cls, nodes.ClassDef) and cls.type == "metaclass"
                                                       ^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 1785, in _class_type
    if _is_metaclass(klass, context=context):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 1752, in _is_metaclass
    for baseobj in base.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/bases.py", line 184, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/node_classes.py", line 2867, in _infer
    module = self.do_import_module()
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 276, in ast_from_module_name
    return self.ast_from_file(found_spec.location, modname, fallback=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 166, in ast_from_file
    return AstroidBuilder(self).file_build(filepath, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 145, in file_build
    return self._post_build(module, builder, encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 166, in _post_build
    self.add_from_names_to_locals(from_node)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 225, in add_from_names_to_locals
    imported = node.do_import_module()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 276, in ast_from_module_name
    return self.ast_from_file(found_spec.location, modname, fallback=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 166, in ast_from_file
    return AstroidBuilder(self).file_build(filepath, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 145, in file_build
    return self._post_build(module, builder, encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 166, in _post_build
    self.add_from_names_to_locals(from_node)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 225, in add_from_names_to_locals
    imported = node.do_import_module()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 276, in ast_from_module_name
    return self.ast_from_file(found_spec.location, modname, fallback=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 166, in ast_from_file
    return AstroidBuilder(self).file_build(filepath, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 145, in file_build
    return self._post_build(module, builder, encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 166, in _post_build
    self.add_from_names_to_locals(from_node)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/builder.py", line 225, in add_from_names_to_locals
    imported = node.do_import_module()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 228, in ast_from_module_name
    found_spec = self.file_from_module_name(modname, context_file)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/manager.py", line 321, in file_from_module_name
    value = file_info_from_modpath(
            ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/modutils.py", line 376, in file_info_from_modpath
    return _spec_from_modpath(modpath, path, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/modutils.py", line 632, in _spec_from_modpath
    found_spec = spec.find_spec(modpath, path)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/spec.py", line 484, in find_spec
    return _find_spec(tuple(modpath), tuple(path) if path else None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/spec.py", line 500, in _find_spec
    finder, spec = _find_spec_with_path(
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/spec.py", line 420, in _find_spec_with_path
    spec = finder_instance.find_module(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/spec.py", line 271, in find_module
    if util.is_namespace(modname) and modname in sys.modules:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/util.py", line 98, in is_namespace
    if any(
       ^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/util.py", line 99, in <genexpr>
    any(location.startswith(lib_dir) for lib_dir in STD_AND_EXT_LIB_DIRS)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/astroid/interpreter/_import/util.py", line 99, in <genexpr>
    any(location.startswith(lib_dir) for lib_dir in STD_AND_EXT_LIB_DIRS)
        ^^^^^^^^^^^^^^^^^^^
AttributeError: 'PosixPath' object has no attribute 'startswith'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/lint/pylinter.py", line 788, in _lint_file
    check_astroid_module(module)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/lint/pylinter.py", line 1020, in check_astroid_module
    retval = self._check_astroid_module(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/lint/pylinter.py", line 1072, in _check_astroid_module
    walker.walk(node)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/utils/ast_walker.py", line 90, in walk
    self.walk(child)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/utils/ast_walker.py", line 90, in walk
    self.walk(child)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/utils/ast_walker.py", line 87, in walk
    callback(astroid)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/checkers/refactoring/refactoring_checker.py", line 1596, in visit_assign
    self._append_context_managers_to_stack(node)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/checkers/refactoring/refactoring_checker.py", line 1651, in _append_context_managers_to_stack
    inferred = utils.safe_infer(value.func)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/checkers/utils.py", line 1369, in safe_infer
    raise AstroidError from e
astroid.exceptions.AstroidError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/lint/pylinter.py", line 752, in _lint_files
    self._lint_file(fileitem, module, check_astroid_module)
  File "/home/user/.pyenv/versions/3.12.1/envs/myproject/lib/python3.12/site-packages/pylint/lint/pylinter.py", line 790, in _lint_file
    raise astroid.AstroidError from e
astroid.exceptions.AstroidError

Expected behavior

No crash.

Pylint version

pylint 3.3.9
astroid 3.3.11
Python 3.12.1 (main, Dec 16 2023, 11:14:49) [GCC 11.4.0]

OS / Environment

linux (Linux)

Additional dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    Crash 💥A bug that makes pylint crash

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions