Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pylint crash when importing pyarrow.flight #10181

Open
freeform-andre opened this issue Jan 12, 2025 · 0 comments
Open

Pylint crash when importing pyarrow.flight #10181

freeform-andre opened this issue Jan 12, 2025 · 0 comments
Labels
Needs triage 📥 Just created, needs acknowledgment, triage, and proper labelling

Comments

@freeform-andre
Copy link

freeform-andre commented Jan 12, 2025

Bug description

When I run pylint on the following code it crashes:

"""Plyint error repro"""

from pyarrow.flight import connect

connect("pylint")

Configuration

[tool.pylint.main]

unsafe-load-any-extension = true

Command used

pylint ./pylint_repro.py

Pylint output

Exception on node <Call l.5 at 0x7fe6e7b21590> in file '/home/user/Code/repro/pylint_repro.py'
Traceback (most recent call last):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/pylint/utils/ast_walker.py", line 87, in walk
    callback(astroid)
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/pylint/checkers/base/basic_checker.py", line 708, in visit_call
    if utils.is_terminating_func(node):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/pylint/checkers/utils.py", line 2189, in is_terminating_func
    for inferred in node.func.infer():
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/bases.py", line 177, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/bases.py", line 177, in _infer_stmts
    for inf in stmt.infer(context=context):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_classes.py", line 2867, in _infer
    module = self.do_import_module()
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/_base_nodes.py", line 168, in do_import_module
    return mymodule.import_module(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 462, in import_module
    return AstroidManager().ast_from_module_name(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/manager.py", line 251, in ast_from_module_name
    return self.ast_from_module(named_module, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/manager.py", line 356, in ast_from_module
    return AstroidBuilder(self).module_build(module, modname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/builder.py", line 105, in module_build
    node = self._manager.visit_transforms(node)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/manager.py", line 127, in visit_transforms
    return self._transform.visit(node)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 158, in visit
    return self._visit(node)
           ^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 82, in _visit
    visited = self._visit_generic(value)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 108, in _visit_generic
    return [self._visit_generic(child) for child in node]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 108, in <listcomp>
    return [self._visit_generic(child) for child in node]
            ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 115, in _visit_generic
    return self._visit(node)
           ^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 85, in _visit
    return self._transform(node)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/transforms.py", line 66, in _transform
    if predicate is None or predicate(node):
                            ^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/brain/brain_namedtuple_enum.py", line 647, in _is_enum_subclass
    return cls.is_subtype_of("enum.Enum")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2070, in is_subtype_of
    return any(anc.qname() == type_name for anc in self.ancestors(context=context))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2070, in <genexpr>
    return any(anc.qname() == type_name for anc in self.ancestors(context=context))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2245, in ancestors
    for baseobj in stmt.infer(context):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 168, in infer
    for i, result in enumerate(self._infer(context=context, **kwargs)):
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 86, in inner
    yield next(generator)
          ^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
    for res in _func(node, context, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_classes.py", line 585, in _infer
    frame, stmts = self.lookup(self.name)
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/_base_nodes.py", line 277, in lookup
    return self.scope().scope_lookup(self, name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2211, in scope_lookup
    return frame._scope_lookup(node, name, offset)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/mixin.py", line 80, in _scope_lookup
    stmts = _filter_stmts(node, self.locals[name], self, offset)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/filter_statements.py", line 110, in _filter_stmts
    statements = _get_filtered_node_statements(base_node, stmts)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/filter_statements.py", line 25, in _get_filtered_node_statements
    statements = [(node, node.statement()) for node in stmt_nodes]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/filter_statements.py", line 25, in <listcomp>
    statements = [(node, node.statement()) for node in stmt_nodes]
                         ^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 295, in statement
    return self.parent.statement()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Code/repro/.venv/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 413, in statement
    raise StatementMissing(target=self)
astroid.exceptions.StatementMissing: Statement not found on <Module.pyarrow._flight l.0 at 0x7fe6e7983a90>
************* Module pylint_repro
pylint_repro.py:1:0: F0002: pylint_repro.py: Fatal error while checking 'pylint_repro.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/user.cache/pylint/pylint-crash-2025-01-12-12-05-08.txt'. (astroid-error)

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)

Expected behavior

I expect pylint to run nominally.

Pylint version

pylint 3.3.3
astroid 3.3.8
Python 3.11.0rc1 (main, Aug 12 2022, 10:02:14) [GCC 11.2.0]

OS / Environment

Linux

Additional dependencies

astroid==3.3.8
dill==0.3.9
isort==5.13.2
mccabe==0.7.0
platformdirs==4.3.6
pyarrow==18.1.0
pylint==3.3.3
tomlkit==0.13.2
@freeform-andre freeform-andre added the Needs triage 📥 Just created, needs acknowledgment, triage, and proper labelling label Jan 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs triage 📥 Just created, needs acknowledgment, triage, and proper labelling
Projects
None yet
Development

No branches or pull requests

1 participant