Skip to content

Commit 9efa238

Browse files
committed
move types for Repository to implementation
1 parent 2af4bb2 commit 9efa238

File tree

8 files changed

+220
-339
lines changed

8 files changed

+220
-339
lines changed

pygit2/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,6 @@
307307
RefdbFsBackend,
308308
Reference,
309309
RefLogEntry,
310-
Repository,
311310
RevSpec,
312311
Signature,
313312
Stash,
@@ -348,7 +347,7 @@
348347
from .legacyenums import *
349348
from .packbuilder import PackBuilder
350349
from .remotes import Remote
351-
from .repository import Repository # noqa: F811
350+
from .repository import Repository
352351
from .settings import Settings
353352
from .submodules import Submodule
354353
from .utils import to_bytes, to_str

pygit2/_libgit2/ffi.pyi

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525

2626
from typing import Any, Generic, Literal, NewType, SupportsIndex, TypeVar, overload
2727

28-
from pygit2._pygit2 import Repository
29-
3028
T = TypeVar('T')
3129

3230
NULL_TYPE = NewType('NULL_TYPE', object)
@@ -82,7 +80,8 @@ class GitHunkC:
8280
class GitRepositoryC:
8381
# incomplete
8482
# TODO: this has to be unified with pygit2._pygit2(pyi).Repository
85-
def _from_c(cls, ptr: 'GitRepositoryC', owned: bool) -> 'Repository': ...
83+
# def _from_c(cls, ptr: 'GitRepositoryC', owned: bool) -> 'Repository': ...
84+
pass
8685

8786
class GitFetchOptionsC:
8887
# TODO: FetchOptions exist in _pygit2.pyi
@@ -318,7 +317,7 @@ def new(
318317
a: Literal['git_remote_head ***'],
319318
) -> _Pointer[_MultiPointer[GitRemoteHeadC]]: ...
320319
@overload
321-
def new(a: Literal['size_t *']) -> size_t: ...
320+
def new(a: Literal['size_t *', 'size_t*']) -> size_t: ...
322321
@overload
323322
def new(a: Literal['git_stash_save_options *']) -> GitStashSaveOptionsC: ...
324323
@overload

pygit2/_pygit2.pyi

Lines changed: 2 additions & 217 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import tarfile
21
from io import DEFAULT_BUFFER_SIZE, IOBase
32
from pathlib import Path
43
from queue import Queue
54
from threading import Event
65
from typing import (
7-
Callable,
86
Generic,
97
Iterator,
108
Literal,
@@ -16,54 +14,35 @@ from typing import (
1614
overload,
1715
)
1816

19-
from . import Index, IndexEntry
17+
from . import Index
2018
from ._libgit2.ffi import (
2119
GitCommitC,
22-
GitMergeOptionsC,
2320
GitObjectC,
2421
GitProxyOptionsC,
25-
GitRepositoryC,
2622
GitSignatureC,
2723
_Pointer,
2824
)
29-
from .blame import Blame
30-
from .branches import Branches
31-
from .callbacks import CheckoutCallbacks, StashApplyCallbacks
32-
from .config import Config
3325
from .enums import (
3426
ApplyLocation,
35-
AttrCheck,
36-
BlameFlag,
3727
BlobFilter,
3828
BranchType,
39-
CheckoutStrategy,
4029
ConfigLevel,
4130
DeltaStatus,
42-
DescribeStrategy,
4331
DiffFind,
4432
DiffFlag,
4533
DiffOption,
4634
DiffStatsFormat,
4735
FileMode,
4836
MergeAnalysis,
49-
MergeFavor,
50-
MergeFileFlag,
51-
MergeFlag,
5237
MergePreference,
5338
ObjectType,
5439
Option,
5540
ReferenceFilter,
5641
ReferenceType,
57-
RepositoryState,
5842
ResetMode,
5943
SortMode,
6044
)
6145
from .filter import Filter
62-
from .index import MergeFileResult
63-
from .packbuilder import PackBuilder
64-
from .references import References
65-
from .remotes import RemoteCollection
66-
from .submodules import SubmoduleCollection
6746

6847
GIT_OBJ_BLOB = Literal[3]
6948
GIT_OBJ_COMMIT = Literal[1]
@@ -575,7 +554,7 @@ class Odb:
575554
def add_disk_alternate(self, path: str | Path) -> None: ...
576555
def exists(self, oid: _OidArg) -> bool: ...
577556
def read(self, oid: _OidArg) -> tuple[int, bytes]: ...
578-
def write(self, type: int, data: bytes) -> Oid: ...
557+
def write(self, type: int, data: bytes | str) -> Oid: ...
579558
def __contains__(self, other: _OidArg) -> bool: ...
580559
def __iter__(self) -> Iterator[Oid]: ... # Odb_as_iter
581560

@@ -691,46 +670,11 @@ class _LsRemotesDict(TypedDict):
691670
oid: Oid
692671

693672
class Repository:
694-
_pointer: GitRepositoryC
695-
_repo: GitRepositoryC
696-
backend: RefdbBackend
697-
default_signature: Signature
698-
head: Reference
699-
head_is_detached: bool
700-
head_is_unborn: bool
701-
is_bare: bool
702-
is_empty: bool
703-
is_shallow: bool
704-
odb: Odb
705-
path: str
706-
refdb: Refdb
707-
workdir: str
708-
references: References
709-
remotes: RemoteCollection
710-
branches: Branches
711-
submodules: SubmoduleCollection
712-
index: Index
713-
def __init__(self, *args, **kwargs) -> None: ...
714673
def TreeBuilder(self, src: Tree | _OidArg = ...) -> TreeBuilder: ...
715674
def _disown(self, *args, **kwargs) -> None: ...
716-
@classmethod
717-
def _from_c(cls, ptr: 'GitRepositoryC', owned: bool) -> 'Repository': ...
718-
def __iter__(self) -> Iterator[Oid]: ...
719-
def __getitem__(self, key: str | Oid) -> Object: ...
720-
def __contains__(self, name: _OidArg) -> bool: ...
721675
def add_worktree(
722676
self, name: str, path: str | Path, ref: Reference = ...
723677
) -> Worktree: ...
724-
def amend_commit(
725-
self,
726-
commit: Commit | Oid | str,
727-
refname: Reference | str | None,
728-
author: Signature | None = None,
729-
committer: Signature | None = None,
730-
message: str | None = None,
731-
tree: Tree | Oid | str | None = None,
732-
encoding: str = 'UTF-8',
733-
) -> Oid: ...
734678
def applies(
735679
self,
736680
diff: Diff,
@@ -740,30 +684,8 @@ class Repository:
740684
def apply(
741685
self, diff: Diff, location: ApplyLocation = ApplyLocation.WORKDIR
742686
) -> None: ...
743-
def blame(
744-
self,
745-
path: str,
746-
flags: BlameFlag = BlameFlag.NORMAL,
747-
min_match_characters: int | None = None,
748-
newest_commit: _OidArg | None = None,
749-
oldest_commit: _OidArg | None = None,
750-
min_line: int | None = None,
751-
max_line: int | None = None,
752-
) -> Blame: ...
753-
def checkout(
754-
self,
755-
refname: _OidArg | None | Reference = None,
756-
*,
757-
strategy: CheckoutStrategy | None = None,
758-
directory: str | Path | None = None,
759-
paths: list[str] | None = None,
760-
callbacks: CheckoutCallbacks | None = None,
761-
) -> None: ...
762-
def ahead_behind(self, local: _OidArg, upstream: _OidArg) -> tuple[int, int]: ...
763687
def cherrypick(self, id: _OidArg) -> None: ...
764688
def compress_references(self) -> None: ...
765-
@property
766-
def config(self) -> Config: ...
767689
def create_blob(self, data: str | bytes) -> Oid: ...
768690
def create_blob_fromdisk(self, path: str) -> Oid: ...
769691
def create_blob_fromiobase(self, iobase: IOBase) -> Oid: ...
@@ -800,13 +722,6 @@ class Repository:
800722
ref: str = 'refs/notes/commits',
801723
force: bool = False,
802724
) -> Oid: ...
803-
def create_reference(
804-
self,
805-
name: str,
806-
target: _OidArg,
807-
force: bool = False,
808-
message: str | None = None,
809-
) -> Reference: ...
810725
def create_reference_direct(
811726
self, name: str, target: _OidArg, force: bool, message: Optional[str] = None
812727
) -> Reference: ...
@@ -816,50 +731,13 @@ class Repository:
816731
def create_tag(
817732
self, name: str, oid: _OidArg, type: ObjectType, tagger: Signature, message: str
818733
) -> Oid: ...
819-
def diff(
820-
self,
821-
a: None | str | bytes | Commit | Oid | Reference = None,
822-
b: None | str | bytes | Commit | Oid | Reference = None,
823-
cached: bool = False,
824-
flags: DiffOption = DiffOption.NORMAL,
825-
context_lines: int = 3,
826-
interhunk_lines: int = 0,
827-
) -> Diff: ...
828734
def descendant_of(self, oid1: _OidArg, oid2: _OidArg) -> bool: ...
829-
def describe(
830-
self,
831-
committish: str | Reference | Commit | None = None,
832-
max_candidates_tags: int | None = None,
833-
describe_strategy: DescribeStrategy = DescribeStrategy.DEFAULT,
834-
pattern: str | None = None,
835-
only_follow_first_parent: bool | None = None,
836-
show_commit_oid_as_fallback: bool | None = None,
837-
abbreviated_size: object | None = None,
838-
always_use_long_format: bool | None = None,
839-
dirty_suffix: str | None = None,
840-
) -> str: ...
841735
def expand_id(self, hex: str) -> Oid: ...
842736
def free(self) -> None: ...
843-
def get(self, key: _OidArg, default: Optional[Commit] = None) -> None | Object: ...
844-
def get_attr(
845-
self,
846-
path: str | bytes | Path,
847-
name: str | bytes,
848-
flags: AttrCheck = AttrCheck.FILE_THEN_INDEX,
849-
commit: _OidArg | None = None,
850-
) -> bool | None | str: ...
851737
def git_object_lookup_prefix(self, oid: _OidArg) -> Object: ...
852-
def hashfile(
853-
self,
854-
path: str,
855-
object_type: ObjectType = ObjectType.BLOB,
856-
as_path: str | None = None,
857-
) -> Oid: ...
858738
def list_worktrees(self) -> list[str]: ...
859739
def listall_branches(self, flag: BranchType = BranchType.LOCAL) -> list[str]: ...
860740
def listall_mergeheads(self) -> list[Oid]: ...
861-
def listall_references(self) -> list[str]: ...
862-
def listall_reference_objects(self) -> list[Reference]: ...
863741
def listall_stashes(self) -> list[Stash]: ...
864742
def listall_submodules(self) -> list[str]: ...
865743
def lookup_branch(
@@ -871,130 +749,37 @@ class Repository:
871749
def lookup_reference(self, name: str) -> Reference: ...
872750
def lookup_reference_dwim(self, name: str) -> Reference: ...
873751
def lookup_worktree(self, name: str) -> Worktree: ...
874-
def merge(
875-
self,
876-
source: Reference | Commit | Oid | str,
877-
favor: MergeFavor = MergeFavor.NORMAL,
878-
flags: MergeFlag = MergeFlag.FIND_RENAMES,
879-
file_flags: MergeFileFlag = MergeFileFlag.DEFAULT,
880-
) -> None: ...
881752
def merge_analysis(
882753
self, their_head: _OidArg, our_ref: str = 'HEAD'
883754
) -> tuple[MergeAnalysis, MergePreference]: ...
884755
def merge_base(self, oid1: _OidArg, oid2: _OidArg) -> Oid: ...
885756
def merge_base_many(self, oids: list[_OidArg]) -> Oid: ...
886757
def merge_base_octopus(self, oids: list[_OidArg]) -> Oid: ...
887-
def merge_commits(
888-
self,
889-
ours: str | Oid | Commit,
890-
theirs: str | Oid | Commit,
891-
favor: MergeFavor = MergeFavor.NORMAL,
892-
flags: MergeFlag = MergeFlag.FIND_RENAMES,
893-
file_flags: MergeFileFlag = MergeFileFlag.DEFAULT,
894-
) -> Index: ...
895-
def merge_file_from_index(
896-
self,
897-
ancestor: IndexEntry | None,
898-
ours: IndexEntry | None,
899-
theirs: IndexEntry | None,
900-
use_deprecated: bool = True,
901-
) -> str | MergeFileResult | None: ...
902-
@staticmethod
903-
def _merge_options(
904-
favor: int | MergeFavor, flags: int | MergeFlag, file_flags: int | MergeFileFlag
905-
) -> GitMergeOptionsC: ...
906-
def merge_trees(
907-
self,
908-
ancestor: str | Oid | Tree,
909-
ours: str | Oid | Tree,
910-
theirs: str | Oid | Tree,
911-
favor: MergeFavor = MergeFavor.NORMAL,
912-
flags: MergeFlag = MergeFlag.FIND_RENAMES,
913-
file_flags: MergeFileFlag = MergeFileFlag.DEFAULT,
914-
) -> Index: ...
915-
@property
916-
def message(self) -> str: ...
917758
def notes(self) -> Iterator[Note]: ...
918-
def pack(
919-
self,
920-
path: str | Path | None = None,
921-
pack_delegate: Callable[[PackBuilder], None] | None = None,
922-
n_threads: int | None = None,
923-
) -> bool: ...
924759
def path_is_ignored(self, path: str) -> bool: ...
925760
def raw_listall_branches(
926761
self, flag: BranchType = BranchType.LOCAL
927762
) -> list[bytes]: ...
928763
def raw_listall_references(self) -> list[bytes]: ...
929-
@property
930-
def raw_message(self) -> bytes: ...
931-
def read(self, oid: _OidArg) -> tuple[int, bytes]: ...
932-
def remove_message(self) -> None: ...
933764
def references_iterator_init(self) -> Iterator[Reference]: ...
934765
def references_iterator_next(
935766
self,
936767
iter: Iterator,
937768
references_return_type: ReferenceFilter = ReferenceFilter.ALL,
938769
) -> Reference: ...
939770
def reset(self, oid: _OidArg, reset_type: ResetMode) -> None: ...
940-
def resolve_refish(self, refresh: str) -> tuple[Commit, Reference]: ...
941771
def revparse(self, revspec: str) -> RevSpec: ...
942772
def revparse_ext(self, revision: str) -> tuple[Object, Reference]: ...
943773
def revparse_single(self, revision: str) -> Object: ...
944-
def revert(self, commit: Commit) -> None: ...
945-
def revert_commit(
946-
self, revert_commit: Commit, our_commit: Commit, mainline: int = 0
947-
) -> Index: ...
948-
def set_head(self, target: _OidArg) -> None: ...
949-
def set_ident(self, name: str, email: str) -> None: ...
950774
def set_odb(self, odb: Odb) -> None: ...
951775
def set_refdb(self, refdb: Refdb) -> None: ...
952776
def status(
953777
self, untracked_files: str = 'all', ignored: bool = False
954778
) -> dict[str, int]: ...
955-
def stash(
956-
self,
957-
stasher: Signature,
958-
message: str | None = None,
959-
keep_index: bool = False,
960-
include_untracked: bool = False,
961-
include_ignored: bool = False,
962-
keep_all: bool = False,
963-
paths: list[str] | None = None,
964-
) -> Oid: ...
965-
def stash_apply(
966-
self,
967-
index: int = 0,
968-
reinstate_index: bool | None = None,
969-
include_untracked: bool | None = None,
970-
message: str | None = None,
971-
strategy: CheckoutStrategy | None = None,
972-
callbacks: StashApplyCallbacks | None = None,
973-
) -> None: ...
974-
def stash_pop(
975-
self,
976-
index: int = 0,
977-
reinstate_index: bool | None = None,
978-
include_untracked: bool | None = None,
979-
message: str | None = None,
980-
strategy: CheckoutStrategy | None = None,
981-
callbacks: StashApplyCallbacks | None = None,
982-
) -> None: ...
983-
def stash_drop(self, index: int = 0) -> None: ...
984779
def status_file(self, path: str) -> int: ...
985-
def state(self) -> RepositoryState: ...
986-
def state_cleanup(self) -> None: ...
987780
def walk(
988781
self, oid: _OidArg | None, sort_mode: SortMode = SortMode.NONE
989782
) -> Walker: ...
990-
def write(self, type: int, data: bytes | str) -> Oid: ...
991-
def write_archive(
992-
self,
993-
treeish: str | Tree | Object | Oid,
994-
archive: tarfile.TarFile,
995-
timestamp: int | None = None,
996-
prefix: str = '',
997-
) -> None: ...
998783

999784
class RevSpec:
1000785
flags: int

0 commit comments

Comments
 (0)