Skip to content

Commit 58b88c2

Browse files
committed
add typing for packbuilder.py
1 parent 0fe1aac commit 58b88c2

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

pygit2/packbuilder.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,29 @@
2525

2626

2727
# Import from pygit2
28+
29+
from typing import Any
30+
31+
from ._pygit2 import Oid
2832
from .errors import check_error
2933
from .ffi import C, ffi
30-
from .utils import to_bytes
34+
from .repository import BaseRepository
35+
from .utils import StrOrBytesOrPathLike, buffer_to_bytes, to_bytes
3136

3237

3338
class PackBuilder:
34-
def __init__(self, repo):
39+
def __init__(self, repo: BaseRepository):
3540
cpackbuilder = ffi.new('git_packbuilder **')
3641
err = C.git_packbuilder_new(cpackbuilder, repo._repo)
3742
check_error(err)
3843

3944
self._repo = repo
40-
self._packbuilder = cpackbuilder[0]
45+
self._packbuilder: Any = cpackbuilder[0]
4146
self._cpackbuilder = cpackbuilder
4247

4348
@property
4449
def _pointer(self):
45-
return bytes(ffi.buffer(self._packbuilder)[:])
50+
return bytes(buffer_to_bytes(self._packbuilder))
4651

4752
def __del__(self):
4853
C.git_packbuilder_free(self._packbuilder)
@@ -51,29 +56,31 @@ def __len__(self):
5156
return C.git_packbuilder_object_count(self._packbuilder)
5257

5358
@staticmethod
54-
def __convert_object_to_oid(oid):
59+
def __convert_object_to_oid(oid: Oid):
5560
git_oid = ffi.new('git_oid *')
5661
ffi.buffer(git_oid)[:] = oid.raw[:]
5762
return git_oid
5863

59-
def add(self, oid):
64+
def add(self, oid: Oid):
6065
git_oid = self.__convert_object_to_oid(oid)
6166
err = C.git_packbuilder_insert(self._packbuilder, git_oid, ffi.NULL)
6267
check_error(err)
6368

64-
def add_recur(self, oid):
69+
def add_recur(self, oid: Oid):
6570
git_oid = self.__convert_object_to_oid(oid)
6671
err = C.git_packbuilder_insert_recur(self._packbuilder, git_oid, ffi.NULL)
6772
check_error(err)
6873

69-
def set_threads(self, n_threads):
74+
def set_threads(self, n_threads: int):
7075
return C.git_packbuilder_set_threads(self._packbuilder, n_threads)
7176

72-
def write(self, path=None):
73-
path = ffi.NULL if path is None else to_bytes(path)
74-
err = C.git_packbuilder_write(self._packbuilder, path, 0, ffi.NULL, ffi.NULL)
77+
def write(self, path: StrOrBytesOrPathLike | None = None):
78+
resolved_path = ffi.NULL if path is None else to_bytes(path)
79+
err = C.git_packbuilder_write(
80+
self._packbuilder, resolved_path, 0, ffi.NULL, ffi.NULL
81+
)
7582
check_error(err)
7683

7784
@property
78-
def written_objects_count(self):
85+
def written_objects_count(self) -> int:
7986
return C.git_packbuilder_written(self._packbuilder)

0 commit comments

Comments
 (0)