view mercurial/thirdparty/attr/setters.pyi @ 51017:edc44ab7437a

debug-revlog: keep the revlog open for the analysis duration This is more explicit. No performance differences were observed.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 25 Sep 2023 16:57:53 +0200
parents e1c586b9a43c
children
line wrap: on
line source

from typing import Any, NewType, NoReturn, TypeVar, cast

from . import Attribute, _OnSetAttrType

_T = TypeVar("_T")

def frozen(
    instance: Any, attribute: Attribute[Any], new_value: Any
) -> NoReturn: ...
def pipe(*setters: _OnSetAttrType) -> _OnSetAttrType: ...
def validate(instance: Any, attribute: Attribute[_T], new_value: _T) -> _T: ...

# convert is allowed to return Any, because they can be chained using pipe.
def convert(
    instance: Any, attribute: Attribute[Any], new_value: Any
) -> Any: ...

_NoOpType = NewType("_NoOpType", object)
NO_OP: _NoOpType