Anki/pylib/BUILD.bazel
Damien Elmes aea0a6fcc6 initial Bazel conversion
Running and testing should be working on the three platforms, but
there's still a fair bit that needs to be done:

- Wheel building + testing in a venv still needs to be implemented.
- Python requirements still need to be compiled with piptool and pinned;
need to compile on all platforms then merge
- Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally
unified into one place
- Currently using rustls to work around openssl compilation issues
on Linux, but this will break corporate proxies with custom SSL
authorities; need to conditionally use openssl or use
https://github.com/seanmonstar/reqwest/pull/1058
- Makefiles and docs still need cleaning up
- It may make sense to reparent ts/* to the top level, as we don't
nest the other modules under a specific language.
- rspy and pylib must always be updated in lock-step, so merging
rspy into pylib as a private module would simplify things.
- Merging desktop-ftl and mobile-ftl into the core ftl would make
managing and updating translations easier.
- Obsolete scripts need removing.
- And probably more.
2020-11-01 14:26:58 +10:00

124 lines
2.3 KiB
Text

load("@rules_python//python:defs.bzl", "py_binary", "py_library", "py_test")
load("@py_deps//:requirements.bzl", "requirement")
py_binary(
name = "genbackend",
srcs = [
"tools/genbackend.py",
"//pylib/anki:backend_pb2",
],
imports = [
".",
],
visibility = [":__subpackages__"],
deps = [
requirement("black"),
requirement("stringcase"),
requirement("protobuf"),
],
)
py_library(
name = "hookslib",
srcs = ["tools/hookslib.py"],
imports = ["tools"],
visibility = ["//qt:__pkg__"],
)
py_binary(
name = "genhooks",
srcs = [
"tools/genhooks.py",
"tools/hookslib.py",
],
imports = ["."],
visibility = [":__subpackages__"],
deps = [
requirement("black"),
requirement("stringcase"),
],
)
py_test(
name = "pytest",
srcs = glob(["tests/*.py"]),
data = glob(["tests/support/**"]) + [
"//rspy:ankirspy",
],
main = "tests/run_pytest.py",
deps = [
"//pylib/anki",
requirement("pytest"),
],
)
py_test(
name = "mypy",
srcs = [
"tests/run_mypy.py",
],
args = [
"anki",
"$(location mypy.ini)",
],
data = ["mypy.ini"],
main = "tests/run_mypy.py",
deps = [
"//pylib/anki",
requirement("mypy"),
],
)
py_test(
name = "pylint",
srcs = [
"tests/run_pylint.py",
],
args = [
"anki",
"$(location .pylintrc)",
],
data = [".pylintrc"],
main = "tests/run_pylint.py",
deps = [
"//pylib/anki",
requirement("pylint"),
],
)
py_test(
name = "format",
srcs = glob([
"anki/**/*.py",
"tests/**/*.py",
"tools/*.py",
]),
args = [
"$(location .isort.cfg)",
],
data = [".isort.cfg"],
main = "tests/run_format.py",
deps = [
"//pylib/anki",
requirement("black"),
requirement("isort"),
],
)
py_binary(
name = "format_fix",
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"),
],
)