| load( | |
| "@pypi//:requirements.bzl", | |
| "data_requirement", | |
| "dist_info_requirement", | |
| "entry_point", | |
| ) | |
| load("@rules_python//python/pip_install:pip_repository.bzl", "wheel") | |
| load("@rules_python//python:defs.bzl", "py_binary", "py_test") | |
| load("@rules_python//python:pip.bzl", "compile_pip_requirements") | |
| # Toolchain setup, this is optional. | |
| # Demonstrate that we can use the same python interpreter for the toolchain and executing pip in pip install (see WORKSPACE). | |
| # | |
| #load("@rules_python//python:defs.bzl", "py_runtime_pair") | |
| # | |
| #py_runtime( | |
| # name = "python3_runtime", | |
| # files = ["@python_interpreter//:files"], | |
| # interpreter = "@python_interpreter//:python_bin", | |
| # python_version = "PY3", | |
| # visibility = ["//visibility:public"], | |
| #) | |
| # | |
| #py_runtime_pair( | |
| # name = "my_py_runtime_pair", | |
| # py2_runtime = None, | |
| # py3_runtime = ":python3_runtime", | |
| #) | |
| # | |
| #toolchain( | |
| # name = "my_py_toolchain", | |
| # toolchain = ":my_py_runtime_pair", | |
| # toolchain_type = "@bazel_tools//tools/python:toolchain_type", | |
| #) | |
| # End of toolchain setup. | |
| py_binary( | |
| name = "main", | |
| srcs = ["main.py"], | |
| deps = [ | |
| "@pypi_requests//:pkg", | |
| ], | |
| ) | |
| py_test( | |
| name = "test", | |
| srcs = ["test.py"], | |
| deps = [":main"], | |
| ) | |
| # For pip dependencies which have entry points, the `entry_point` macro can be | |
| # used from the generated `pip_parse` repository to access a runnable binary. | |
| alias( | |
| name = "yamllint", | |
| actual = entry_point("yamllint"), | |
| ) | |
| # This rule adds a convenient way to update the requirements file. | |
| compile_pip_requirements( | |
| name = "requirements", | |
| extra_args = ["--allow-unsafe"], | |
| requirements_in = "requirements.txt", | |
| requirements_txt = "requirements_lock.txt", | |
| ) | |
| # Test the use of all pip_parse utilities in a single py_test | |
| py_test( | |
| name = "pip_parse_test", | |
| srcs = ["pip_parse_test.py"], | |
| data = [ | |
| ":yamllint", | |
| data_requirement("s3cmd"), | |
| dist_info_requirement("requests"), | |
| ], | |
| env = { | |
| "WHEEL_DATA_CONTENTS": "$(rootpaths {})".format(data_requirement("s3cmd")), | |
| "WHEEL_DIST_INFO_CONTENTS": "$(rootpaths {})".format(dist_info_requirement("requests")), | |
| "YAMLLINT_ENTRY_POINT": "$(rootpath :yamllint)", | |
| }, | |
| deps = ["@rules_python//python/runfiles"], | |
| ) | |
| wheel( | |
| name = "numpy", | |
| src = "@numpy_wheel_source_distribution//file", | |
| ) | |
| # wheel( | |
| # name = "pybind11", | |
| # src = "@pybind11_wheel_source_distribution//file", | |
| # ) | |
| # wheel( | |
| # name = "pythran", | |
| # src = "@pythran_wheel_source_distribution//file", | |
| # ) | |
| # wheel( | |
| # name = "gast", | |
| # src = "@gast_wheel_source_distribution//file", | |
| # ) | |
| # wheel( | |
| # name = "beniget", | |
| # src = "@beniget_wheel_source_distribution//file", | |
| # ) | |
| # wheel( | |
| # name = "ply", | |
| # src = "@ply_wheel_source_distribution//file", | |
| # ) | |
| # wheel( | |
| # name = "scipy", | |
| # src = "@scipy_wheel_source_distribution//file", | |
| # deps = [ | |
| # ":numpy", | |
| # ":pybind11", | |
| # ":pythran", | |
| # ":gast", | |
| # ":beniget", | |
| # ":ply", | |
| # ], | |
| # ) | |
| wheel( | |
| name = "boto3", | |
| src = "@boto3_wheel_source_distribution//file", | |
| ) | |
| wheel( | |
| name = "django", | |
| src = "@django_wheel_source_distribution//file", | |
| ) |