Skip to content

Wrong type annotation on Index.commit for parent_commits #1866

Closed
@mshonichev

Description

@mshonichev

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

Activity

Byron

Byron commented on Mar 12, 2024

@Byron
Member

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).

EliahKagan

EliahKagan commented on Mar 12, 2024

@EliahKagan
Member

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

mshonichev

mshonichev commented on Mar 12, 2024

@mshonichev
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @Byron@EliahKagan@mshonichev

      Issue actions

        Wrong type annotation on `Index.commit` for `parent_commits` · Issue #1866 · gitpython-developers/GitPython