anki/qt/BUILD.bazel
Damien Elmes d120cd7f8a update to latest mypy
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.
2021-06-16 16:04:59 +10:00

164 lines
3.1 KiB
Python

load("@rules_python//python:defs.bzl", "py_binary", "py_test")
load("@py_deps//:requirements.bzl", "requirement")
py_binary(
name = "genhooks_gui",
srcs = [
"tools/genhooks_gui.py",
],
imports = ["."],
visibility = [":__subpackages__"],
deps = [
"//pylib/tools:hookslib",
requirement("black"),
requirement("stringcase"),
],
)
py_binary(
name = "extract_sass_colors",
srcs = [
"tools/extract_sass_colors.py",
],
imports = ["."],
visibility = [":__subpackages__"],
)
py_test(
name = "pytest",
srcs = glob(["tests/*.py"]) + ["bazelfixes.py"],
imports = ["."],
main = "tests/run_pytest.py",
deps = [
"//pylib/anki",
"//qt/aqt:aqt_without_data",
requirement("pytest"),
requirement("mock"),
],
)
py_test(
name = "mypy",
srcs = [
"tests/run_mypy.py",
],
args = [
"aqt",
"$(location mypy.ini)",
"$(location @pyqt5//:__init__.py)",
"$(location //pip/stubs:extendsitepkgs)",
],
data = [
"mypy.ini",
"//pip/stubs",
"//pip/stubs:extendsitepkgs",
"@pyqt5//:__init__.py",
],
env = {"EXTRA_SITE_PACKAGES": "$(location //pip/stubs)"},
main = "tests/run_mypy.py",
deps = [
"//pylib/anki",
"//qt/aqt:aqt_without_data",
"@pyqt5//:pkg",
requirement("mypy"),
],
)
py_test(
name = "pylint",
srcs = [
"tests/run_pylint.py",
],
args = [
"aqt",
"$(location .pylintrc)",
],
data = [
".pylintrc",
],
main = "tests/run_pylint.py",
deps = [
"//pylib/anki",
"//qt/aqt:aqt_without_data",
requirement("pylint"),
"@pyqt5//:pkg",
],
)
py_test(
name = "format_check",
srcs = glob(["**/*.py"]) + [
"//qt/aqt:py_source_files",
],
args = [
"$(location .isort.cfg)",
],
data = [".isort.cfg"],
main = "tests/run_format.py",
deps = [
"//qt/aqt:aqt_without_data",
requirement("black"),
requirement("isort"),
],
)
py_binary(
name = "format",
srcs = [
"tests/run_format.py",
],
args = [
"$(location .isort.cfg)",
"fix",
],
data = [".isort.cfg"],
main = "tests/run_format.py",
tags = ["manual"],
deps = [
requirement("black"),
requirement("isort"),
],
)
py_binary(
name = "runanki",
srcs = [
"bazelfixes.py",
"runanki.py",
],
imports = ["."],
deps = [
"//pylib/anki",
"//qt/aqt:aqt_with_data",
],
)
py_binary(
name = "dmypy",
srcs = [
"dmypy.py",
],
data = [
# ensure the binary's been built
"//pip:dmypy",
"//pip/stubs",
"//pip/stubs:extendsitepkgs",
],
env = {"EXTRA_SITE_PACKAGES": "$(location //pip/stubs)"},
imports = ["."],
tags = ["manual"],
deps = [
"//pylib/anki",
"//qt/aqt:aqt_without_data",
],
)
py_binary(
name = "profile",
srcs = ["tools/profile.py"],
tags = ["manual"],
deps = [
requirement("snakeviz"),
],
)