view mercurial/cext/parsers.pyi @ 50072:a99dcf53eebd

dirstate-guard: remove the feature The dirstate guard duplicated some of the logic already implemented in the transaction (and now the changing_* context). However the feature was incomplete, for example, living only in memory meant we could not recover from the hardest crash. In addition this duplicated with the transaction logic meant things could go out of sync or step on each other. Removing the feature now that we no longer needs it seems the safest.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 16 Feb 2023 00:33:15 +0100
parents df5d3b0d6472
children f8bf1a8e9181
line wrap: on
line source

from typing import (
    Callable,
    Dict,
    Iterator,
    List,
    Optional,
    Set,
    Tuple,
    Union,
)

version: int
versionerrortext: str

class DirstateItem:
    __doc__: str

    def __len__(self) -> int: ...
    def __getitem__(self, key: int) -> Union[bytes, int]: ...

# From dirs.c

class dirs:
    __doc__: str
    def __init__(self, source, skipchar: bytes): ...
    def __iter__(self) -> Iterator[bytes]: ...
    def addpath(self, path: bytes) -> None: ...
    def delpath(self, path: bytes) -> None: ...

# From manifest.c
class lazymanifest:
    def __init__(self, nodelen: int, data: bytes): ...
    def __iter__(self) -> Iterator[bytes]: ...

    def __len__(self) -> int: ...
    def __getitem__(self, item: bytes) -> Optional[Tuple[bytes, bytes]]: ...
    def __setitem__(self, key: bytes, value: Tuple[bytes, bytes]) -> None: ...
    def __delitem__(self, key: bytes) -> None: ...

    def iterkeys(self) -> Iterator[bytes]: ...
    def iterentries(self) -> Iterator[Tuple[bytes, bytes, bytes]]: ...
    def copy(self) -> lazymanifest: ...
    def filtercopy(self, matchfn: Callable[[bytes], bool]) -> lazymanifest: ...
    def diff(self, other: lazymanifest, clean: Optional[bool]) -> Dict[bytes, Tuple[bytes, Tuple]]: ...
    def text(self) -> bytes: ...

# From revlog.c

class index:
    __doc__: str

    nodemap: Dict[bytes, int]

    def ancestors(self, *args: int) -> Iterator[int]: ...
    def commonancestorsheads(self, *args: int) -> List[int]: ...
    def clearcaches(self) -> None: ...
    def get(self, value: bytes) -> Optional[int]: ...
    def get_rev(self, value: bytes) -> Optional[int]: ...
    def has_node(self, value: Union[int, bytes]) -> bool: ...
    def rev(self, node: bytes) -> int: ...
    def computephasesmapsets(self, root: Dict[int, Set[bytes]]) -> Tuple[int, Dict[int, Set[bytes]]]: ...
    def reachableroots2(self, minroot: int, heads: List[int], roots: List[int], includepath: bool) -> List[int]: ...
    def headrevs(self, filteredrevs: Optional[List[int]]) -> List[int]: ...
    def headrevsfiltered(self, filteredrevs: Optional[List[int]]) -> List[int]: ...
    def issnapshot(self, value: int) -> bool: ...
    def findsnapshots(self, cache: Dict[int, List[int]], start_rev: int) -> None: ...
    def deltachain(self, rev: int, stop: int, generaldelta: bool) -> Tuple[List[int], bool]: ...
    def slicechunktodensity(self, revs: List[int], targetdensity: float, mingapsize: int) -> List[List[int]]: ...
    def append(self, value: Tuple[int, int, int, int, int, int, int, bytes]) -> None: ...
    def partialmatch(self, node: bytes) -> bytes: ...
    def shortest(self, value: bytes) -> int: ...
    def stats(self) -> Dict[bytes, int]: ...

class nodetree:
    __doc__: str

    def insert(self, rev: int) -> None: ...
    def shortest(self, node: bytes) -> int: ...

# The IndexObject type here is defined in C, and there's no type for a buffer
# return, as of py3.11.  https://github.com/python/typing/issues/593
def parse_index2(data: object, inline: object, format: int = ...) -> Tuple[object, Optional[Tuple[int, object]]]: ...