diff options
Diffstat (limited to 'testsuite/driver/my_typing.py')
-rw-r--r-- | testsuite/driver/my_typing.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/testsuite/driver/my_typing.py b/testsuite/driver/my_typing.py new file mode 100644 index 0000000000..8347e84b5a --- /dev/null +++ b/testsuite/driver/my_typing.py @@ -0,0 +1,43 @@ +""" +This module provides some type definitions and backwards compatibility shims +for use in the testsuite driver. + +The testsuite driver can be typechecked using mypy [1]. + + +[1] http://mypy-lang.org/ +""" + +try: + from typing import * + import typing +except: + # The backwards compatibility stubs must live in another module lest + # mypy complains. + from typing_stubs import * # type: ignore + + +#################################################### +# Backwards compatibility shims +# +# N.B. mypy appears to typecheck as though the "then" clause of if structures +# is taken. We exploit this below. + +# TextIO is missing on some older Pythons. +if 'TextIO' in globals(): + TextIO = typing.TextIO +else: + TextIO = None # type: ignore + + +#################################################### +# Testsuite-specific types + +WayName = NewType("WayName", str) +TestName = NewType("TestName", str) +OutputNormalizer = Callable[[str], str] +IssueNumber = NewType("IssueNumber", int) + +# Used by perf_notes +GitHash = NewType("GitHash", str) +GitRef = NewType("GitRef", str) |