# Copyright: Ankitects Pty Ltd and contributors # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import os import subprocess import sys import tempfile from pathlib import Path if __name__ == "__main__": (module, ini, pyqt_init, extendsitepkgs) = sys.argv[1:] ini = os.path.abspath(ini) pyqt_init = os.path.abspath(pyqt_init) pyqt_folder = os.path.dirname(pyqt_init) extendsitepkgs = os.path.abspath(extendsitepkgs) extra_site = os.path.abspath(os.getenv("EXTRA_SITE_PACKAGES")) folder = os.path.join(os.path.dirname(__file__), "..") os.chdir(folder) if sys.platform.startswith("win32"): mypy_path = ".;..\\pylib;" + pyqt_folder else: mypy_path = ".:../pylib:" + pyqt_folder os.environ["MYPYPATH"] = mypy_path os.environ["EXTRA_SITE_PACKAGES"] = extra_site args = [ sys.executable, "-m", "mypy", module, "--config-file", ini, "--cache-dir", Path(tempfile.gettempdir()) / ".mypy-anki-qt", "--sqlite-cache", "--python-executable", extendsitepkgs, ] if sys.platform.startswith("win32"): # bazel passes in \\?\c:\... path; mypy can't handle it, so we # strip off prefix for entry in sys.path: if entry.endswith("deps_mypy"): typeshed = entry[4:] + "\\mypy\\typeshed" args.append("--custom-typeshed-dir") args.append(typeshed) sys.exit(subprocess.run(args, check=False).returncode)