Import pip requirements into Bazel.
Macros and Functions
pip_import
Example usage (generated)
load("@rules_python//python:pip.bzl", "pip_import")
pip_import(
)
kwargs
pip_install
Imports a requirements.txt
file and generates a new requirements.bzl
file.
This is used via the WORKSPACE
pattern:
pip_install(
requirements = ":requirements.txt",
)
You can then reference imported dependencies from your BUILD
file with:
load("@pip//:requirements.bzl", "requirement")
py_library(
name = "bar",
...
deps = [
"//my/other:dep",
requirement("requests"),
requirement("numpy"),
],
)
In addition to the requirement
macro, which is used to access the generated py_library
target generated from a package's wheel, The generated requirements.bzl
file contains
functionality for exposing entry points as py_binary
targets as well.
load("@pip_deps//:requirements.bzl", "entry_point")
alias(
name = "pip-compile",
actual = entry_point(
pkg = "pip-tools",
script = "pip-compile",
),
)
Note that for packages who's name and script are the same, only the name of the package
is needed when calling the entry_point
macro.
load("@pip_deps//:requirements.bzl", "entry_point")
alias(
name = "flake8",
actual = entry_point("flake8"),
)
Example usage (generated)
load("@rules_python//python:pip.bzl", "pip_install")
pip_install(
# A 'requirements.txt' pip requirements file.
requirements = None,
)
requirements
A 'requirements.txt' pip requirements file.
name
A unique name for the created external repository (default 'pip').
kwargs
Keyword arguments passed directly to the pip_repository
repository rule.
pip_parse
Imports a locked/compiled requirements file and generates a new requirements.bzl
file.
This is used via the WORKSPACE
pattern:
load("@rules_python//python:pip.bzl", "pip_parse")
pip_parse(
name = "pip_deps",
requirements_lock = ":requirements.txt",
)
load("@pip_deps//:requirements.bzl", "install_deps")
install_deps()
You can then reference imported dependencies from your BUILD
file with:
load("@pip_deps//:requirements.bzl", "requirement")
py_library(
name = "bar",
...
deps = [
"//my/other:dep",
requirement("requests"),
requirement("numpy"),
],
)
In addition to the requirement
macro, which is used to access the generated py_library
target generated from a package's wheel, The generated requirements.bzl
file contains
functionality for exposing entry points as py_binary
targets as well.
load("@pip_deps//:requirements.bzl", "entry_point")
alias(
name = "pip-compile",
actual = entry_point(
pkg = "pip-tools",
script = "pip-compile",
),
)
Note that for packages who's name and script are the same, only the name of the package
is needed when calling the entry_point
macro.
load("@pip_deps//:requirements.bzl", "entry_point")
alias(
name = "flake8",
actual = entry_point("flake8"),
)
requirements_lock
A fully resolved 'requirements.txt' pip requirement file containing the transitive set of your dependencies. If this file is passed instead of 'requirements' no resolve will take place and pip_repository will create individual repositories for each of your dependencies so that wheels are fetched/built only for the targets specified by 'build/run/test'.
name
The name of the generated repository.
kwargs
Additional keyword arguments for the underlying
pip_repository
rule.
pip_repositories
Example usage (generated)
load("@rules_python//python:pip.bzl", "pip_repositories")
pip_repositories(
)