17db96d56Sopenharmony_ci 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci""" 47db96d56Sopenharmony_ciThe module for testing variable annotations. 57db96d56Sopenharmony_ciEmpty lines above are for good reason (testing for correct line numbers) 67db96d56Sopenharmony_ci""" 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_cifrom typing import Optional 97db96d56Sopenharmony_cifrom functools import wraps 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci__annotations__[1] = 2 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ciclass C: 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci x = 5; y: Optional['C'] = None 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_cifrom typing import Tuple 187db96d56Sopenharmony_cix: int = 5; y: str = x; f: Tuple[int, int] 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ciclass M(type): 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci __annotations__['123'] = 123 237db96d56Sopenharmony_ci o: type = object 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci(pars): bool = True 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ciclass D(C): 287db96d56Sopenharmony_ci j: str = 'hi'; k: str= 'bye' 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_cifrom types import new_class 317db96d56Sopenharmony_cih_class = new_class('H', (C,)) 327db96d56Sopenharmony_cij_class = new_class('J') 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ciclass F(): 357db96d56Sopenharmony_ci z: int = 5 367db96d56Sopenharmony_ci def __init__(self, x): 377db96d56Sopenharmony_ci pass 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ciclass Y(F): 407db96d56Sopenharmony_ci def __init__(self): 417db96d56Sopenharmony_ci super(F, self).__init__(123) 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ciclass Meta(type): 447db96d56Sopenharmony_ci def __new__(meta, name, bases, namespace): 457db96d56Sopenharmony_ci return super().__new__(meta, name, bases, namespace) 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ciclass S(metaclass = Meta): 487db96d56Sopenharmony_ci x: str = 'something' 497db96d56Sopenharmony_ci y: str = 'something else' 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_cidef foo(x: int = 10): 527db96d56Sopenharmony_ci def bar(y: List[str]): 537db96d56Sopenharmony_ci x: str = 'yes' 547db96d56Sopenharmony_ci bar() 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_cidef dec(func): 577db96d56Sopenharmony_ci @wraps(func) 587db96d56Sopenharmony_ci def wrapper(*args, **kwargs): 597db96d56Sopenharmony_ci return func(*args, **kwargs) 607db96d56Sopenharmony_ci return wrapper 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ciu: int | float 63