与pyre类型检查器一起使用的类型系统扩展
pyre-extensions的Python项目详细描述
pyre扩展名
此模块定义了标准“类型”模块的扩展,这些模块受Pyre typechecker支持。
none_throws
函数对Optional
的显式进行假设。函数将引发
如果通过None
则出现断言错误,否则返回值。
参数规格
ParameterSpecification
s是捕获可调用参数的一种特殊类型变量。
规范(在运行时和inspect库中称为argspecs)而不是类型,允许
转换给定可调用的返回类型的修饰符的类型。
例如:
from typing import TypeVar, Callable, List
from pyre_extensions import ParameterSpecification
Tparams = ParameterSpecification("Tparams")
Treturn = TypeVar("Treturn")
def unwrap(f: Callable[Tparams, List[Treturn]) -> Callable[Tparams, Treturn]: ...
@unwrap
def foo(x: int, y: str, z: bool = False) -> List[int]:
return [1, 2, 3]
将foo修饰为返回int的可调用函数,但仍然具有相同的参数,包括 姓名和是否需要。