Skip to content

Reuse of “exc” name in __init__.py confuses Pylint #1587

Closed
@Hawk777

Description

@Hawk777

It’s not entirely clear how one is supposed to name GitPython’s exceptions:

  • According to the API reference, they live in the git.exc module.
  • In __init__.py, the very first line does from git.exp import *, meaning they can actually just be referenced in the git module instead if one wishes (is that intentional/public knowledge?).

Then, further down __init__.py, there are two places where except Something as exc is done in module-level code. While those won’t execute on success (and will prevent the module from importing on failure), they do confuse Pylint: if I try to except git.exc.InvalidGitRepositoryError in my own code and then lint it, Pylint complains that Instance of 'GitError' has no 'InvalidGitRepositoryError' member, because it believes the name git.exc itself might actually be an instance of GitError (as it would be if this except clause were taken).

Is it intended that we refer to exception classes from git rather than git.exc? If so, could the documentation be updated? If not—if we are not supposed to know about the from git.exc import *—could the variable names used in those except blocks be modified to not collide with a submodule name?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions