

<!--
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/pip.html">Import pip requirements into Bazel.</a>
  <ul>
  </ul>
</li>
<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/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", "requirement")
py_library(
    name = "bar",
    ...
    deps = [
       "//my/other:dep",
       requirement("futures"),
       requirement("mock"),
    ],
)
&lt;/code&gt;&lt;/pre&gt;<p>Or alternatively:</p>
&lt;pre&gt;&lt;code&gt;load("@foo//:requirements.bzl", "all_requirements")
py_binary(
    name = "baz",
    ...
    deps = [
       ":foo",
    ] + all_requirements,
)
&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>
