No project description provided
Project description
bazel-runfiles library
This is a Bazel Runfiles lookup library for Bazel-built Python binaries and tests.
Learn about runfiles: read Runfiles guide or watch Fabian's BazelCon talk.
Importing
The Runfiles API is available from two sources, a direct Bazel target, and a pypi package.
Pure Bazel imports
-
Depend on this runfiles library from your build rule, like you would other third-party libraries:
py_binary( name = "my_binary", # ... deps = ["@rules_python//python/runfiles"], )
-
Import the runfiles library:
from python.runfiles import Runfiles
Pypi imports
-
Add the 'bazel-runfiles' dependency along with other third-party dependencies, for example in your
requirements.txt
file. -
Depend on this runfiles library from your build rule, like you would other third-party libraries:
load("@pip_deps//:requirements.bzl", "requirement") py_binary( name = "my_binary", ... deps = [requirement("bazel-runfiles")], )
-
Import the runfiles library:
from runfiles import Runfiles
Typical Usage
Create a Runfiles
object and use Rlocation
to look up runfile paths:
r = Runfiles.Create()
# ...
with open(r.Rlocation("my_workspace/path/to/my/data.txt"), "r") as f:
contents = f.readlines()
# ...
The code above creates a manifest- or directory-based implementation based on the environment variables in os.environ
. See Runfiles.Create()
for more info.
If you want to explicitly create a manifest- or directory-based implementation, you can do so as follows:
r1 = Runfiles.CreateManifestBased("path/to/foo.runfiles_manifest")
r2 = Runfiles.CreateDirectoryBased("path/to/foo.runfiles/")
If you want to start subprocesses, and the subprocess can't automatically find the correct runfiles directory, you can explicitly set the right environment variables for them:
import subprocess
from python.runfiles import Runfiles
r = Runfiles.Create()
env = {}
# ...
env.update(r.EnvVars())
p = subprocess.run(
[r.Rlocation("path/to/binary")],
env=env,
# ...
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for bazel_runfiles-0.33.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6290f8de36feab6ea56ed8e70e6e14a9616a760f16783f96b887cce1829c926a |
|
MD5 | 99f27d668c8b9fe318ec54c0e5a4e3b0 |
|
BLAKE2b-256 | 5c2d274ec51b4b4a8f157a58552aba11fac77681c1bde5e0a52b8166d59bd6a8 |