def _bench_mypy(loops=20, *, legacy=False): """Meansure running mypy on a file N times. The target file is large (over 2300 lines) with extensive use of type hints. Note that mypy's main() is called directly, which means the measurement includes the time it takes to read the file from disk. Also, all output is discarded (sent to /dev/null). """ elapsed = 0 times = [] with open(os.devnull, "w") as devnull: for i in range(loops): if legacy: print(i) # This is a macro benchmark for a Python implementation # so "elapsed" covers more than just how long main() takes. t0 = pyperf.perf_counter() try: main(None, devnull, devnull, TARGETS, clean_exit=True) except SystemExit: pass t1 = pyperf.perf_counter() elapsed += t1 - t0 times.append(t0) times.append(pyperf.perf_counter()) return elapsed, times
def f(stdout: TextIO, stderr: TextIO) -> None: old_stdout = sys.stdout old_stderr = sys.stderr try: sys.stdout = stdout sys.stderr = stderr main(args) finally: sys.stdout = old_stdout sys.stderr = old_stderr
def _run(self, path): try: from mypy.main import main except ImportError: print('Unable to import mypy', file=sys.stderr) else: args = [path] rcfile = self.root_dir / '.mypy.ini' if rcfile.is_file(): args.append('--config-file={}'.format(rcfile)) main(None, args)
def console_entry() -> None: try: main(None, sys.stdout, sys.stderr) sys.stdout.flush() sys.stderr.flush() except BrokenPipeError: # Python flushes standard streams on exit; redirect remaining output # to devnull to avoid another BrokenPipeError at shutdown devnull = os.open(os.devnull, os.O_WRONLY) os.dup2(devnull, sys.stdout.fileno()) sys.exit(2)
def run(self): self.distribution.fetch_build_eggs([ 'mypy==0.641', ]) from mypy.main import main main( script_path='', args=[ '--ignore-missing-imports', '.', ] )
def run(args: List[str]) -> Tuple[str, str, int]: old_stdout = sys.stdout new_stdout = StringIO() sys.stdout = new_stdout old_stderr = sys.stderr new_stderr = StringIO() sys.stderr = new_stderr try: main(None, args=args) exit_status = 0 except SystemExit as system_exit: exit_status = system_exit.code finally: sys.stdout = old_stdout sys.stderr = old_stderr return new_stdout.getvalue(), new_stderr.getvalue(), exit_status
def run(params: str) -> Tuple[str, str]: sys.argv = [''] + params.split() old_stdout = sys.stdout new_stdout = StringIO() sys.stdout = new_stdout old_stderr = sys.stderr new_stderr = StringIO() sys.stderr = new_stderr try: main(None) except SystemExit: pass sys.stdout = old_stdout sys.stderr = old_stderr return new_stdout.getvalue(), new_stderr.getvalue()
def run(params: str) -> Tuple[str, str]: sys.argv = [''] + params.split() old_stdout = sys.stdout new_stdout = StringIO() sys.stdout = new_stdout old_stderr = sys.stderr new_stderr = StringIO() sys.stderr = new_stderr try: main(None) except: pass sys.stdout = old_stdout sys.stderr = old_stderr return new_stdout.getvalue(), new_stderr.getvalue()
def run(params: List[str]) -> Tuple[str, str, int]: sys.argv = [''] + params old_stdout = sys.stdout new_stdout = StringIO() sys.stdout = new_stdout old_stderr = sys.stderr new_stderr = StringIO() sys.stderr = new_stderr try: main(None) exit_status = 0 except SystemExit as system_exit: exit_status = system_exit.code sys.stdout = old_stdout sys.stderr = old_stderr return new_stdout.getvalue(), new_stderr.getvalue(), exit_status
def console_entry() -> None: try: main(None, sys.stdout, sys.stderr) sys.stdout.flush() sys.stderr.flush() except BrokenPipeError: # Python flushes standard streams on exit; redirect remaining output # to devnull to avoid another BrokenPipeError at shutdown devnull = os.open(os.devnull, os.O_WRONLY) os.dup2(devnull, sys.stdout.fileno()) sys.exit(2) except KeyboardInterrupt: _, options = process_options(args=sys.argv[1:]) if options.show_traceback: sys.stdout.write(traceback.format_exc()) formatter = FancyFormatter(sys.stdout, sys.stderr, False) msg = "Interrupted\n" sys.stdout.write(formatter.style(msg, color="red", bold=True)) sys.stdout.flush() sys.stderr.flush() sys.exit(2)
def mypy_run(args): """Runs mypy with given arguments and shows the result.""" argv, sys.argv = sys.argv, [""] + args stdout, sys.stdout = sys.stdout, StringIO() stderr, sys.stderr = sys.stderr, StringIO() try: main(None) except SystemExit: pass except: traceback.print_exc() out = [] for line in sys.stdout.getvalue().splitlines(): out.append((line, False)) for line in sys.stderr.getvalue().splitlines(): out.append((line, True)) sys.argv, sys.stdout, sys.stderr = argv, stdout, stderr return out
"""Mypy type checker command line tool.""" from mypy.main import main main(None)
import sys from mypy.main import main if __name__ == '__main__': main(None, sys.stdout, sys.stderr)
def run_dmypy(args: List[str]) -> Tuple[str, str, int]: from mypy.dmypy import main return _run(lambda stdout, stderr: main(args))
def run(args: List[str]) -> Tuple[str, str, int]: # Lazy import to avoid needing to import all of mypy to call run_dmypy from mypy.main import main return _run(lambda stdout, stderr: main(None, args=args, stdout=stdout, stderr=stderr))
def console_entry() -> None: main(None)
def run_dmypy(args: List[str]) -> Tuple[str, str, int]: from mypy.dmypy import main return _run(lambda: main(args))
def run(args: List[str]) -> Tuple[str, str, int]: # Lazy import to avoid needing to import all of mypy to call run_dmypy from mypy.main import main return _run(lambda: main(None, args=args))
def _run(self, path): from mypy.main import main main(None, [path])
def console_entry() -> None: main(None, sys.stdout, sys.stderr)
"""Mypy type checker command line tool.""" from mypy.main import main main()
# -*- coding: utf-8 -*- # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: import sys print("Doing static checking.") from mypy.main import main common_args = [ "--ignore-missing-imports", "--disallow-incomplete-defs", "--disallow-untyped-defs", "--disallow-untyped-calls", "--check-untyped-defs", "--disallow-untyped-globals" ] ret = main(None, stdout=sys.stdout, stderr=sys.stderr, args=["-p", "kdump"] + common_args) ret2 = main(None, stdout=sys.stdout, stderr=sys.stderr, args=["-p", "crash"] + common_args) if ret or ret2: print("static checking failed.", file=sys.stderr) sys.exit(1) print("OK") sys.exit(0)
""" mypy pyqae sphinx-apidoc -F -o docs/ pyqae/ """ import os from subprocess import Popen, PIPE exec_cmd = lambda prog, pname: Popen([prog, pname], shell=True, stdout=PIPE ).stdout.read() if __name__ == "__main__": from mypy.main import main main(os.path.join('..', 'pyqae')) pydoc_path = exec_cmd("/usr/bin/which", "pydoc") exec_cmd(pydoc_path, "pyqae")