mercurial/cext/osutil.pyi
author Raphaël Gomès <rgomes@octobus.net>
Thu, 02 Nov 2023 11:19:54 +0100
changeset 51226 002b49905aac
parent 49735 b6fc602e074a
permissions -rw-r--r--
rust-index: implementation of __getitem__ Although the removed panic tends to prove if the full test suite did pass that the case when the input is a node id does not happen, it is best not to remove it right now. Raising IndexError is crucial for iteration on the index to stop, given the default CPython sequence iterator, see for instance https://github.com/zpoint/CPython-Internals/blobs/master/BasicObject/iter/iter.md This was spotted by `test-rust-ancestors.py`, which does simple interations on indexes (as preflight checks). In `revlog.c`, `index_getitem` defaults to `index_get` when called on revision numbers, which does raise `IndexError` with the same message as the one we are introducing here.

from typing import (
    AnyStr,
    IO,
    List,
    Optional,
    Sequence,
)

version: int

class stat:
    st_dev: int
    st_mode: int
    st_nlink: int
    st_size: int
    st_mtime: int
    st_ctime: int

def listdir(path: bytes, st: bool, skip: Optional[bool]) -> List[stat]: ...
def posixfile(name: AnyStr, mode: bytes, buffering: int) -> IO: ...
def statfiles(names: Sequence[bytes]) -> List[stat]: ...
def setprocname(name: bytes) -> None: ...
def getfstype(path: bytes) -> bytes: ...
def getfsmountpoint(path: bytes) -> bytes: ...
def unblocksignal(sig: int) -> None: ...
def isgui() -> bool: ...