diff options
author | Yobmod <yobmod@gmail.com> | 2021-07-09 00:56:20 +0100 |
---|---|---|
committer | Yobmod <yobmod@gmail.com> | 2021-07-09 00:56:20 +0100 |
commit | 1faa25fcf828062d2c4ad35a962b4d8d3b05e855 (patch) | |
tree | de2a427894b78dfd2ca7f9f3de6ae86335b5004e /git | |
parent | 4802a36bd0fec7e6ae03d6713ceae70de8e1783a (diff) | |
download | gitpython-1faa25fcf828062d2c4ad35a962b4d8d3b05e855.tar.gz |
Rmv typeguard from list_traverse(), was wrong
Diffstat (limited to 'git')
-rw-r--r-- | git/objects/util.py | 30 | ||||
-rw-r--r-- | git/util.py | 8 |
2 files changed, 18 insertions, 20 deletions
diff --git a/git/objects/util.py b/git/objects/util.py index 5fb4c58a..7173bc7a 100644 --- a/git/objects/util.py +++ b/git/objects/util.py @@ -23,7 +23,7 @@ from datetime import datetime, timedelta, tzinfo from typing import (Any, Callable, Deque, Iterator, NamedTuple, overload, Sequence, TYPE_CHECKING, Tuple, Type, TypeVar, Union, cast) -from git.types import Literal, TypeGuard +from git.types import Literal if TYPE_CHECKING: from io import BytesIO, StringIO @@ -306,23 +306,19 @@ class Traversable(object): """ raise NotImplementedError("To be implemented in subclass") - def list_traverse(self, *args: Any, **kwargs: Any) -> IterableList['TraversableIterableObj']: + def list_traverse(self, *args: Any, **kwargs: Any) -> IterableList: """ :return: IterableList with the results of the traversal as produced by traverse() - List objects must be IterableObj and Traversable e.g. Commit, Submodule""" - - def is_TraversableIterableObj(inp: 'Traversable') -> TypeGuard['TraversableIterableObj']: - # return isinstance(self, TraversableIterableObj) - # Can it be anything else? Check this - return isinstance(self, TraversableIterableObj) + """ + if isinstance(self, TraversableIterableObj): + id = self._id_attribute_ + else: # Tree + id = "" - if is_TraversableIterableObj(self): - out: IterableList['TraversableIterableObj'] = IterableList(self._id_attribute_) - out.extend(self.traverse(*args, **kwargs)) - return out - else: - return IterableList("") # Its a Tree, which doesnt have _id_attribute_ + out: IterableList = IterableList(id) + out.extend(self.traverse(*args, **kwargs)) + return out def traverse(self, predicate: Callable[[Union['Traversable', 'Blob', TraversedTup], int], bool] = lambda i, d: True, @@ -449,7 +445,7 @@ class TraversableIterableObj(Traversable, IterableObj): TIobj_tuple = Tuple[Union[T_TIobj, None], T_TIobj] - @overload # type: ignore + @ overload # type: ignore def traverse(self: T_TIobj, predicate: Callable[[Union[T_TIobj, Tuple[Union[T_TIobj, None], T_TIobj]], int], bool], prune: Callable[[Union[T_TIobj, Tuple[Union[T_TIobj, None], T_TIobj]], int], bool], @@ -459,7 +455,7 @@ class TraversableIterableObj(Traversable, IterableObj): ) -> Iterator[T_TIobj]: ... - @overload + @ overload def traverse(self: T_TIobj, predicate: Callable[[Union[T_TIobj, Tuple[Union[T_TIobj, None], T_TIobj]], int], bool], prune: Callable[[Union[T_TIobj, Tuple[Union[T_TIobj, None], T_TIobj]], int], bool], @@ -469,7 +465,7 @@ class TraversableIterableObj(Traversable, IterableObj): ) -> Iterator[Tuple[Union[T_TIobj, None], T_TIobj]]: ... - @overload + @ overload def traverse(self: T_TIobj, predicate: Callable[[Union[T_TIobj, TIobj_tuple], int], bool], prune: Callable[[Union[T_TIobj, TIobj_tuple], int], bool], diff --git a/git/util.py b/git/util.py index b13af358..63ac6134 100644 --- a/git/util.py +++ b/git/util.py @@ -36,11 +36,13 @@ if TYPE_CHECKING: from git.remote import Remote from git.repo.base import Repo from git.config import GitConfigParser, SectionConstraint + from git.objects.base import IndexObject -from .types import (Literal, Protocol, SupportsIndex, # because behind py version guards + +from .types import (Literal, SupportsIndex, # because behind py version guards PathLike, HSH_TD, Total_TD, Files_TD) # aliases -T_IterableObj = TypeVar('T_IterableObj', bound='IterableObj', covariant=True) +T_IterableObj = TypeVar('T_IterableObj', bound=Union['IterableObj', 'IndexObject'], covariant=True) # So IterableList[Head] is subtype of IterableList[IterableObj] # --------------------------------------------------------------------- @@ -1068,7 +1070,7 @@ class Iterable(object): raise NotImplementedError("To be implemented by Subclass") -class IterableObj(Protocol): +class IterableObj(): """Defines an interface for iterable items which is to assure a uniform way to retrieve and iterate items within the git repository |