Name Date Size #Lines LOC

..--

.bazelrcH A D25-Apr-2025270 96

.gitignoreH A D25-Apr-20258 21

BUILD.bazelH A D25-Apr-20252.6 KiB7769

README.mdH A D25-Apr-20251.1 KiB3223

WORKSPACEH A D25-Apr-20251.5 KiB4233

requirements.bzlH A D25-Apr-20255 KiB11796

requirements.inH A D25-Apr-202589 32

requirements.txtH A D25-Apr-20251.2 KiB2928

test_dependency_usage.pyH A D25-Apr-2025197 137

README.md

1# pip_parse vendored
2
3This example is like pip_parse, however we avoid loading from the generated file.
4See https://github.com/bazelbuild/rules_python/issues/608
5and https://blog.aspect.dev/avoid-eager-fetches.
6
7The requirements now form a triple:
8
9- requirements.in - human editable, expresses only direct dependencies and load-bearing version constraints
10- requirements.txt - lockfile produced by pip-compile or other means
11- requirements.bzl - the "parsed" version of the lockfile readable by Bazel downloader
12
13The `requirements.bzl` file contains baked-in attributes such as `python_interpreter_target` as they were specified in the original `pip_parse` rule. These can be overridden at install time by passing arguments to `install_deps`. For example:
14
15```python
16# Register a hermetic toolchain
17load("@rules_python//python:repositories.bzl", "python_register_toolchains")
18
19python_register_toolchains(
20    name = "python39",
21    python_version = "3.9",
22)
23load("@python39//:defs.bzl", "interpreter")
24
25# Load dependencies vendored by some other ruleset.
26load("@some_rules//:py_deps.bzl", "install_deps")
27
28install_deps(
29    python_interpreter_target = interpreter,
30)
31```
32