##// END OF EJS Templates
interfaces: add a Protocol class for `scmutil.status`...
interfaces: add a Protocol class for `scmutil.status` I initially tried moving this to the `interfaces` package, both to have more cleanly defined interfaces (interfaces shouldn't have to reach into implementation files for their type info), and because importing `mercurial.ui` either directly or indirectly into `interfaces.repository` causes a situation where pytype stops inferring the type for `revlogutils.constants` that are imported by `revlog`. (Likely this is caused by a cycle. The `dirstate` interface already imports `scmutil`, which in turn imports `ui`, so the `repository` interface module importing the `dirstate` interface module as part of converting those classes to Protocol classes will trigger the issue.) I gave up on moving the class because `scmutil.status` depends on `stringutil`, which has a surprisingly long tail of dependencies. In any event, a standalone Protocol class might help with the Rust code.

File last commit:

r50491:b8389533 default
r53347:a1c0f19e default
Show More
bdiff.pyi
12 lines | 348 B | text/x-python | PythonLexer
Gregory Szorc
cext: add .pyi files for C extensions...
r46652 from typing import (
List,
Tuple,
)
version: int
Matt Harbison
typing: fix a syntax error in mercurial/cext/bdiff.pyi...
r50491 def bdiff(a: bytes, b: bytes) -> bytes: ...
Gregory Szorc
cext: add .pyi files for C extensions...
r46652 def blocks(a: bytes, b: bytes) -> List[Tuple[int, int, int, int]]: ...
def fixws(s: bytes, allws: bool) -> bytes: ...
def splitnewlines(text: bytes) -> List[bytes]: ...
def xdiffblocks(a: bytes, b: bytes) -> List[Tuple[int, int, int, int]]: ...