summaryrefslogtreecommitdiff
path: root/git/objects
diff options
context:
space:
mode:
Diffstat (limited to 'git/objects')
-rw-r--r--git/objects/commit.py4
-rw-r--r--git/objects/submodule/base.py20
-rw-r--r--git/objects/util.py11
3 files changed, 22 insertions, 13 deletions
diff --git a/git/objects/commit.py b/git/objects/commit.py
index 26db6e36..0b707450 100644
--- a/git/objects/commit.py
+++ b/git/objects/commit.py
@@ -8,7 +8,7 @@ from gitdb import IStream
from git.util import (
hex_to_bin,
Actor,
- Iterable,
+ IterableObj,
Stats,
finalize_process
)
@@ -47,7 +47,7 @@ log.addHandler(logging.NullHandler())
__all__ = ('Commit', )
-class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
+class Commit(base.Object, IterableObj, Diffable, Traversable, Serializable):
"""Wraps a git Commit object.
diff --git a/git/objects/submodule/base.py b/git/objects/submodule/base.py
index 8cf4dd1e..57396a46 100644
--- a/git/objects/submodule/base.py
+++ b/git/objects/submodule/base.py
@@ -3,7 +3,6 @@ from io import BytesIO
import logging
import os
import stat
-from typing import List
from unittest import SkipTest
import uuid
@@ -27,7 +26,7 @@ from git.exc import (
from git.objects.base import IndexObject, Object
from git.objects.util import Traversable
from git.util import (
- Iterable,
+ IterableObj,
join_path_native,
to_native_path_linux,
RemoteProgress,
@@ -47,6 +46,15 @@ from .util import (
)
+# typing ----------------------------------------------------------------------
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from git.util import IterableList
+
+# -----------------------------------------------------------------------------
+
__all__ = ["Submodule", "UpdateProgress"]
@@ -74,7 +82,7 @@ UPDWKTREE = UpdateProgress.UPDWKTREE
# IndexObject comes via util module, its a 'hacky' fix thanks to pythons import
# mechanism which cause plenty of trouble of the only reason for packages and
# modules is refactoring - subpackages shouldn't depend on parent packages
-class Submodule(IndexObject, Iterable, Traversable):
+class Submodule(IndexObject, IterableObj, Traversable):
"""Implements access to a git submodule. They are special in that their sha
represents a commit in the submodule's repository which is to be checked out
@@ -136,12 +144,12 @@ class Submodule(IndexObject, Iterable, Traversable):
# END handle attribute name
@classmethod
- def _get_intermediate_items(cls, item: 'Submodule') -> List['Submodule']: # type: ignore
+ def _get_intermediate_items(cls, item: 'Submodule') -> IterableList['Submodule']:
""":return: all the submodules of our module repository"""
try:
return cls.list_items(item.module())
except InvalidGitRepositoryError:
- return []
+ return IterableList('')
# END handle intermediate items
@classmethod
@@ -1163,7 +1171,7 @@ class Submodule(IndexObject, Iterable, Traversable):
:raise IOError: If the .gitmodules file/blob could not be read"""
return self._config_parser_constrained(read_only=True)
- def children(self):
+ def children(self) -> IterableList['Submodule']:
"""
:return: IterableList(Submodule, ...) an iterable list of submodules instances
which are children of this submodule or 0 if the submodule is not checked out"""
diff --git a/git/objects/util.py b/git/objects/util.py
index 087f0166..a565cf42 100644
--- a/git/objects/util.py
+++ b/git/objects/util.py
@@ -19,11 +19,11 @@ import calendar
from datetime import datetime, timedelta, tzinfo
# typing ------------------------------------------------------------
-from typing import (Any, Callable, Deque, Iterator, Sequence, TYPE_CHECKING, Tuple, Type, Union, cast, overload)
+from typing import (Any, Callable, Deque, Iterator, TYPE_CHECKING, Tuple, Type, Union, cast)
if TYPE_CHECKING:
from io import BytesIO, StringIO
- from .submodule.base import Submodule
+ from .submodule.base import Submodule # noqa: F401
from .commit import Commit
from .blob import Blob
from .tag import TagObject
@@ -284,6 +284,7 @@ class Traversable(object):
"""
__slots__ = ()
+ """
@overload
@classmethod
def _get_intermediate_items(cls, item: 'Commit') -> Tuple['Commit', ...]:
@@ -303,10 +304,10 @@ class Traversable(object):
@classmethod
def _get_intermediate_items(cls, item: 'Traversable') -> Tuple['Traversable', ...]:
...
+ """
@classmethod
- def _get_intermediate_items(cls, item: 'Traversable'
- ) -> Sequence['Traversable']:
+ def _get_intermediate_items(cls, item):
"""
Returns:
Tuple of items connected to the given item.
@@ -322,7 +323,7 @@ class Traversable(object):
"""
:return: IterableList with the results of the traversal as produced by
traverse()"""
- out = IterableList(self._id_attribute_) # type: ignore[attr-defined] # defined in sublcasses
+ out: IterableList = IterableList(self._id_attribute_) # type: ignore[attr-defined] # defined in sublcasses
out.extend(self.traverse(*args, **kwargs))
return out