Skip to content

Commit e035a87

Browse files
committed
Implement not implemented options
1 parent 9d7df46 commit e035a87

File tree

5 files changed

+670
-49
lines changed

5 files changed

+670
-49
lines changed

pygit2/_libgit2/ffi.pyi

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ class _MultiPointer(Generic[T]):
5858
class ArrayC(Generic[T]):
5959
# incomplete!
6060
# def _len(self, ?) -> ?: ...
61-
pass
61+
def __getitem__(self, index: int) -> T: ...
62+
def __setitem__(self, index: int, value: T) -> None: ...
6263

6364
class GitTimeC:
6465
# incomplete
@@ -199,7 +200,7 @@ class GitStashSaveOptionsC:
199200

200201
class GitStrrayC:
201202
# incomplete?
202-
strings: NULL_TYPE | ArrayC[char]
203+
strings: NULL_TYPE | ArrayC[char_pointer]
203204
count: int
204205

205206
class GitTreeC:
@@ -335,6 +336,12 @@ def new(a: Literal['git_buf *'], b: tuple[NULL_TYPE, Literal[0]]) -> GitBufC: ..
335336
def new(a: Literal['char **']) -> _Pointer[char_pointer]: ...
336337
@overload
337338
def new(a: Literal['char[]', 'char []'], b: bytes | NULL_TYPE) -> ArrayC[char]: ...
339+
@overload
340+
def new(a: Literal['char ***']) -> Any: ... # For extensions_ptr in GET_EXTENSIONS
341+
@overload
342+
def new(a: Literal['char *[]'], b: int) -> ArrayC[char_pointer]: ... # For ext_array in SET_EXTENSIONS
343+
@overload
344+
def new(a: Literal['char *[]'], b: list[Any]) -> ArrayC[char_pointer]: ... # For string arrays
338345
def addressof(a: object, attribute: str) -> _Pointer[object]: ...
339346

340347
class buffer(bytes):
@@ -348,6 +355,10 @@ class buffer(bytes):
348355
@overload
349356
def cast(a: Literal['int'], b: object) -> int: ...
350357
@overload
358+
def cast(a: Literal['unsigned int'], b: object) -> int: ...
359+
@overload
351360
def cast(a: Literal['size_t'], b: object) -> int: ...
352361
@overload
353362
def cast(a: Literal['ssize_t'], b: object) -> int: ...
363+
@overload
364+
def cast(a: Literal['char *'], b: object) -> char_pointer: ...

pygit2/enums.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -979,21 +979,24 @@ class Option(IntEnum):
979979
GET_PACK_MAX_OBJECTS = options.GIT_OPT_GET_PACK_MAX_OBJECTS
980980
SET_PACK_MAX_OBJECTS = options.GIT_OPT_SET_PACK_MAX_OBJECTS
981981
DISABLE_PACK_KEEP_FILE_CHECKS = options.GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS
982-
# ENABLE_HTTP_EXPECT_CONTINUE = options.GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE
982+
ENABLE_HTTP_EXPECT_CONTINUE = options.GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE
983983
GET_MWINDOW_FILE_LIMIT = options.GIT_OPT_GET_MWINDOW_FILE_LIMIT
984984
SET_MWINDOW_FILE_LIMIT = options.GIT_OPT_SET_MWINDOW_FILE_LIMIT
985-
# SET_ODB_PACKED_PRIORITY = options.GIT_OPT_SET_ODB_PACKED_PRIORITY
986-
# SET_ODB_LOOSE_PRIORITY = options.GIT_OPT_SET_ODB_LOOSE_PRIORITY
987-
# GET_EXTENSIONS = options.GIT_OPT_GET_EXTENSIONS
988-
# SET_EXTENSIONS = options.GIT_OPT_SET_EXTENSIONS
985+
SET_ODB_PACKED_PRIORITY = options.GIT_OPT_SET_ODB_PACKED_PRIORITY
986+
SET_ODB_LOOSE_PRIORITY = options.GIT_OPT_SET_ODB_LOOSE_PRIORITY
987+
GET_EXTENSIONS = options.GIT_OPT_GET_EXTENSIONS
988+
SET_EXTENSIONS = options.GIT_OPT_SET_EXTENSIONS
989989
GET_OWNER_VALIDATION = options.GIT_OPT_GET_OWNER_VALIDATION
990990
SET_OWNER_VALIDATION = options.GIT_OPT_SET_OWNER_VALIDATION
991-
# GET_HOMEDIR = _pygit2.GIT_OPT_GET_HOMEDIR
992-
# SET_HOMEDIR = _pygit2.GIT_OPT_SET_HOMEDIR
993-
# SET_SERVER_CONNECT_TIMEOUT = _pygit2.GIT_OPT_SET_SERVER_CONNECT_TIMEOUT
994-
# GET_SERVER_CONNECT_TIMEOUT = _pygit2.GIT_OPT_GET_SERVER_CONNECT_TIMEOUT
995-
# SET_SERVER_TIMEOUT = _pygit2.GIT_OPT_SET_SERVER_TIMEOUT
996-
# GET_SERVER_TIMEOUT = _pygit2.GIT_OPT_GET_SERVER_TIMEOUT
991+
GET_HOMEDIR = options.GIT_OPT_GET_HOMEDIR
992+
SET_HOMEDIR = options.GIT_OPT_SET_HOMEDIR
993+
SET_SERVER_CONNECT_TIMEOUT = options.GIT_OPT_SET_SERVER_CONNECT_TIMEOUT
994+
GET_SERVER_CONNECT_TIMEOUT = options.GIT_OPT_GET_SERVER_CONNECT_TIMEOUT
995+
SET_SERVER_TIMEOUT = options.GIT_OPT_SET_SERVER_TIMEOUT
996+
GET_SERVER_TIMEOUT = options.GIT_OPT_GET_SERVER_TIMEOUT
997+
GET_USER_AGENT_PRODUCT = options.GIT_OPT_GET_USER_AGENT_PRODUCT
998+
SET_USER_AGENT_PRODUCT = options.GIT_OPT_SET_USER_AGENT_PRODUCT
999+
ADD_SSL_X509_CERT = options.GIT_OPT_ADD_SSL_X509_CERT
9971000

9981001

9991002
class ReferenceFilter(IntEnum):

0 commit comments

Comments
 (0)