view mercurial/cext/osutil.pyi @ 48052:d07d38ef6362

dirstate: Appease pytype test-check-pytype.t was failing since 98c0408324e6: File "/home/simon/projects/hg/mercurial/dirstatemap.py", line 572, in addfile: unsupported operand type(s) for &: 'size: None' and 'rangemask: int' [unsupported-operands] No attribute '__and__' on 'size: None' or '__rand__' on 'rangemask: int' File "/home/simon/projects/hg/mercurial/dirstatemap.py", line 573, in addfile: unsupported operand type(s) for &: 'mtime: None' and 'rangemask: int' [unsupported-operands] No attribute '__and__' on 'mtime: None' or '__rand__' on 'rangemask: int' `None` is the default value of the `size` and `mtime` parameters of the `addfile` method. However, the relevant lines are only used in a code path where those defaults are never used. These `size` and `mtime` are passed to `DirstateItem.new_normal` which (in the C implementation) calls `dirstate_item_new_normal` which uses: PyArg_ParseTuple(args, "iii", &mode, &size, &mtime) So `None` values would cause an exception to be raised anyway. The new `assert`s only move that exception earlier, and informs pytype that we expect `None` to never happen in this code path. Differential Revision: https://phab.mercurial-scm.org/D11500
author Simon Sapin <simon.sapin@octobus.net>
date Tue, 28 Sep 2021 13:43:14 +0200
parents 8dca9051a859
children c6a3243567b6
line wrap: on
line source

from typing import (
    AnyStr,
    IO,
    List,
    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: bool) -> List[stat]: ...
def posixfile(name: AnyStr, mode: bytes, buffering: int) -> IO: ...
def statfiles(names: Sequence[bytes]) -> List[stat]: ...
def recvfds(sockfd: int) -> List[int]: ...
def setprocname(name: bytes) -> None: ...
def getfstype(path: bytes) -> bytes: ...
def getfsmountpoint(path: bytes) -> bytes: ...
def unblocksignal(sig: int) -> None: ...
def isgui() -> bool: ...