gitpython-developers / GitPython

GitPython is a python library used to interact with Git repositories.

Home Page:http://gitpython.readthedocs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wrong type annotation on `Index.commit` for `parent_commits`

mshonichev opened this issue · comments

With GitPython==3.1.42 one can observe following annotation of parent_commits argument to IndexFile.commit ([1]):

...
parent_commits: Union[Commit_ish, None] = None,
...

which is obviously not correct, because that argument just passed unmodified downwards to Commit.create_from_tree, which has following annotation instead ([2]):

parent_commits: Union[None, List["Commit"]] = None

That leads to nasty Mypy warnings when one's trying to use IndexFile.commit with anything different than None.


[1] - https://github.com/gitpython-developers/GitPython/blob/3.1.42/git/index/base.py#L1080
[2] - https://github.com/gitpython-developers/GitPython/blob/3.1.42/git/objects/commit.py#L506

Thanks for reporting!

I think this issue might be fixed once #1859, which touches on what constitutes Commit_ish. @EliahKagan certainly has a much better understanding of the matter though, and I wouldn't want the PR to become larger than it has to be just to include an actual fix (if it's not fixed naturally).

Yes, this is part of what #1859 fixes (b4b6e1e).

Great! Wow, just understood, that @Byron at stack overflow threads related to GitPython is actually the package maintainer, so silly of me :). Nice to meet, looking forward PR