blob: 2a373d11c086f4eb3e4bec983d8c43f0f5a767a5 [file] [log] [blame] [view]
<!---
Documentation generated by Skydoc
-->
<h1>Import pip requirements into Bazel.</h1>
<nav class="toc">
<h2>Repository Rules</h2>
<ul>
<li><a href="#pip_import">pip_import</a></li>
</ul>
<h2>Macros</h2>
<ul>
<li><a href="#pip_repositories">pip_repositories</a></li>
</ul>
</nav>
<a name="pip_repositories"></a>
## pip_repositories
<pre>
pip_repositories()
</pre>
Pull in dependencies needed for pulling in pip dependencies.
A placeholder method that will eventually pull in any dependencies
needed to install pip dependencies.
<a name="pip_import"></a>
## pip_import
<pre>
pip_import(<a href="#pip_import.name">name</a>, <a href="#pip_import.requirements">requirements</a>)
</pre>
A rule for importing <code>requirements.txt</code> dependencies into Bazel.
This rule imports a <code>requirements.txt</code> file and generates a new
<code>requirements.bzl</code> file. This is used via the <code>WORKSPACE</code>
pattern:
<pre><code>pip_import(
name = "foo",
requirements = ":requirements.txt",
)
load("@foo//:requirements.bzl", "pip_install")
pip_install()
</code></pre>
You can then reference imported dependencies from your <code>BUILD</code>
file with:
<pre><code>load("@foo//:requirements.bzl", "package")
py_library(
name = "bar",
...
deps = [
"//my/other:dep",
package("futures"),
package("mock"),
],
)
</code></pre>
Or alternatively:
<pre><code>load("@foo//:requirements.bzl", "all_packages")
py_binary(
name = "baz",
...
deps = [
":foo",
] + all_packages,
)
</code></pre>
<a name="pip_import_args"></a>
### Attributes
<table class="params-table">
<colgroup>
<col class="col-param" />
<col class="col-description" />
</colgroup>
<tbody>
<tr id="pip_import.name">
<td><code>name</code></td>
<td>
<p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
<p>A unique name for this rule.</p>
</td>
</tr>
<tr id="pip_import.requirements">
<td><code>requirements</code></td>
<td>
<p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Required</code></p>
<p>The label of a requirements.txt file.</p>
</td>
</tr>
</tbody>
</table>