1from inspect import Signature 2from numbers import Integral 3from typing import Any, Callable, Dict, List, Optional, Tuple, TypeVar, Union 4 5 6def f0(x: int, y: Integral) -> None: 7 pass 8 9 10def f1(x: List[int]) -> List[int]: 11 pass 12 13 14T = TypeVar('T') 15T_co = TypeVar('T_co', covariant=True) 16T_contra = TypeVar('T_contra', contravariant=True) 17 18 19def f2(x: List[T], y: List[T_co], z: T) -> List[T_contra]: 20 pass 21 22 23def f3(x: Union[str, Integral]) -> None: 24 pass 25 26 27MyStr = str 28 29 30def f4(x: 'MyStr', y: MyStr) -> None: 31 pass 32 33 34def f5(x: int, *, y: str, z: str) -> None: 35 pass 36 37 38def f6(x: int, *args, y: str, z: str) -> None: 39 pass 40 41 42def f7(x: int = None, y: dict = {}) -> None: 43 pass 44 45 46def f8(x: Callable[[int, str], int]) -> None: 47 # See https://github.com/ambv/typehinting/issues/149 for Callable[..., int] 48 pass 49 50 51def f9(x: Callable) -> None: 52 pass 53 54 55def f10(x: Tuple[int, str], y: Tuple[int, ...]) -> None: 56 pass 57 58 59class CustomAnnotation: 60 def __repr__(self): 61 return 'CustomAnnotation' 62 63 64def f11(x: CustomAnnotation(), y: 123) -> None: 65 pass 66 67 68def f12() -> Tuple[int, str, int]: 69 pass 70 71 72def f13() -> Optional[str]: 73 pass 74 75 76def f14() -> Any: 77 pass 78 79 80def f15(x: "Unknown", y: "int") -> Any: # type: ignore # NOQA 81 pass 82 83 84def f16(arg1, arg2, *, arg3=None, arg4=None): 85 pass 86 87 88def f17(*, arg3, arg4): 89 pass 90 91 92def f18(self, arg1: Union[int, Tuple] = 10) -> List[Dict]: 93 pass 94 95 96def f19(*args: int, **kwargs: str): 97 pass 98 99 100def f20() -> Optional[Union[int, str]]: 101 pass 102 103 104def f21(arg1='whatever', arg2=Signature.empty): 105 pass 106 107 108class Node: 109 def __init__(self, parent: Optional['Node']) -> None: 110 pass 111 112 def children(self) -> List['Node']: 113 pass 114