summaryrefslogtreecommitdiff
path: root/git/objects/submodule/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/objects/submodule/base.py')
-rw-r--r--git/objects/submodule/base.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/git/objects/submodule/base.py b/git/objects/submodule/base.py
index 8cf4dd1e..cbf6cd0d 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,12 +26,13 @@ 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,
rmtree,
- unbare_repo
+ unbare_repo,
+ IterableList
)
from git.util import HIDE_WINDOWS_KNOWN_ERRORS
@@ -47,6 +47,11 @@ from .util import (
)
+# typing ----------------------------------------------------------------------
+
+
+# -----------------------------------------------------------------------------
+
__all__ = ["Submodule", "UpdateProgress"]
@@ -74,7 +79,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 +141,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
@@ -1153,7 +1158,7 @@ class Submodule(IndexObject, Iterable, Traversable):
"""
return self._name
- def config_reader(self):
+ def config_reader(self) -> SectionConstraint:
"""
:return: ConfigReader instance which allows you to qurey the configuration values
of this submodule, as provided by the .gitmodules file
@@ -1163,7 +1168,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"""