Port pants to pex 0.8.x

Review Request #1421 - Created Dec. 4, 2014 and submitted

Brian Wickman (Twitter)
jsirois, patricklaw

SSIA. The user facing parts of this change:
- package resolution happens via requests now -- this is way more reliable and results in fewer Untranslateable exceptions
- PEX_VERBOSE now controls all pex verbosity, including better messages around Untranslateable (yay!)
- fixes a major pex regression with namespace packages introduced somewhere in 0.5.x

The pex 0.7.0 -> 0.8.0 changelog:

  • API change: Decouple translation from package iteration. This removes
    the Obtainer construct entirely, which likely means if you're using PEX as
    a library, you will need to change your code if you were doing anything
    nontrivial. This adds a couple new options to resolve but simplifies
    the story around how to cache packages.
    RB #785
  • Refactor http handling in pex to allow for alternate http implementations. Adds support
    for requests,
    improving both performance and security. For more information, read the commit notes at
    RB #778
  • Improvements to API documentation throughout.
  • Renamed Tracer to TraceLogger to prevent nondeterministic isort ordering.
  • Refactor tox.ini to increase the number of environment combinations and improve coverage.
  • Adds HTTP retry support for the RequestsContext.
    RB #1303
  • Make pex --version correct.
    Issue #19
  • Bug fix: Fix over-aggressive sys.modules scrubbing for namespace packages. Under
    certain circumstances, namespace packages in site-packages could conflict with packages
    within a PEX, causing them to fail importing.
    RB #1378
  • Bug fix: Replace uses of os.unsetenv(...) with del os.environ[...]
    Pull Request #11
  • Bug fix: Scrub sys.path and sys.modules based upon both supplied path and
    realpath of files and directories. Newer versions of virtualenv on Linux symlink site-packages
    which caused those packages to not be removed from sys.path correctly.
    Issue #21
  • Bug fix: The pex -s option was not correctly pulling in transitive dependencies.
    Issue #22
  • Bug fix: Adds content method to HTTP contexts that does HTML content decoding, fixing
    an encoding issue only experienced when using Python 3.
    Issue #10


Patrick Lawson
John Sirois
John Sirois
Brian Wickman (Twitter)
Review request changed

Status: Closed (submitted)