Home | History | Annotate | Download | only in test
      1 
      2 
      3 """
      4 The module for testing variable annotations.
      5 Empty lines above are for good reason (testing for correct line numbers)
      6 """
      7 
      8 from typing import Optional
      9 
     10 __annotations__[1] = 2
     11 
     12 class C:
     13 
     14     x = 5; y: Optional['C'] = None
     15 
     16 from typing import Tuple
     17 x: int = 5; y: str = x; f: Tuple[int, int]
     18 
     19 class M(type):
     20 
     21     __annotations__['123'] = 123
     22     o: type = object
     23 
     24 (pars): bool = True
     25 
     26 class D(C):
     27     j: str = 'hi'; k: str= 'bye'
     28 
     29 from types import new_class
     30 h_class = new_class('H', (C,))
     31 j_class = new_class('J')
     32 
     33 class F():
     34     z: int = 5
     35     def __init__(self, x):
     36         pass
     37 
     38 class Y(F):
     39     def __init__(self):
     40         super(F, self).__init__(123)
     41 
     42 class Meta(type):
     43     def __new__(meta, name, bases, namespace):
     44         return super().__new__(meta, name, bases, namespace)
     45 
     46 class S(metaclass = Meta):
     47     x: str = 'something'
     48     y: str = 'something else'
     49 
     50 def foo(x: int = 10):
     51     def bar(y: List[str]):
     52         x: str = 'yes'
     53     bar()
     54