diff options
Diffstat (limited to 'tests/run/typing_module.py')
-rw-r--r-- | tests/run/typing_module.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/run/typing_module.py b/tests/run/typing_module.py new file mode 100644 index 000000000..c2e27e2ec --- /dev/null +++ b/tests/run/typing_module.py @@ -0,0 +1,42 @@ +# mode: run +# tag: pure3.6 + +from __future__ import print_function + +import cython + +try: + import typing + from typing import List + from typing import Set as _SET_ +except ImportError: + pass # this should allow Cython to interpret the directives even when the module doesn't exist + + +def test_subscripted_types(): + """ + >>> test_subscripted_types() + dict object + list object + set object + """ + a: typing.Dict[int, float] = {} + b: List[int] = [] + c: _SET_[object] = set() + + print(cython.typeof(a) + (" object" if not cython.compiled else "")) + print(cython.typeof(b) + (" object" if not cython.compiled else "")) + print(cython.typeof(c) + (" object" if not cython.compiled else "")) + +@cython.cclass +class TestClassVar: + """ + >>> TestClassVar.cls + 5 + >>> TestClassVar.regular # doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + AttributeError: + """ + regular: int + cls: typing.ClassVar[int] = 5 # this is a little redundant really because the assignment ensures it |