|
19 | 19 | import calendar |
20 | 20 | from datetime import datetime, timedelta, tzinfo |
21 | 21 |
|
| 22 | +from git.objects.base import IndexObject # just for an isinstance check |
| 23 | + |
22 | 24 | # typing ------------------------------------------------------------ |
23 | 25 | from typing import (Any, Callable, Deque, Iterator, NamedTuple, overload, Sequence, |
24 | 26 | TYPE_CHECKING, Tuple, Type, TypeVar, Union, cast) |
@@ -317,7 +319,7 @@ def list_traverse(self, *args: Any, **kwargs: Any) -> IterableList[Union['Commit |
317 | 319 | """ |
318 | 320 | # Commit and Submodule have id.__attribute__ as IterableObj |
319 | 321 | # Tree has id.__attribute__ inherited from IndexObject |
320 | | - if isinstance(self, (TraversableIterableObj, Tree)): |
| 322 | + if isinstance(self, (TraversableIterableObj, IndexObject)): |
321 | 323 | id = self._id_attribute_ |
322 | 324 | else: |
323 | 325 | id = "" # shouldn't reach here, unless Traversable subclass created with no _id_attribute_ |
@@ -456,6 +458,9 @@ class TraversableIterableObj(Traversable, IterableObj): |
456 | 458 |
|
457 | 459 | TIobj_tuple = Tuple[Union[T_TIobj, None], T_TIobj] |
458 | 460 |
|
| 461 | + def list_traverse(self: T_TIobj, *args: Any, **kwargs: Any) -> IterableList[T_TIobj]: # type: ignore[override] |
| 462 | + return super(TraversableIterableObj, self).list_traverse(* args, **kwargs) |
| 463 | + |
459 | 464 | @ overload # type: ignore |
460 | 465 | def traverse(self: T_TIobj, |
461 | 466 | predicate: Callable[[Union[T_TIobj, Tuple[Union[T_TIobj, None], T_TIobj]], int], bool], |
|
0 commit comments