[Python-modules-commits] [python-pex] 01/06: Import python-pex_1.0.0.orig.tar.gz

Barry Warsaw barry at moszumanska.debian.org
Tue Jun 2 19:01:29 UTC 2015


This is an automated email from the git hooks/post-receive script.

barry pushed a commit to branch master
in repository python-pex.

commit c2741933fcfdcb174102c812f69a68004d704773
Author: Barry Warsaw <barry at debian.org>
Date:   Tue Jun 2 14:14:32 2015 -0400

    Import python-pex_1.0.0.orig.tar.gz
---
 CHANGES.rst                    |  93 ++++++-
 LICENSE                        | 201 ++++++++++++++++
 MANIFEST.in                    |   8 +-
 PKG-INFO                       |  95 +++++++-
 README.rst                     |  77 +++---
 docs/Makefile                  | 177 ++++++++++++++
 docs/api/index.rst             | 159 ++++++++++++
 docs/buildingpex.rst           | 330 +++++++++++++++++++++++++
 docs/conf.py                   | 273 +++++++++++++++++++++
 docs/index.rst                 |  31 +++
 docs/rtd/requirements.txt      |   2 +
 docs/whatispex.rst             |  47 ++++
 pex.egg-info/PKG-INFO          |  95 +++++++-
 pex.egg-info/SOURCES.txt       |  45 +++-
 pex.egg-info/entry_points.txt  |   2 +-
 pex.egg-info/requires.txt      |   5 +-
 pex/archiver.py                |   3 +
 pex/base.py                    |   2 +-
 pex/bin/pex.py                 | 534 +++++++++++++++++++++++++++--------------
 pex/common.py                  |   9 +
 pex/crawler.py                 |   6 +
 pex/environment.py             |  65 +++--
 pex/fetcher.py                 |  22 +-
 pex/finders.py                 |  60 ++++-
 pex/http.py                    |  21 +-
 pex/installer.py               |   6 +-
 pex/interpreter.py             |   7 +-
 pex/iterator.py                |  79 +++---
 pex/link.py                    |   3 +
 pex/pex.py                     | 268 ++++++++++++++-------
 pex/pex_bootstrapper.py        |  33 ++-
 pex/pex_builder.py             |  99 +++++---
 pex/pex_info.py                |  73 +++---
 pex/requirements.py            |  94 ++++++++
 pex/resolvable.py              | 295 +++++++++++++++++++++++
 pex/resolver.py                | 377 +++++++++++++++++------------
 pex/resolver_options.py        | 174 ++++++++++++++
 pex/sorter.py                  |  37 +++
 pex/testing.py                 |  24 +-
 pex/tracer.py                  |  27 +--
 pex/translator.py              |  16 +-
 pex/util.py                    |  42 +++-
 pex/variables.py               | 265 ++++++++++++++++++++
 pex/version.py                 |   8 +-
 scripts/combine_coverage.py    |  68 ++++++
 scripts/coverage.sh            |   7 +
 scripts/do_nothing.py          |   0
 setup.py                       |  12 +-
 tests/test_archiver.py         |  28 +++
 tests/test_compatibility.py    |  18 ++
 tests/test_crawler.py          | 105 ++++++++
 tests/test_environment.py      |  96 ++++++++
 tests/test_fetcher.py          |  18 ++
 tests/test_finders.py          | 101 ++++++++
 tests/test_http.py             | 240 ++++++++++++++++++
 tests/test_integration.py      |  32 +++
 tests/test_interpreter.py      |  23 ++
 tests/test_iterator.py         |  38 +++
 tests/test_link.py             |  54 +++++
 tests/test_package.py          |  52 ++++
 tests/test_pep425.py           |  51 ++++
 tests/test_pex.py              | 134 +++++++++++
 tests/test_pex_binary.py       |  82 +++++++
 tests/test_pex_bootstrapper.py |  31 +++
 tests/test_pex_builder.py      |  67 ++++++
 tests/test_pex_info.py         |  34 +++
 tests/test_platform.py         |  58 +++++
 tests/test_requirements.py     | 113 +++++++++
 tests/test_resolvable.py       | 113 +++++++++
 tests/test_resolver.py         |  59 +++++
 tests/test_sorter.py           |  45 ++++
 tests/test_translator.py       |  39 +++
 tests/test_util.py             | 158 ++++++++++++
 tests/test_variables.py        |  74 ++++++
 tox.ini                        | 134 +++++++++++
 75 files changed, 5731 insertions(+), 642 deletions(-)

diff --git a/CHANGES.rst b/CHANGES.rst
index 6a90f1c..cc25d1f 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -2,9 +2,98 @@
 CHANGES
 =======
 
-----------
+-----
+1.0.0
+-----
+
+The 1.0.0 release of pex introduces a few breaking changes: ``pex -r`` now takes requirements.txt files
+instead of requirement specs, ``pex -s`` has now been removed since source specs are accepted as arguments,
+and ``pex -p`` has been removed in favor of its alias ``pex -o``.
+
+The pex *command line interface* now adheres to semver insofar as backwards incompatible CLI
+changes will invoke a major version change.  Any backwards incompatible changes to the PEX
+environment variable semantics will also result in a major version change.  The pex *API* adheres
+to semver insofar as backwards incompatible API changes will invoke minor version changes.
+
+For users of the PEX API, it is recommended to add minor version ranges, e.g. ``pex>=1.0,<1.1``.
+For users of the PEX CLI, major version ranges such as ``pex>=1,<2`` should be sufficient.
+
+* BREAKING CHANGE: Removes the ``-s`` option in favor of specifying directories directly as
+  arguments to the pex command line.
+
+* BREAKING CHANGE: ``pex -r`` now takes requirements.txt filenames and *not* requirement
+  specs.  Requirement specs are now passed as arguments to the pex tool.  Use ``--`` to escape
+  command line arguments passed to interpreters spawned by pex.  Implements
+  `#5 <https://github.com/pantsbuild/pex/issues/5>`_.
+
+* Adds a number of flag aliases to be more compatible with pip command lines: ``--no-index``,
+  ``-f``, ``--find-links``, ``--index-url``, ``--no-use-wheel``.  Removes ``-p`` in favor of
+  ``-o`` exclusively.
+
+* Adds ``--python-shebang`` option to the pex tool in order to set the ``#!`` shebang to an exact
+  path.  `#53 <https://github.com/pantsbuild/pex/issues/53>`_.
+
+* Adds support for ``PEX_PYTHON`` environment variable which will cause the pex file to reinvoke
+  itself using the interpreter specified, e.g. ``PEX_PYTHON=python3.4`` or
+  ``PEX_PYTHON=/exact/path/to/interpreter``.  `#27 <https://github.com/pantsbuild/pex/issues/27>`_.
+
+* Adds support for ``PEX_PATH`` environment variable which allows merging of PEX environments at
+  runtime.  This can be used to inject plugins or entry_points or modules from one PEX into
+  another without explicitly building them together. `#30 <https://github.com/pantsbuild/pex/issues/30>`_.
+
+* Consolidates documentation of ``PEX_`` environment variables and adds the ``--help-variables`` option
+  to the pex client.  Partially addresses `#13 <https://github.com/pantsbuild/pex/issues/13>`_.
+
+* Adds helper method to dump a package subdirectory onto disk from within a zipped PEX file.  This
+  can be useful for applications that know they're running within a PEX and would prefer some
+  static assets dumped to disk instead of running as an unzipped PEX file.
+  `#12 <https://github.com/pantsbuild/pex/pull/12>`_.
+
+* Now supports extras for static URLs and installable directories.
+  `#65 <https://github.com/pantsbuild/pex/issues/65>`_.
+
+* Adds ``-m`` and ``--entry-point`` alias to the existing ``-e`` option for entry points in
+  the pex tool to evoke the similarity to ``python -m``.
+
+* Adds console script support via ``-c/--script/--console-script`` and ``PEX_SCRIPT``.  This allows
+  you to reference the named entry point instead of the exact ``module:name`` pair.  Also supports
+  scripts defined in the ``scripts`` section of setup.py.
+  `#59 <https://github.com/pantsbuild/pex/issues/59>`_.
+
+* Adds more debugging information when encountering unresolvable requirements.
+  `#79 <https://github.com/pantsbuild/pex/issues/79>`_.
+
+* Bug fix: ``PEX_COVERAGE`` and ``PEX_PROFILE`` did not function correctly when SystemExit was raised.
+  Fixes `#81 <https://github.com/pantsbuild/pex/issues/81>`_.
+
+* Bug fix: Fixes caching in the PEX tool since we don't cache the source distributions of installable
+  directories.  `#24 <https://github.com/pantsbuild/pex/issues/24>`_.
+
+-----
+0.9.0
+-----
+
+This is the last release before the 1.0.0 development branch is started.
+
+* Change the setuptools range to >=2.2,<16 by handling EntryPoint changes as well as
+  being flexible on whether ``pkg_resources`` is a package or a module.  Fixes
+  `#55 <https://github.com/pantsbuild/pex/issues/55>`_ and
+  `#34 <https://github.com/pantsbuild/pex/issues/34>`_.
+
+* Adds option groups to the pex tool to make the help output slightly more readable.
+
+* Bug fix: Make ``pip install pex`` work better by removing ``extras_requires`` on the
+  ``console_script`` entry point.  Fixes `#48 <https://github.com/pantsbuild/pex/issues/48>`_
+
+* New feature: Adds an interpreter cache to the ``pex`` tool.  If the user does not explicitly
+  disable the wheel feature and attempts to build a pex with wheels but does not have the wheel
+  package installed, pex will download it in order to make the feature work.
+  Implements `#47 <https://github.com/pantsbuild/pex/issues/47>`_ in order to
+  fix `#48 <https://github.com/pantsbuild/pex/issues/48>`_
+
+-----
 0.8.6
-----------
+-----
 
 * Bug fix: Honor installed sys.excepthook in pex teardown.
   `RB #1733 <https://rbcommons.com/s/twitter/r/1733>`_
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ad410e1
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
index 591118a..e1a99fa 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,3 +1,5 @@
-include *.py
-include docs/*.md
-include CHANGES.rst
+include *.py *.rst *.ini MANIFEST.in LICENSE
+recursive-include docs *
+recursive-include tests *
+recursive-include scripts *
+recursive-exclude * *.pyc *~
diff --git a/PKG-INFO b/PKG-INFO
index c84540b..8dc49f7 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pex
-Version: 0.8.6
+Version: 1.0.0
 Summary: The PEX packaging toolchain.
 Home-page: https://github.com/pantsbuild/pex
 Author: UNKNOWN
@@ -10,9 +10,98 @@ Description: =======
         CHANGES
         =======
         
-        ----------
+        -----
+        1.0.0
+        -----
+        
+        The 1.0.0 release of pex introduces a few breaking changes: ``pex -r`` now takes requirements.txt files
+        instead of requirement specs, ``pex -s`` has now been removed since source specs are accepted as arguments,
+        and ``pex -p`` has been removed in favor of its alias ``pex -o``.
+        
+        The pex *command line interface* now adheres to semver insofar as backwards incompatible CLI
+        changes will invoke a major version change.  Any backwards incompatible changes to the PEX
+        environment variable semantics will also result in a major version change.  The pex *API* adheres
+        to semver insofar as backwards incompatible API changes will invoke minor version changes.
+        
+        For users of the PEX API, it is recommended to add minor version ranges, e.g. ``pex>=1.0,<1.1``.
+        For users of the PEX CLI, major version ranges such as ``pex>=1,<2`` should be sufficient.
+        
+        * BREAKING CHANGE: Removes the ``-s`` option in favor of specifying directories directly as
+          arguments to the pex command line.
+        
+        * BREAKING CHANGE: ``pex -r`` now takes requirements.txt filenames and *not* requirement
+          specs.  Requirement specs are now passed as arguments to the pex tool.  Use ``--`` to escape
+          command line arguments passed to interpreters spawned by pex.  Implements
+          `#5 <https://github.com/pantsbuild/pex/issues/5>`_.
+        
+        * Adds a number of flag aliases to be more compatible with pip command lines: ``--no-index``,
+          ``-f``, ``--find-links``, ``--index-url``, ``--no-use-wheel``.  Removes ``-p`` in favor of
+          ``-o`` exclusively.
+        
+        * Adds ``--python-shebang`` option to the pex tool in order to set the ``#!`` shebang to an exact
+          path.  `#53 <https://github.com/pantsbuild/pex/issues/53>`_.
+        
+        * Adds support for ``PEX_PYTHON`` environment variable which will cause the pex file to reinvoke
+          itself using the interpreter specified, e.g. ``PEX_PYTHON=python3.4`` or
+          ``PEX_PYTHON=/exact/path/to/interpreter``.  `#27 <https://github.com/pantsbuild/pex/issues/27>`_.
+        
+        * Adds support for ``PEX_PATH`` environment variable which allows merging of PEX environments at
+          runtime.  This can be used to inject plugins or entry_points or modules from one PEX into
+          another without explicitly building them together. `#30 <https://github.com/pantsbuild/pex/issues/30>`_.
+        
+        * Consolidates documentation of ``PEX_`` environment variables and adds the ``--help-variables`` option
+          to the pex client.  Partially addresses `#13 <https://github.com/pantsbuild/pex/issues/13>`_.
+        
+        * Adds helper method to dump a package subdirectory onto disk from within a zipped PEX file.  This
+          can be useful for applications that know they're running within a PEX and would prefer some
+          static assets dumped to disk instead of running as an unzipped PEX file.
+          `#12 <https://github.com/pantsbuild/pex/pull/12>`_.
+        
+        * Now supports extras for static URLs and installable directories.
+          `#65 <https://github.com/pantsbuild/pex/issues/65>`_.
+        
+        * Adds ``-m`` and ``--entry-point`` alias to the existing ``-e`` option for entry points in
+          the pex tool to evoke the similarity to ``python -m``.
+        
+        * Adds console script support via ``-c/--script/--console-script`` and ``PEX_SCRIPT``.  This allows
+          you to reference the named entry point instead of the exact ``module:name`` pair.  Also supports
+          scripts defined in the ``scripts`` section of setup.py.
+          `#59 <https://github.com/pantsbuild/pex/issues/59>`_.
+        
+        * Adds more debugging information when encountering unresolvable requirements.
+          `#79 <https://github.com/pantsbuild/pex/issues/79>`_.
+        
+        * Bug fix: ``PEX_COVERAGE`` and ``PEX_PROFILE`` did not function correctly when SystemExit was raised.
+          Fixes `#81 <https://github.com/pantsbuild/pex/issues/81>`_.
+        
+        * Bug fix: Fixes caching in the PEX tool since we don't cache the source distributions of installable
+          directories.  `#24 <https://github.com/pantsbuild/pex/issues/24>`_.
+        
+        -----
+        0.9.0
+        -----
+        
+        This is the last release before the 1.0.0 development branch is started.
+        
+        * Change the setuptools range to >=2.2,<16 by handling EntryPoint changes as well as
+          being flexible on whether ``pkg_resources`` is a package or a module.  Fixes
+          `#55 <https://github.com/pantsbuild/pex/issues/55>`_ and
+          `#34 <https://github.com/pantsbuild/pex/issues/34>`_.
+        
+        * Adds option groups to the pex tool to make the help output slightly more readable.
+        
+        * Bug fix: Make ``pip install pex`` work better by removing ``extras_requires`` on the
+          ``console_script`` entry point.  Fixes `#48 <https://github.com/pantsbuild/pex/issues/48>`_
+        
+        * New feature: Adds an interpreter cache to the ``pex`` tool.  If the user does not explicitly
+          disable the wheel feature and attempts to build a pex with wheels but does not have the wheel
+          package installed, pex will download it in order to make the feature work.
+          Implements `#47 <https://github.com/pantsbuild/pex/issues/47>`_ in order to
+          fix `#48 <https://github.com/pantsbuild/pex/issues/48>`_
+        
+        -----
         0.8.6
-        ----------
+        -----
         
         * Bug fix: Honor installed sys.excepthook in pex teardown.
           `RB #1733 <https://rbcommons.com/s/twitter/r/1733>`_
diff --git a/README.rst b/README.rst
index 16317df..ff5a556 100644
--- a/README.rst
+++ b/README.rst
@@ -34,7 +34,7 @@ You can also build pex in a git clone using tox:
 
 .. code-block:: bash
 
-    $ tox -e package
+    $ tox -e py27-package
     $ cp dist/pex ~/bin
 
 This builds a pex binary in ``dist/pex`` that can be copied onto your ``$PATH``.
@@ -45,39 +45,62 @@ possible and is more in-line with what pex does philosophically.
 Simple Examples
 ===============
 
-Launch an interpreter with ``requests`` and ``flask`` in the environment:
+Launch an interpreter with ``requests``, ``flask`` and ``psutil`` in the environment:
 
 .. code-block:: bash
 
-    $ pex -r requests -r flask
+    $ pex requests flask 'psutil>2,<3'
 
-Run webserver.py in an environment containing ``flask`` and the setup.py package in
-the current working directory:
+Or instead freeze your current virtualenv via requirements.txt and execute it anywhere:
 
-.. code-block::
+.. code-block:: bash
+
+    $ pex -r <(pip freeze) -o my_virtualenv.pex
+    $ deactivate
+    $ ./my_virtualenv.pex
+
+Run webserver.py in an environment containing ``flask`` as a quick way to experiment:
 
-    $ pex -r flask -s . -- webserver.py
+.. code-block:: bash
+
+    $ pex flask -- webserver.py
 
 Launch Sphinx in an ephemeral pex environment using the Sphinx entry point ``sphinx:main``:
 
 .. code-block:: bash
 
-    $ pex -r sphinx -e sphinx:main -- --help
+    $ pex sphinx -e sphinx:main -- --help
 
-Build a standalone pex binary into ``pex.pex``:
+Build a standalone pex binary into ``pex.pex`` using the ``pex`` console_scripts entry point:
 
-.. code-block::
+.. code-block:: bash
 
-    $ pex -r pex -e pex.bin.pex:main -o pex.pex
+    $ pex pex -c pex -o pex.pex
 
-Build a standalone pex binary but invoked using a specific Python version:
+You can also build pex files that use a specific interpreter type:
 
-.. code-block::
+.. code-block:: bash
 
-    $ pex -r pex -e pex.bin.pex:main --python=pypy -o pypy-pex.pex
+    $ pex pex -c pex --python=pypy -o pypy-pex.pex
 
 Most pex options compose well with one another, so the above commands can be
-mixed and matched.
+mixed and matched.  For a full list of options, just type ``pex --help``.
+
+
+Integrating pex into your workflow
+==================================
+
+If you use tox (and you should!), a simple way to integrate pex into your
+workflow is to add a packaging test environment to your ``tox.ini``:
+
+.. code-block:: ini
+
+    [testenv:package]
+    deps = pex
+    commands = pex . -o dist/app.pex
+
+Then ``tox -e package`` will produce a relocateable copy of your application
+that you can copy to staging or production environments.
 
 
 Documentation
@@ -97,29 +120,11 @@ the test suite, just invoke tox:
 
     $ tox
 
-To generate a coverage report (with more substantial integration tests):
-
-.. code-block:: bash
-
-   $ tox -e coverage
-
-To check style and sort ordering:
-
-.. code-block:: bash
-
-   $ tox -e style,isort-check
+If you don't have tox, you can generate a pex of tox:
 
-To generate and open local sphinx documentation:
-
-.. code-block:: bash
-
-   $ tox -e docs
-
-To run the 'pex' tool from source (for 3.4, use 'py34-run'):
-
-.. code-block:: bash
+.. code-block::
 
-   $ tox -e py27-run -- <cmdline>
+    $ pex tox -c tox -o ~/bin/tox
 
 
 Contributing
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..6001793
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,177 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = _build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  texinfo    to make Texinfo files"
+	@echo "  info       to make Texinfo files and run them through makeinfo"
+	@echo "  gettext    to make PO message catalogs"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  xml        to make Docutils-native XML files"
+	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	rm -rf $(BUILDDIR)/*
+
+html:
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+json:
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pex.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pex.qhc"
+
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/pex"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pex"
+	@echo "# devhelp"
+
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+latexpdfja:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through platex and dvipdfmx..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo
+	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+	@echo "Run \`make' in that directory to run these through makeinfo" \
+	      "(use \`make info' here to do that automatically)."
+
+info:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo "Running Texinfo files through makeinfo..."
+	make -C $(BUILDDIR)/texinfo info
+	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+	@echo
+	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+	@echo
+	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+	@echo
+	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/api/index.rst b/docs/api/index.rst
new file mode 100644
index 0000000..bbd1a32
--- /dev/null
+++ b/docs/api/index.rst
@@ -0,0 +1,159 @@
+PEX API Reference
+=================
+
+Module contents
+---------------
+
+.. automodule:: pex
+    :members:
+    :show-inheritance:
+
+pex.crawler module
+------------------------
+
+.. automodule:: pex.crawler
+    :members:
+    :show-inheritance:
+
+pex.environment module
+----------------------
+
+.. automodule:: pex.environment
+    :members:
+    :show-inheritance:
+
+pex.fetcher module
+------------------
+
+.. automodule:: pex.fetcher
+    :members:
+    :show-inheritance:
+
+pex.finders module
+------------------
+
+.. automodule:: pex.finders
+    :members:
+    :show-inheritance:
+
+pex.http module
+--------------------
+
+.. automodule:: pex.http
+    :members:
+    :show-inheritance:
+
+pex.installer module
+--------------------
+
+.. automodule:: pex.installer
+    :members:
+    :show-inheritance:
+
+pex.interpreter module
+----------------------
+
+.. automodule:: pex.interpreter
+    :members:
+    :show-inheritance:
+
+pex.iterator module
+----------------------
+
+.. automodule:: pex.iterator
+    :members:
+    :show-inheritance:
+
+pex.link module
+----------------------
+
+.. automodule:: pex.link
+    :members:
+    :show-inheritance:
+
+pex.package module
+------------------
+
+.. automodule:: pex.package
+    :members:
+    :show-inheritance:
+
+pex.pep425 module
+-----------------
+
+.. automodule:: pex.pep425
+    :members:
+    :show-inheritance:
+
+pex.pex module
+--------------
+
+.. automodule:: pex.pex
+    :members:
+    :show-inheritance:
+
+pex.pex_builder module
+----------------------
+
+.. automodule:: pex.pex_builder
+    :members:
+    :show-inheritance:
+
+pex.pex_info module
+-------------------
+
+.. automodule:: pex.pex_info
+    :members:
+    :show-inheritance:
+
+pex.platforms module
+--------------------
+
+.. automodule:: pex.platforms
+    :members:
+    :show-inheritance:
+
+pex.resolver module
+-------------------
+
+.. automodule:: pex.resolver
+    :members:
+    :show-inheritance:
+
+pex.testing module
+------------------
+
+.. automodule:: pex.testing
+    :members:
+    :show-inheritance:
+
+pex.tracer module
+-----------------
+
+.. automodule:: pex.tracer
+    :members:
+    :show-inheritance:
+
+pex.translator module
+---------------------
+
+.. automodule:: pex.translator
+    :members:
+    :show-inheritance:
+
+pex.util module
+---------------
+
+.. automodule:: pex.util
+    :members:
+    :show-inheritance:
+
+
+pex.variables module
+--------------------
+
+.. _PexVariables:
+
+.. automodule:: pex.variables
+    :members:
+    :show-inheritance:
diff --git a/docs/buildingpex.rst b/docs/buildingpex.rst
new file mode 100644
index 0000000..8a16acf
--- /dev/null
+++ b/docs/buildingpex.rst
@@ -0,0 +1,330 @@
+.. _buildingpex:
... 6794 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-pex.git



More information about the Python-modules-commits mailing list