{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "PEX\n===\n.. image:: https://travis-ci.org/pantsbuild/pex.svg?branch=master\n :target: https://travis-ci.org/pantsbuild/pex\n\npex is a library for generating .pex (Python EXecutable) files which are\nexecutable Python environments in the spirit of `virtualenvs `_.\npex is an expansion upon the ideas outlined in\n`PEP 441 `_\nand makes the deployment of Python applications as simple as ``cp``. pex files may even\ninclude multiple platform-specific Python distributions, meaning that a single pex file\ncan be portable across Linux and OS X.\n\npex files can be built using the ``pex`` tool. Build systems such as `Pants\n`_, `Buck `_, and `{py}gradle `_ also\nsupport building .pex files directly.\n\nStill unsure about what pex does or how it works? Watch this quick lightning\ntalk: `WTF is PEX? `_.\n\npex is licensed under the Apache2 license.\n\n\nInstallation\n============\n\nTo install pex, simply\n\n.. code-block:: bash\n\n $ pip install pex\n\nYou can also build pex in a git clone using tox:\n\n.. code-block:: bash\n\n $ tox -e py27-package\n $ cp dist/pex ~/bin\n\nThis builds a pex binary in ``dist/pex`` that can be copied onto your ``$PATH``.\nThe advantage to this approach is that it keeps your Python environment as empty as\npossible and is more in-line with what pex does philosophically.\n\n\nSimple Examples\n===============\n\nLaunch an interpreter with ``requests``, ``flask`` and ``psutil`` in the environment:\n\n.. code-block:: bash\n\n $ pex requests flask 'psutil>2,<3'\n\nOr instead freeze your current virtualenv via requirements.txt and execute it anywhere:\n\n.. code-block:: bash\n\n $ pex -r <(pip freeze) -o my_virtualenv.pex\n $ deactivate\n $ ./my_virtualenv.pex\n\nRun webserver.py in an environment containing ``flask`` as a quick way to experiment:\n\n.. code-block:: bash\n\n $ pex flask -- webserver.py\n\nLaunch Sphinx in an ephemeral pex environment using the Sphinx entry point ``sphinx:main``:\n\n.. code-block:: bash\n\n $ pex sphinx -e sphinx:main -- --help\n\nBuild a standalone pex binary into ``pex.pex`` using the ``pex`` console_scripts entry point:\n\n.. code-block:: bash\n\n $ pex pex -c pex -o pex.pex\n\nYou can also build pex files that use a specific interpreter type:\n\n.. code-block:: bash\n\n $ pex pex -c pex --python=pypy -o pypy-pex.pex\n\nMost pex options compose well with one another, so the above commands can be\nmixed and matched. For a full list of options, just type ``pex --help``.\n\n\nIntegrating pex into your workflow\n==================================\n\nIf you use tox (and you should!), a simple way to integrate pex into your\nworkflow is to add a packaging test environment to your ``tox.ini``:\n\n.. code-block:: ini\n\n [testenv:package]\n deps = pex\n commands = pex . -o dist/app.pex\n\nThen ``tox -e package`` will produce a relocateable copy of your application\nthat you can copy to staging or production environments.\n\n\nDocumentation\n=============\n\nMore documentation about pex, building .pex files, and how .pex files work\nis available at https://pex.readthedocs.io.\n\n\nDevelopment\n===========\n\npex uses `tox `_ for test and development automation. To run\nthe test suite, just invoke tox:\n\n.. code-block:: bash\n\n $ tox\n\nIf you don't have tox, you can generate a pex of tox:\n\n.. code-block::\n\n $ pex tox -c tox -o ~/bin/tox\n\n\nContributing\n============\n\nTo contribute, follow these instructions: http://pantsbuild.org/howto_contribute.html\n\nRelease Notes\n=============\n\n1.2.7\n-----\n\n* Sort keys in PEX-INFO file so the output is deterministic. (#384)\n `#384 `_\n\n* Pass platform for SourceTranslator (#386)\n `#386 `_\n\n1.2.6\n-----\n\n* Fix for Ambiguous Resolvable bug in transitive dependency resolution (#367)\n `#367 `_\n\n1.2.5\n-----\n\nThis release follows-up on 1.2.0 fixing bugs in the pre-release resolving code paths.\n\n* Resolving pre-release when explicitly requested (#372)\n `#374 `_\n\n* Pass allow_prerelease to other iterators (Static, Caching) (#373)\n `#373 `_\n\n1.2.4\n-----\n\n* Fix bug in cached dependency resolution with exact resolvable. (#365)\n `#365 `_\n\n* Treat .pth injected paths as extras. (#370)\n `#370 `_\n\n1.2.3\n-----\n\n* Follow redirects on HTTP requests (#361)\n `#361 `_\n\n* Fix corner case in cached dependency resolution (#362)\n `#362 `_\n\n1.2.2\n-----\n\n* Fix CacheControl import. (#357)\n `#357 `_\n\n1.2.1\n-----\n\nThis release is a quick fix for a bootstrapping bug that inadvertently went out in 1.2.0 (Issue\n#354).\n\n* Ensure `packaging` dependency is self-contained. (#355)\n `#355 `_\n `Fixes #354 `_\n\n1.2.0\n-----\n\nThis release changes pex requirement resolution behavior. Only stable requirements are resolved by\ndefault now. The previous behavior that included pre-releases can be retained by passing `--pre` on\nthe pex command line or passing `allow_prereleases=True` via the API.\n\n* Upgrade dependencies to modern version ranges. (#352)\n `#352 `_\n\n* Add support for controlling prerelease resolution. (#350)\n `#350 `_\n `Fixes #28 `_\n\n1.1.20\n------\n\n* Add dummy flush method for clean interpreter exit with python3.6 (#343)\n `#343 `_\n\n1.1.19\n------\n\n* Implement --constraints in pex (#335)\n `#335 `_\n\n* Make sure namespace packages (e.g. virtualenvwrapper) don't break pex (#338)\n `#338 `_\n\n1.1.18\n------\n\n* Expose a PEX instance's path. (#332)\n `#332 `_\n\n* Check for scripts directory in get_script_from_egg (#328)\n `#328 `_\n\n1.1.17\n------\n\n* Make PEX_PATH unify pex sources, as well as requirements. (#329)\n `#329 `_\n\n1.1.16\n------\n\n* Adjust FileFinder import to work with Python 3.6. (#318)\n `#318 `_\n\n* Kill zipmanifest monkeypatching. (#322)\n `#322 `_\n\n* Bump setuptools range to latest. (#323)\n `#323 `_\n\n1.1.15\n------\n\n* Fix #309 by deduplicating output of the distribution finder. (#310)\n `#310 `_\n\n* Update wheel dependency to >0.26.0. (#304)\n `#304 `_\n\n1.1.14\n------\n\n* Repair Executor error handling for other classes of IOError/OSError. (#292)\n `#292 `_\n\n* Fix bdist_pex --pex-args. (#285)\n `#285 `_\n\n* Inherit user site with --inherit-path. (#284)\n `#284 `_\n\n1.1.13\n------\n\n* Repair passing of stdio kwargs to PEX.run(). (#288)\n `#288 `_\n\n1.1.12\n------\n\n* Fix bdist_pex interpreter cache directory. (#286)\n `#286 `_\n\n* Normalize and edify subprocess execution. (#255)\n `#255 `_\n\n* Don't ignore exit codes when using setuptools entry points. (#280)\n `#280 `_\n `Fixes #137 `_\n\n1.1.11\n------\n\n* Update cache dir when bdist_pex.run is called directly.\n `#278 `_\n `Fixes #274 `_\n\n1.1.10\n------\n\n* Improve failure modes for os.rename() as used in distribution caching.\n `#271 `_\n `Fixes #265 `_\n\n1.1.9\n-----\n\n* Bugfix: Open setup.py in binary mode.\n `#264 `_\n `Fixes #263 `_\n\n1.1.8\n-----\n\n* Bugfix: Repair a regression in `--disable-cache`.\n `#261 `_\n `Fixes #260 `_\n\n1.1.7\n-----\n\n* Add README and supported python versions to PyPI description.\n `#258 `_\n\n* Use `open` with utf-8 support.\n `#231 `_\n\n* Add `--pex-root` option.\n `#206 `_\n\n1.1.6\n-----\n\nThis release is a quick fix for a regression that inadvertently went out in 1.1.5 (Issue #243).\n\n* Fix the ``bdist_pex`` ``setuptools`` command to work for python2.\n `#246 `_\n `Fixes #243 `_\n\n* Upgrade pex dependencies on ``setuptools`` and ``wheel``.\n `#244 `_\n `Fixes #238 `_\n\n1.1.5\n-----\n\n* Fix ``PEXBuilder.clone`` and thus ``bdist_pex --pex-args`` for ``--python`` and ``--python-shebang``.\n `#234 `_\n `Fixes #233 `_\n\n* Fix old ``pkg_resources`` egg version normalization.\n `#227 `_\n `Fixes #226 `_\n\n* Fix the ``inherit_path`` handling.\n `#224 `_\n\n* Fix handling of bad distribution script names when used as the pex entrypoint.\n `#221 `_\n `Fixes #220 `_\n\n1.1.4\n-----\n\nThis release is a quick fix for a regression that inadvertently went out in 1.1.3 (Issue #216).\n\n* Add a test for the regression in ``FixedEggMetadata._zipinfo_name`` and revert the breaking commit.\n `Fixes #216 `_\n\n1.1.3\n-----\n\nThis release includes an initial body of work towards Windows support, ABI tag support for CPython 2.x and a fix for version number normalization.\n\n* Add python 2.x abi tag support.\n `#214 `_\n `Fixes #213 `_\n\n* Add .idea to .gitignore.\n `#205 `_\n\n* Don't normalize version numbers as names.\n `#204 `_\n\n* More fixes for windows.\n `#202 `_\n\n* Fixes to get pex to work on windows.\n `#198 `_\n\n1.1.2\n-----\n\n* Bump setuptools & wheel version pinning.\n `#194 `_\n\n* Unescape html in PageParser.href_match_to_url.\n `#191 `_\n\n* Memoize calls to Crawler.crawl() for performance win in find-links based resolution.\n `#187 `_\n\n1.1.1\n-----\n\n* Fix infinite recursion when ``PEX_PYTHON`` points at a symlink.\n `#182 `_\n\n* Add ``/etc/pexrc`` to the list of pexrc locations to check.\n `#183 `_\n\n* Improve error messaging for platform constrained Untranslateable errors.\n `#179 `_\n\n1.1.0\n-----\n\n* Add support for ``.pexrc`` files for influencing the pex environment. See the notes `here\n `_.\n `#128 `_.\n\n* Bug fix: PEX_PROFILE_FILENAME and PEX_PROFILE_SORT were not respected.\n `#154 `_.\n\n* Adds the ``bdist_pex`` command to setuptools.\n `#99 `_.\n\n* Bug fix: We did not normalize package names in ``ResolvableSet``, so it was possible to depend on\n ``sphinx`` and ``Sphinx-1.4a0.tar.gz`` and get two versions build and included into the pex.\n `#147 `_.\n\n* Adds a pex-identifying User-Agent. `#101 `_.\n\n1.0.3\n-----\n\n* Bug fix: Accommodate OSX ``Python`` python binaries. Previously the OSX python distributions shipped\n with OSX, XCode and available via https://www.python.org/downloads/ could fail to be detected using\n the ``PythonInterpreter`` class.\n Fixes `#144 `_.\n\n* Bug fix: PEX_SCRIPT failed when the script was from a not-zip-safe egg.\n Original PR `#139 `_.\n\n* Bug fix: ``sys.exit`` called without arguments would cause `None` to be printed on stderr since pex 1.0.1.\n `#143 `_.\n\n1.0.2\n-----\n\n* Bug fix: PEX-INFO values were overridden by environment ``Variables`` with default values that were\n not explicitly set in the environment.\n Fixes `#135 `_.\n\n* Bug fix: Since `69649c1 `_ we have been unpatching\n the side-effects of ``sys.modules`` after ``PEX.execute``. This takes all modules imported during\n the PEX lifecycle and sets all their attributes to ``None``. Unfortunately, ``sys.excepthook``,\n ``atexit`` and ``__del__`` may still try to operate using these tainted modules, causing exceptions\n on interpreter teardown. This reverts just the ``sys`` unpatching so that the abovementioned\n teardown hooks behave more predictably.\n Fixes `#141 `_.\n\n1.0.1\n-----\n\n* Allow PEXBuilder to optionally copy files into the PEX environment instead of hard-linking them.\n\n* Allow PEXBuilder to optionally skip precompilation of .py files into .pyc files.\n\n* Bug fix: PEXBuilder did not respect the target interpreter when compiling source to bytecode.\n Fixes `#127 `_.\n\n* Bug fix: Fix complex resolutions when using a cache.\n Fixes: `#120 `_.\n\n1.0.0\n-----\n\nThe 1.0.0 release of pex introduces a few breaking changes: ``pex -r`` now takes requirements.txt files\ninstead of requirement specs, ``pex -s`` has now been removed since source specs are accepted as arguments,\nand ``pex -p`` has been removed in favor of its alias ``pex -o``.\n\nThe pex *command line interface* now adheres to semver insofar as backwards incompatible CLI\nchanges will invoke a major version change. Any backwards incompatible changes to the PEX\nenvironment variable semantics will also result in a major version change. The pex *API* adheres\nto semver insofar as backwards incompatible API changes will invoke minor version changes.\n\nFor users of the PEX API, it is recommended to add minor version ranges, e.g. ``pex>=1.0,<1.1``.\nFor users of the PEX CLI, major version ranges such as ``pex>=1,<2`` should be sufficient.\n\n* BREAKING CHANGE: Removes the ``-s`` option in favor of specifying directories directly as\n arguments to the pex command line.\n\n* BREAKING CHANGE: ``pex -r`` now takes requirements.txt filenames and *not* requirement\n specs. Requirement specs are now passed as arguments to the pex tool. Use ``--`` to escape\n command line arguments passed to interpreters spawned by pex. Implements\n `#5 `_.\n\n* Adds a number of flag aliases to be more compatible with pip command lines: ``--no-index``,\n ``-f``, ``--find-links``, ``--index-url``, ``--no-use-wheel``. Removes ``-p`` in favor of\n ``-o`` exclusively.\n\n* Adds ``--python-shebang`` option to the pex tool in order to set the ``#!`` shebang to an exact\n path. `#53 `_.\n\n* Adds support for ``PEX_PYTHON`` environment variable which will cause the pex file to reinvoke\n itself using the interpreter specified, e.g. ``PEX_PYTHON=python3.4`` or\n ``PEX_PYTHON=/exact/path/to/interpreter``. `#27 `_.\n\n* Adds support for ``PEX_PATH`` environment variable which allows merging of PEX environments at\n runtime. This can be used to inject plugins or entry_points or modules from one PEX into\n another without explicitly building them together. `#30 `_.\n\n* Consolidates documentation of ``PEX_`` environment variables and adds the ``--help-variables`` option\n to the pex client. Partially addresses `#13 `_.\n\n* Adds helper method to dump a package subdirectory onto disk from within a zipped PEX file. This\n can be useful for applications that know they're running within a PEX and would prefer some\n static assets dumped to disk instead of running as an unzipped PEX file.\n `#12 `_.\n\n* Now supports extras for static URLs and installable directories.\n `#65 `_.\n\n* Adds ``-m`` and ``--entry-point`` alias to the existing ``-e`` option for entry points in\n the pex tool to evoke the similarity to ``python -m``.\n\n* Adds console script support via ``-c/--script/--console-script`` and ``PEX_SCRIPT``. This allows\n you to reference the named entry point instead of the exact ``module:name`` pair. Also supports\n scripts defined in the ``scripts`` section of setup.py.\n `#59 `_.\n\n* Adds more debugging information when encountering unresolvable requirements.\n `#79 `_.\n\n* Bug fix: ``PEX_COVERAGE`` and ``PEX_PROFILE`` did not function correctly when SystemExit was raised.\n Fixes `#81 `_.\n\n* Bug fix: Fixes caching in the PEX tool since we don't cache the source distributions of installable\n directories. `#24 `_.\n\n0.9.0\n-----\n\nThis is the last release before the 1.0.0 development branch is started.\n\n* Change the setuptools range to >=2.2,<16 by handling EntryPoint changes as well as\n being flexible on whether ``pkg_resources`` is a package or a module. Fixes\n `#55 `_ and\n `#34 `_.\n\n* Adds option groups to the pex tool to make the help output slightly more readable.\n\n* Bug fix: Make ``pip install pex`` work better by removing ``extras_requires`` on the\n ``console_script`` entry point. Fixes `#48 `_\n\n* New feature: Adds an interpreter cache to the ``pex`` tool. If the user does not explicitly\n disable the wheel feature and attempts to build a pex with wheels but does not have the wheel\n package installed, pex will download it in order to make the feature work.\n Implements `#47 `_ in order to\n fix `#48 `_\n\n0.8.6\n-----\n\n* Bug fix: Honor installed sys.excepthook in pex teardown.\n `RB #1733 `_\n\n* Bug fix: ``UrllibContext`` used ``replace`` as a keyword argument for ``bytes.decode``\n but this only works on Python 3. `Pull Request #46 `_\n\n0.8.5\n-----\n\n* Bug fix: Fixup string formatting in pex/bin/pex.py to support Python 2.6\n `Pull Request #40 `_\n\n0.8.4\n-----\n\n* Performance improvement: Speed up the best-case scenario of dependency resolution.\n `RB #1685 `_\n\n* Bug fix: Change from ``uuid4().get_hex()`` to ``uuid4().hex`` to maintain Python3\n compatibility of pex.common.\n `Pull Request #39 `_\n\n* Bug fix: Actually cache the results of translation. Previously bdist translations\n would be created in a temporary directory even if a cache location was specified.\n `RB #1666 `_\n\n* Bug fix: Support all potential abi tag permutations when determining platform\n compatibility.\n `Pull Request #33 `_\n\n0.8.3\n-----\n\n* Performance improvement: Don't always write packages to disk if they've already been\n cached. This can significantly speed up launching PEX files with a large\n number of non-zip-safe dependencies.\n `RB #1642 `_\n\n0.8.2\n-----\n\n* Bug fix: Allow pex 0.8.x to parse pex files produced by earlier versions of\n pex and twitter.common.python.\n\n* Pin pex to setuptools prior to 9.x until we have a chance to make changes\n related to PEP440 and the change of pkg_resources.py to a package.\n\n0.8.1\n-----\n\n* Bug fix: Fix issue where it'd be possible to ``os.path.getmtime`` on a remote ``Link`` object\n `Issue #29 `_\n\n0.8.0\n-----\n\n* *API change*: Decouple translation from package iteration. This removes\n the Obtainer construct entirely, which likely means if you're using PEX as\n a library, you will need to change your code if you were doing anything\n nontrivial. This adds a couple new options to ``resolve`` but simplifies\n the story around how to cache packages.\n `RB #785 `_\n\n* Refactor http handling in pex to allow for alternate http implementations. Adds support\n for `requests `_,\n improving both performance and security. For more information, read the commit notes at\n `91c7f32 `_.\n `RB #778 `_\n\n* Improvements to API documentation throughout.\n\n* Renamed ``Tracer`` to ``TraceLogger`` to prevent nondeterministic isort ordering.\n\n* Refactor tox.ini to increase the number of environment combinations and improve coverage.\n\n* Adds HTTP retry support for the RequestsContext.\n `RB #1303 `_\n\n* Make pex --version correct.\n `Issue #19 `_\n\n* Bug fix: Fix over-aggressive sys.modules scrubbing for namespace packages. Under\n certain circumstances, namespace packages in site-packages could conflict with packages\n within a PEX, causing them to fail importing.\n `RB #1378 `_\n\n* Bug fix: Replace uses of ``os.unsetenv(...)`` with ``del os.environ[...]``\n `Pull Request #11 `_\n\n* Bug fix: Scrub sys.path and sys.modules based upon both supplied path and\n realpath of files and directories. Newer versions of virtualenv on Linux symlink site-packages\n which caused those packages to not be removed from sys.path correctly.\n `Issue #21 `_\n\n* Bug fix: The pex -s option was not correctly pulling in transitive dependencies.\n `Issue #22 `_\n\n* Bug fix: Adds ``content`` method to HTTP contexts that does HTML content decoding, fixing\n an encoding issue only experienced when using Python 3.\n `Issue #10 `_\n\n0.7.0\n-----\n\n* Rename ``twitter.common.python`` to ``pex`` and split out from the\n `twitter/commons `_ repo.\n\n0.6.0\n-----\n\n* Change the interpretation of ``-i`` (and of PyPIFetcher's pypi_base)\n to match pip's ``-i``. This is useful for compatibility with devpi.\n\n0.5.10\n------\n\n* Ensures that .egg/.whl distributions on disk have their mtime updated\n even though we no longer overwrite them. This gives them a new time\n lease against their ttl.\n\n Without this change, once a distribution aged past the ttl it would\n never be used again, and builds would re-create the same distributions\n in tmpdirs over and over again.\n\n0.5.9\n-----\n\n* Fixes an issue where SourceTranslator would overwrite .egg/.whl\n distributions already on disk. Instead it should always check to see if\n a copy already exists and reuse if there.\n\n This ordinarily should not be a problem but the zipimporter caches\n metadata by filename instead of stat/sha, so if the underlying contents\n changed a runtime error would be thrown due to seemingly corrupt zip file\n offsets. `RB #684 `_\n\n0.5.8\n-----\n\n* Adds ``-i/--index`` option to the pex tool.\n\n0.5.7\n-----\n\n* Adds ``twitter.common.python.pex_bootstrap`` ``bootstrap_pex_env`` function in\n order to initialize a PEX environment from within a python interpreter.\n (Patch contributed by @kwlzn)\n\n* Adds stdin=,stdout=,stderr= keyword parameters to the ``PEX.run`` function.\n (Patch from @benjy)\n\n0.5.6\n-----\n\n* The crawler now defaults to not follow links for security reasons.\n (Before the default behavior was to implicitly ``--follow-links`` for all\n requirements.) `RB #293 `_\n\n0.5.5\n-----\n\n* Improves scrubbing of site-packages from PEX environments.\n `RB #289 `_\n\n0.5.1 - 0.5.4\n-------------\n\n* Silences exceptions reported during interpreter teardown (the exceptions\n resulting from incorrect atexit handler behavior) introduced by 0.4.3\n `RB #253 `_\n `RB #249 `_\n\n* Adds ``__hash__`` to ``Link`` so that Packages are hashed correctly in\n ``twitter.common.python.resolver`` ``resolve``\n\n0.5.0\n-----\n\n* Adds wheel support to ``twitter.common.python``\n `RB #94 `_\n `RB #154 `_\n `RB #148 `_\n\n0.4.3\n-----\n\n* Adds ``twitter.common.python.finders`` which are additional finders for\n setuptools including:\n - find eggs within a .zip\n - find wheels within a directory\n - find wheels within a .zip\n `RB #86 `_\n\n* Adds a new Package abstraction by refactoring Link into Link and Package.\n `RB #92 `_\n\n* Adds support for PEP425 tagging necessary for wheel support.\n `RB #87 `_\n\n* Improves python environment isolation by correctly scrubbing namespace\n packages injected into module ``__path__`` attributes by nspkg pth files.\n `RB #116 `_\n\n* Adds ``twitter.common.python.resolver`` ``resolve`` method that handles\n transitive dependency resolution better. This means that if the\n requirement ``futures==2.1.2`` and an unqualified ``futures>=2`` is pulled in\n transitively, our resolver will correctly resolve futures 2.1.2 instead\n of reporting a VersionConflict if any version newer than 2.1.2 is\n available. `RB #129 `_\n\n* Factors all ``twitter.common.python`` test helpers into\n ``twitter.common.python.testing``\n `RB #91 `_\n\n* Bug fix: Fix ``OrderedSet`` atexit exceptions\n `RB #147 `_\n\n* Bug fix: Fix cross-device symlinking (patch from @benjy)\n\n* Bug fix: Raise a ``RuntimeError`` if we fail to write ``pkg_resources`` into a .pex\n `RB #115 `_\n\n0.4.2\n-----\n\n* Upgrade to ``setuptools>=1``\n\n0.4.1\n-----\n\n* ``twitter.common.python`` is no longer a namespace package\n\n0.4.0\n-----\n\n* Kill the egg distiller. We now delegate .egg generation to bdist_egg.\n `RB #55 `_\n\n0.3.1\n-----\n\n* Short-circuit resolving a distribution if a local exact match is found.\n `RB #47 `_\n\n* Correctly patch the global ``pkg_resources`` ``WorkingSet`` for the lifetime\n of the Python interpreter. `RB #52 `_\n\n* Fixes a performance regression in setuptools ``build_zipmanifest``\n `Setuptools Issue #154 `_\n `RB #53 `_\n\n0.3.0\n-----\n\n* Plumb through the ``--zip-safe``, ``--always-write-cache``, ``--ignore-errors``\n and ``--inherit-path`` flags to the pex tool.\n\n* Delete the unused ``PythonDirWrapper`` code.\n\n* Split ``PEXEnvironment`` resolution into ``twitter.common.python.environment``\n and deconflate ``WorkingSet``/``Environment`` state.\n\n* Removes the monkeypatched zipimporter in favor of keeping all eggs\n unzipped within PEX files. Refactors the PEX dependency cache in\n ``util.py``\n\n* Adds interpreter detection for Jython and PyPy.\n\n* Dependency translation errors should be made uniform.\n (Patch from @johnsirois)\n\n* Adds ``PEX_PROFILE_ENTRIES`` to limit the number of entries reported when\n ``PEX_PROFILE`` is enabled. (Patch from @rgs_)\n\n* Bug fix: Several fixes to error handling in ``twitter.common.python.http``\n (From Marc Abramowitz)\n\n* Bug fix: PEX should not always assume that ``$PATH`` was available.\n (Patch from @jamesbroadhead)\n\n* Bug fix: Filename should be part of the .pex cache key or else multiple\n identical versions will incorrectly resolve (Patch from @tc)\n\n* Bug fix: Executed entry points shouldn't be forced to run in an\n environment with ``__future__`` imports enabled. (Patch from\n @lawson_patrick)\n\n* Bug fix: Detect versionless egg links and fail fast. (Patch from\n @johnsirois.)\n\n* Bug fix: Handle setuptools>=2.1 correctly in the zipimport monkeypatch\n (Patch from @johnsirois.)\n\n0.2.3\n-----\n\n* Bug fix: Fix handling of Fetchers with ``file://`` urls.\n\n0.2.2\n-----\n\n* Adds the pex tool as a standalone tool.\n\n0.2.1\n-----\n\n* Bug fix: Bootstrapped ``twitter.common.python`` should declare ``twitter.common``\n as a namespace package.\n\n0.2.0\n-----\n\n* Make ``twitter.common.python`` fully standalone by consolidating\n external dependencies within ``twitter.common.python.common``.\n\n0.1.0\n-----\n\n* Initial published version of ``twitter.common.python``.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pantsbuild/pex", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "kedo-pex", "package_url": "https://pypi.org/project/kedo-pex/", "platform": "", "project_url": "https://pypi.org/project/kedo-pex/", "project_urls": { "Homepage": "https://github.com/pantsbuild/pex" }, "release_url": "https://pypi.org/project/kedo-pex/1.2.7.0/", "requires_dist": [ "setuptools (>=20.3,<34.0)" ], "requires_python": "", "summary": "The PEX packaging toolchain.", "version": "1.2.7.0" }, "last_serial": 2980193, "releases": { "1.2.7.0": [ { "comment_text": "", "digests": { "md5": "60787f52cf1b35d1cead42682ced4fd3", "sha256": "f703968260db460d3b064627104b130965a05de04af376de60e316dc7d945c1b" }, "downloads": -1, "filename": "kedo_pex-1.2.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60787f52cf1b35d1cead42682ced4fd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 112493, "upload_time": "2017-06-26T17:57:47", "url": "https://files.pythonhosted.org/packages/fe/09/e4d5d430f4e1aeafbc6f5307fd908a6643665b8ee332c6c3da33ee1bd990/kedo_pex-1.2.7.0-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "60787f52cf1b35d1cead42682ced4fd3", "sha256": "f703968260db460d3b064627104b130965a05de04af376de60e316dc7d945c1b" }, "downloads": -1, "filename": "kedo_pex-1.2.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60787f52cf1b35d1cead42682ced4fd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 112493, "upload_time": "2017-06-26T17:57:47", "url": "https://files.pythonhosted.org/packages/fe/09/e4d5d430f4e1aeafbc6f5307fd908a6643665b8ee332c6c3da33ee1bd990/kedo_pex-1.2.7.0-py2.py3-none-any.whl" } ] }