|
17 | 17 | import sys
|
18 | 18 | import argparse
|
19 | 19 |
|
| 20 | +PLATFORMS = ["win32", "linux"] |
| 21 | + |
20 | 22 | parser = argparse.ArgumentParser(description="Test runner for typeshed. "
|
21 | 23 | "Patterns are unanchored regexps on the full path.")
|
22 | 24 | parser.add_argument('-v', '--verbose', action='count', default=0, help="More output")
|
23 | 25 | parser.add_argument('-n', '--dry-run', action='store_true', help="Don't actually run mypy")
|
24 | 26 | parser.add_argument('-x', '--exclude', type=str, nargs='*', help="Exclude pattern")
|
25 | 27 | parser.add_argument('-p', '--python-version', type=str, nargs='*',
|
26 | 28 | help="These versions only (major[.minor])")
|
| 29 | +parser.add_argument('--platforms', type=str, nargs='*', |
| 30 | + help="These platforms only") |
27 | 31 | parser.add_argument('--warn-unused-ignores', action='store_true',
|
28 | 32 | help="Run mypy with --warn-unused-ignores "
|
29 | 33 | "(hint: only get rid of warnings that are "
|
@@ -96,6 +100,8 @@ def main():
|
96 | 100 | print("--- no versions selected ---")
|
97 | 101 | sys.exit(1)
|
98 | 102 |
|
| 103 | + platforms = args.platforms or PLATFORMS |
| 104 | + |
99 | 105 | code = 0
|
100 | 106 | runs = 0
|
101 | 107 | for major, minor in versions:
|
@@ -126,25 +132,27 @@ def main():
|
126 | 132 | seen.add(mod)
|
127 | 133 | files.append(fn)
|
128 | 134 | if files:
|
129 |
| - runs += 1 |
130 |
| - flags = ['--python-version', '%d.%d' % (major, minor)] |
131 |
| - flags.append('--strict-optional') |
132 |
| - flags.append('--no-site-packages') |
133 |
| - flags.append('--show-traceback') |
134 |
| - flags.append('--no-implicit-optional') |
135 |
| - flags.append('--disallow-any-generics') |
136 |
| - if args.warn_unused_ignores: |
137 |
| - flags.append('--warn-unused-ignores') |
138 |
| - sys.argv = ['mypy'] + flags + files |
139 |
| - if args.verbose: |
140 |
| - print("running", ' '.join(sys.argv)) |
141 |
| - else: |
142 |
| - print("running mypy", ' '.join(flags), "# with", len(files), "files") |
143 |
| - try: |
144 |
| - if not args.dry_run: |
145 |
| - mypy_main('', sys.stdout, sys.stderr) |
146 |
| - except SystemExit as err: |
147 |
| - code = max(code, err.code) |
| 135 | + for platform in platforms: |
| 136 | + runs += 1 |
| 137 | + flags = ['--python-version', '%d.%d' % (major, minor)] |
| 138 | + flags.append('--strict-optional') |
| 139 | + flags.append('--no-site-packages') |
| 140 | + flags.append('--show-traceback') |
| 141 | + flags.append('--no-implicit-optional') |
| 142 | + flags.append('--disallow-any-generics') |
| 143 | + if args.warn_unused_ignores: |
| 144 | + flags.append('--warn-unused-ignores') |
| 145 | + flags += ['--platform', platform] |
| 146 | + sys.argv = ['mypy'] + flags + files |
| 147 | + if args.verbose: |
| 148 | + print("running", ' '.join(sys.argv)) |
| 149 | + else: |
| 150 | + print("running mypy", ' '.join(flags), "# with", len(files), "files") |
| 151 | + try: |
| 152 | + if not args.dry_run: |
| 153 | + mypy_main('', sys.stdout, sys.stderr) |
| 154 | + except SystemExit as err: |
| 155 | + code = max(code, err.code) |
148 | 156 | if code:
|
149 | 157 | print("--- exit status", code, "---")
|
150 | 158 | sys.exit(code)
|
|
0 commit comments