comparison mercurial/thirdparty/attr/setters.pyi @ 49643:e1c586b9a43c

attr: vendor 22.1.0 The previous version was 5 years old, and pytype 2022.06.30 started complaining about various uses (e.g. seeing `mercurial.thirdparty.attr._make._CountingAttr` instead of `bytearray`). Hopefully this helps. Additionally, this has official python 3.11 support. The `attrs` package is left out, because it is simply a bunch of *.pyi stubs and `from attr.X import *`, and that's not how they've been used up to this point. We'd probably need to customize those anyway to `from mercurial.thirdparty.attr import *`.
author Matt Harbison <matt_harbison@yahoo.com>
date Mon, 21 Nov 2022 15:04:42 -0500
parents
children
comparison
equal deleted inserted replaced
49642:7e6f3c69c0fb 49643:e1c586b9a43c
1 from typing import Any, NewType, NoReturn, TypeVar, cast
2
3 from . import Attribute, _OnSetAttrType
4
5 _T = TypeVar("_T")
6
7 def frozen(
8 instance: Any, attribute: Attribute[Any], new_value: Any
9 ) -> NoReturn: ...
10 def pipe(*setters: _OnSetAttrType) -> _OnSetAttrType: ...
11 def validate(instance: Any, attribute: Attribute[_T], new_value: _T) -> _T: ...
12
13 # convert is allowed to return Any, because they can be chained using pipe.
14 def convert(
15 instance: Any, attribute: Attribute[Any], new_value: Any
16 ) -> Any: ...
17
18 _NoOpType = NewType("_NoOpType", object)
19 NO_OP: _NoOpType