d120cd7f8a
mypy's move to external types-* packages is a PITA, as it requires them to be installed in site-packages, and provides no way to specify a custom site-packages folder, necessitating extra scripts to mock the site-packages path, and copy+rename the stub packages into a separate folder.
45 lines
1.1 KiB
Python
Executable File
45 lines
1.1 KiB
Python
Executable File
# Copyright: Ankitects Pty Ltd and contributors
|
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
"""
|
|
Helper to run mypy in daemon mode. See development.md. Windows is not
|
|
currently supported.
|
|
"""
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import time
|
|
from pathlib import Path
|
|
|
|
workspace = Path(os.environ["BUILD_WORKSPACE_DIRECTORY"])
|
|
binroot = workspace / "bazel-bin"
|
|
pyroot = binroot / "pip"
|
|
|
|
if sys.platform.startswith("win32"):
|
|
binext = ".exe"
|
|
else:
|
|
binext = ""
|
|
|
|
if subprocess.run(
|
|
[
|
|
str(pyroot / ("dmypy" + binext)),
|
|
]
|
|
+ [
|
|
"run",
|
|
"--",
|
|
"--config-file",
|
|
"qt/mypy.ini",
|
|
"bazel-bin/qt/dmypy.runfiles/net_ankiweb_anki/pylib/anki",
|
|
"bazel-bin/qt/dmypy.runfiles/net_ankiweb_anki/qt/aqt",
|
|
"--python-executable",
|
|
os.path.abspath("pip/stubs/extendsitepkgs"),
|
|
],
|
|
env={
|
|
"MYPYPATH": "bazel-bin/qt/dmypy.runfiles/pyqt5",
|
|
"EXTRA_SITE_PACKAGES": os.path.abspath(os.getenv("EXTRA_SITE_PACKAGES")),
|
|
},
|
|
cwd=workspace,
|
|
).returncode:
|
|
sys.exit(1)
|