summaryrefslogtreecommitdiff
path: root/testsuite/driver/my_typing.py
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/driver/my_typing.py')
-rw-r--r--testsuite/driver/my_typing.py43
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)