blob: 2d43cb77ee5d12791211eb17845cdd3284484796 [file] [log] [blame]
<!--
Documentation generated by Skydoc
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Import pip requirements into Bazel.</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700" type="text/css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.green-light_blue.min.css">
<script defer src="https://code.getmdl.io/1.1.1/material.min.js"></script>
<link rel="stylesheet" href="./main.css">
</head>
<body>
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer
mdl-layout--fixed-header">
<header class="mdl-layout__header">
<div class="mdl-layout__header-row">
<span class="mdl-layout-title">Import pip requirements into Bazel.</span>
</div>
</header>
<div class="mdl-layout__drawer">
<span class="mdl-layout-title">Bazel</span>
<nav class="drawer-nav">
<ul class="drawer-nav">
<li><a href="./index.html">Overview</a></li>
<li>
<a href="./python/python.html">python Rules</a>
<ul>
</ul>
</li>
<li><a href="./index.html">Overview</a></li>
<li>
<a href="./python/pip.html">Import pip requirements into Bazel.</a>
<ul>
</ul>
</li>
<li><a href="./index.html">Overview</a></li>
<li>
<a href="./python/whl.html">Import .whl files into Bazel.</a>
<ul>
</ul>
</li>
</ul>
</nav>
</div>
<main class="mdl-layout__content">
<div class="page-content">
<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>
<hr>
<h2 id="pip_repositories">pip_repositories</h2>
<pre>pip_repositories()</pre>
<p>Pull in dependencies needed for pulling in pip dependencies.</p>
<p>A placeholder method that will eventually pull in any dependencies
needed to install pip dependencies.</p>
<hr>
<h2 id="pip_import">pip_import</h2>
<pre>pip_import(<a href="#pip_import.name">name</a>, <a href="#pip_import.requirements">requirements</a>)</pre>
<p>A rule for importing &lt;code&gt;requirements.txt&lt;/code&gt; dependencies into Bazel.</p>
<p>This rule imports a &lt;code&gt;requirements.txt&lt;/code&gt; file and generates a new
&lt;code&gt;requirements.bzl&lt;/code&gt; file. This is used via the &lt;code&gt;WORKSPACE&lt;/code&gt;
pattern:</p>
&lt;pre&gt;&lt;code&gt;pip_import(
name = "foo",
requirements = ":requirements.txt",
)
load("@foo//:requirements.bzl", "pip_install")
pip_install()
&lt;/code&gt;&lt;/pre&gt;<p>You can then reference imported dependencies from your &lt;code&gt;BUILD&lt;/code&gt;
file with:</p>
&lt;pre&gt;&lt;code&gt;load("@foo//:requirements.bzl", "package")
py_library(
name = "bar",
...
deps = [
"//my/other:dep",
package("futures"),
package("mock"),
],
)
&lt;/code&gt;&lt;/pre&gt;<p>Or alternatively:</p>
&lt;pre&gt;&lt;code&gt;load("@foo//:requirements.bzl", "all_packages")
py_binary(
name = "baz",
...
deps = [
":foo",
] + all_packages,
)
&lt;/code&gt;&lt;/pre&gt;
<h3 id="pip_import_args">Attributes</h3>
<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>
</div>
<footer class="mdl-mini-footer">
<div class="mdl-mini-footer__left-section">
<div class="mdl-logo">Bazel</div>
<ul class="mdl-mini-footer__link-list">
<li><a href="http://bazel.io">Home</a></li>
<li><a href="https://github.com/bazelbuild">GitHub</a></li>
</ul>
</div>
</footer>
</main>
</div>
</body>
</html>