Skip to content

v3.0.0 breaks pylint-protobuf plugin - cannot import name 'IAstroidChecker' from 'pylint.interfaces' #9094

@Cireo

Description

@Cireo

Bug description

Starting this morning (~5 hours ago - presumably from 3.0.0 release https://github.com/pylint-dev/pylint/releases) the pylint-protobuf plugin no longer works.

Not sure if this is expected, and that repo hasn't had any changes since July 2021, so will see what help can be expected there.

If this is in fact, expected, any hints as what that interface has changed to might be helpful, I could try to update the plugin or find the maintainer.

Configuration

No response

Command used

python --version  # 3.9.0 and 3.10.6 fail (deprecated 3.6.9 works)
python -m venv test
. test/bin/activate
pip install --upgrade pip
pip install --upgrade pylint pylint-protobuf  # pylint==3.0.0
touch test.py
python -m pylint test.py  # passes
python -m pylint --load-plugins=pylint_protobuf test.py  # gives output below
pip install pylint==2.17.7
python -m pylint --load-plugins=pylint_protobuf test.py  # passes


### Pylint output

Failure traceback (3.9 example)
``
Traceback (most recent call last):
  File ".../.asdf/installs/python/3.9.0/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File ".../.asdf/installs/python/3.9.0/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File ".../test/lib/python3.9/site-packages/pylint/__main__.py", line 10, in <module>
    pylint.run_pylint()
  File ".../test/lib/python3.9/site-packages/pylint/__init__.py", line 34, in run_pylint
    PylintRun(argv or sys.argv[1:])
  File ".../test/lib/python3.9/site-packages/pylint/lint/run.py", line 155, in __init__
    linter.load_plugin_modules(self._plugins)
  File ".../test/lib/python3.9/site-packages/pylint/lint/pylinter.py", line 380, in load_plugin_modules
    module = astroid.modutils.load_module_from_name(modname)
  File ".../test/lib/python3.9/site-packages/astroid/modutils.py", line 194, in load_module_from_name
    module = importlib.import_module(dotted_name)
  File ".../.asdf/installs/python/3.9.0/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File ".../test/lib/python3.9/site-packages/pylint_protobuf/__init__.py", line 6, in <module>
    from pylint.interfaces import IAstroidChecker
ImportError: cannot import name 'IAstroidChecker' from 'pylint.interfaces' (.../test/lib/python3.9/site-packages/pylint/interfaces.py)

Expected behavior

No traceback =D

Pylint version

(test) python -m pylint --version
pylint 3.0.0
astroid 3.0.0
Python 3.9.0 (default, Oct 18 2020, 15:19:13) 
[Clang 12.0.0 (clang-1200.0.32.2)]


### OS / Environment

OSX, Linux

### Additional dependencies

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    Downstream Bug 🪲The problem happens in a lib depending on pylint, not pylint

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions