PyCQA / PyCQA/flake8-bugbear

Detect: 'variable_name' in the try block with 'except ImportError' should also be defined in the except block

Open
#224 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.1k
Forks
123
Avg merge
2d 5h
Merged PRs (30d)
5

Description

Correct code:

try:
    from foo import bar
    from spam import eggs
except ImportError:
    from another_foo import bar
    from another_spam import eggs

Bad code:

try:
    from foo import bar
    from spam import eggs
except ImportError:
    # [ Missing import for `bar` ]
    from another_spam import eggs

PyCharm IDE gives a nice warning:

'variable_name' in the try block with 'except ImportError' should also be defined in the except block

Flake8 does not detect this problem.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the correct and bad Python examples as the behavioral fixtures: compare names imported in the try block with those defined in the except ImportError block. Done means the missing bar import is reported while the complete fallback example is accepted; the repository's existing checker tests should cover both cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.