Closed
Description
Thank you very much for this very useful python package. Unfortunately mypy is very confused by property aliases such as
@property
def references(self) -> "IterableList[Reference]":
"""A list of :class:`~git.refs.reference.Reference` objects representing tags,
heads and remote references.
:return:
``git.IterableList(Reference, ...)``
"""
return Reference.list_items(self)
# Alias for references.
refs = references
that can be found in git/repo/base.py
or the analogous alias branches
for heads
. See python/mypy#6700
You can reproduce the issue with the following test.py
:
from git.repo import Repo
repo = Repo()
for branch in repo.branches:
print(branch)
about which mypy
says:
test.py:4: error: "Callable[[], IterableList[Head]]" has no attribute "__iter__" (not iterable) [attr-defined]
Found 1 error in 1 file (checked 1 source file)
I am not aware of any fix that would not uglify the code here, and that mypy issue doesn’t seem likely to see improvement in the near future. This is sad, but doing all the work to add type annotations and still having users facing incomprehensible error messages in perfectly legitimate code is also sad.
Could you please tell me whether you would welcome a PR “fixing” this?