diff options
Diffstat (limited to 'git/db.py')
-rw-r--r-- | git/db.py | 30 |
1 files changed, 18 insertions, 12 deletions
@@ -7,15 +7,21 @@ from gitdb.base import ( from gitdb.db import GitDB # @UnusedImport from gitdb.db import LooseObjectDB -from .exc import ( - GitCommandError, - BadObject -) +from gitdb.exc import BadObject +from git.exc import GitCommandError +# typing------------------------------------------------- -__all__ = ('GitCmdObjectDB', 'GitDB') +from typing import TYPE_CHECKING +from git.types import PathLike + +if TYPE_CHECKING: + from git.cmd import Git + -# class GitCmdObjectDB(CompoundDB, ObjectDBW): +# -------------------------------------------------------- + +__all__ = ('GitCmdObjectDB', 'GitDB') class GitCmdObjectDB(LooseObjectDB): @@ -28,23 +34,23 @@ class GitCmdObjectDB(LooseObjectDB): have packs and the other implementations """ - def __init__(self, root_path, git): + def __init__(self, root_path: PathLike, git: 'Git') -> None: """Initialize this instance with the root and a git command""" super(GitCmdObjectDB, self).__init__(root_path) self._git = git - def info(self, sha): - hexsha, typename, size = self._git.get_object_header(bin_to_hex(sha)) + def info(self, binsha: bytes) -> OInfo: + hexsha, typename, size = self._git.get_object_header(bin_to_hex(binsha)) return OInfo(hex_to_bin(hexsha), typename, size) - def stream(self, sha): + def stream(self, binsha: bytes) -> OStream: """For now, all lookup is done by git itself""" - hexsha, typename, size, stream = self._git.stream_object_data(bin_to_hex(sha)) + hexsha, typename, size, stream = self._git.stream_object_data(bin_to_hex(binsha)) return OStream(hex_to_bin(hexsha), typename, size, stream) # { Interface - def partial_to_complete_sha_hex(self, partial_hexsha): + def partial_to_complete_sha_hex(self, partial_hexsha: str) -> bytes: """:return: Full binary 20 byte sha from the given partial hexsha :raise AmbiguousObjectName: :raise BadObject: |