commit 65c6626b658b5b99c7d9b46d2c25e9a5edb18dfc from: Jelmer Vernooij date: Sun Oct 23 21:00:52 2022 UTC add some typing in object_store. commit - ecaf366aabafc87df8b53596ef5d28a30a6d5fac commit + 65c6626b658b5b99c7d9b46d2c25e9a5edb18dfc blob - bcea5a7f4760273a4ff5ba0e09f39cc7cde65dc5 blob + b55d35b31e4034d4e152f4cc27adb383e41b9908 --- dulwich/object_store.py +++ dulwich/object_store.py @@ -38,6 +38,7 @@ from dulwich.errors import ( ) from dulwich.file import GitFile from dulwich.objects import ( + ObjectID, Commit, ShaFile, Tag, @@ -67,7 +68,7 @@ from dulwich.pack import ( PackStreamCopier, ) from dulwich.protocol import DEPTH_INFINITE -from dulwich.refs import ANNOTATED_TAG_SUFFIX +from dulwich.refs import ANNOTATED_TAG_SUFFIX, Ref INFODIR = "info" PACKDIR = "pack" @@ -83,9 +84,9 @@ class BaseObjectStore(object): def determine_wants_all( self, - refs: Dict[bytes, bytes], + refs: Dict[Ref, ObjectID], depth: Optional[int] = None - ) -> List[bytes]: + ) -> List[ObjectID]: def _want_deepen(sha): if not depth: return False @@ -139,7 +140,7 @@ class BaseObjectStore(object): """ raise NotImplementedError(self.get_raw) - def __getitem__(self, sha): + def __getitem__(self, sha: ObjectID): """Obtain an object by SHA1.""" type_num, uncomp = self.get_raw(sha) return ShaFile.from_raw_string(type_num, uncomp, sha=sha) @@ -984,7 +985,7 @@ class MemoryObjectStore(BaseObjectStore): """List with pack objects.""" return [] - def get_raw(self, name): + def get_raw(self, name: ObjectID): """Obtain the raw text for an object. Args: @@ -994,10 +995,10 @@ class MemoryObjectStore(BaseObjectStore): obj = self[self._to_hexsha(name)] return obj.type_num, obj.as_raw_string() - def __getitem__(self, name): + def __getitem__(self, name: ObjectID): return self._data[self._to_hexsha(name)].copy() - def __delitem__(self, name): + def __delitem__(self, name: ObjectID): """Delete an object from this store, for testing only.""" del self._data[self._to_hexsha(name)] blob - f3b5f7c86ba0b198dba68955cee7bf9ede03dd68 blob + d8f792f29be4ad90bb1723044fcb00e64ed06a4b --- dulwich/repo.py +++ dulwich/repo.py @@ -70,6 +70,7 @@ from dulwich.objects import ( ShaFile, Tag, Tree, + ObjectID, ) from dulwich.pack import ( pack_objects_to_data, @@ -86,6 +87,7 @@ from dulwich.hooks import ( from dulwich.line_ending import BlobNormalizer, TreeBlobNormalizer from dulwich.refs import ( # noqa: F401 + Ref, ANNOTATED_TAG_SUFFIX, LOCAL_BRANCH_PREFIX, LOCAL_TAG_PREFIX, @@ -777,7 +779,7 @@ class BaseRepo(object): return Walker(self.object_store, include, *args, **kwargs) - def __getitem__(self, name): + def __getitem__(self, name: Union[ObjectID, Ref]): """Retrieve a Git object by SHA1 or ref. Args: