From 23f99bf14f8b6c80d359c4facc6496ab14cd3d80 Mon Sep 17 00:00:00 2001 From: zooko <zooko@zooko.com> Date: Sun, 17 Jul 2011 08:28:56 +0530 Subject: [PATCH] copy in the latest version of zetuptoolz from the tahoe-lafs project Ignore-this: 7bbb139eb0632cb155d53700cf4239be darcs-hash:3b547744d3acb475b2d1c9e7991196ec88030d14 --- .../EGG-INFO/PKG-INFO | 183 ----------- .../EGG-INFO/PKG-INFO | 100 ++++++ .../EGG-INFO/SOURCES.txt | 1 + .../EGG-INFO/dependency_links.txt | 0 .../EGG-INFO/entry_points.txt | 5 +- .../EGG-INFO/top_level.txt | 0 .../EGG-INFO/zip-safe | 0 .../easy_install.py | 0 .../pkg_resources.py | 52 +++- .../setuptools/__init__.py | 10 +- .../setuptools/archive_util.py | 0 .../setuptools/cli.exe | Bin .../setuptools/command/__init__.py | 2 +- .../setuptools/command/alias.py | 0 .../setuptools/command/bdist_egg.py | 0 .../setuptools/command/bdist_rpm.py | 0 .../setuptools/command/bdist_wininst.py | 0 .../setuptools/command/build_ext.py | 0 .../setuptools/command/build_py.py | 6 + .../setuptools/command/develop.py | 11 +- .../setuptools/command/easy_install.py | 147 ++++----- .../setuptools/command/egg_info.py | 0 .../setuptools/command/install.py | 12 +- .../setuptools/command/install_egg_info.py | 0 .../setuptools/command/install_lib.py | 0 .../setuptools/command/install_scripts.py | 0 .../setuptools/command/register.py | 0 .../setuptools/command/rotate.py | 0 .../setuptools/command/saveopts.py | 0 .../setuptools/command/scriptsetup.py | 284 ++++++++++++++++++ .../setuptools/command/sdist.py | 0 .../setuptools/command/setopt.py | 0 .../setuptools/command/test.py | 0 .../setuptools/command/upload.py | 0 .../setuptools/depends.py | 0 .../setuptools/dist.py | 0 .../setuptools/extension.py | 0 .../setuptools/package_index.py | 43 ++- .../setuptools/sandbox.py | 0 .../setuptools/site-patch.py | 0 .../setuptools/tests/__init__.py | 0 .../setuptools/tests/test_packageindex.py | 0 .../setuptools/tests/test_resources.py | 0 zfec/setuptools-0.6c16dev3.egg/zetuptoolz.txt | 93 ++++++ 44 files changed, 658 insertions(+), 291 deletions(-) delete mode 100644 zfec/setuptools-0.6c15dev.egg/EGG-INFO/PKG-INFO create mode 100644 zfec/setuptools-0.6c16dev3.egg/EGG-INFO/PKG-INFO rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/EGG-INFO/SOURCES.txt (97%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/EGG-INFO/dependency_links.txt (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/EGG-INFO/entry_points.txt (93%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/EGG-INFO/top_level.txt (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/EGG-INFO/zip-safe (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/easy_install.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/pkg_resources.py (98%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/__init__.py (89%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/archive_util.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/cli.exe (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/__init__.py (92%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/alias.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/bdist_egg.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/bdist_rpm.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/bdist_wininst.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/build_ext.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/build_py.py (97%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/develop.py (96%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/easy_install.py (93%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/egg_info.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/install.py (95%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/install_egg_info.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/install_lib.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/install_scripts.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/register.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/rotate.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/saveopts.py (100%) create mode 100644 zfec/setuptools-0.6c16dev3.egg/setuptools/command/scriptsetup.py rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/sdist.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/setopt.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/test.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/command/upload.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/depends.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/dist.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/extension.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/package_index.py (94%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/sandbox.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/site-patch.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/tests/__init__.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/tests/test_packageindex.py (100%) rename zfec/{setuptools-0.6c15dev.egg => setuptools-0.6c16dev3.egg}/setuptools/tests/test_resources.py (100%) create mode 100644 zfec/setuptools-0.6c16dev3.egg/zetuptoolz.txt diff --git a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/PKG-INFO b/zfec/setuptools-0.6c15dev.egg/EGG-INFO/PKG-INFO deleted file mode 100644 index 019cb4c..0000000 --- a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/PKG-INFO +++ /dev/null @@ -1,183 +0,0 @@ -Metadata-Version: 1.0 -Name: setuptools -Version: 0.6c15dev -Summary: Download, build, install, upgrade, and uninstall Python packages -- easily! -Home-page: http://pypi.python.org/pypi/setuptools -Author: Phillip J. Eby -Author-email: distutils-sig@python.org -License: PSF or ZPL -Description: =============================== - Installing and Using Setuptools - =============================== - - .. contents:: **Table of Contents** - - - ------------------------- - Installation Instructions - ------------------------- - - Windows - ======= - - Install setuptools using the provided ``.exe`` installer. If you've previously - installed older versions of setuptools, please delete all ``setuptools*.egg`` - and ``setuptools.pth`` files from your system's ``site-packages`` directory - (and any other ``sys.path`` directories) FIRST. - - If you are upgrading a previous version of setuptools that was installed using - an ``.exe`` installer, please be sure to also *uninstall that older version* - via your system's "Add/Remove Programs" feature, BEFORE installing the newer - version. - - Once installation is complete, you will find an ``easy_install.exe`` program in - your Python ``Scripts`` subdirectory. Be sure to add this directory to your - ``PATH`` environment variable, if you haven't already done so. - - - RPM-Based Systems - ================= - - Install setuptools using the provided source RPM. The included ``.spec`` file - assumes you are installing using the default ``python`` executable, and is not - specific to a particular Python version. The ``easy_install`` executable will - be installed to a system ``bin`` directory such as ``/usr/bin``. - - If you wish to install to a location other than the default Python - installation's default ``site-packages`` directory (and ``$prefix/bin`` for - scripts), please use the ``.egg``-based installation approach described in the - following section. - - - Cygwin, Mac OS X, Linux, Other - ============================== - - 1. Download the appropriate egg for your version of Python (e.g. - ``setuptools-0.6c9-py2.4.egg``). Do NOT rename it. - - 2. Run it as if it were a shell script, e.g. ``sh setuptools-0.6c9-py2.4.egg``. - Setuptools will install itself using the matching version of Python (e.g. - ``python2.4``), and will place the ``easy_install`` executable in the - default location for installing Python scripts (as determined by the - standard distutils configuration files, or by the Python installation). - - If you want to install setuptools to somewhere other than ``site-packages`` or - your default distutils installation locations for libraries and scripts, you - may include EasyInstall command-line options such as ``--prefix``, - ``--install-dir``, and so on, following the ``.egg`` filename on the same - command line. For example:: - - sh setuptools-0.6c9-py2.4.egg --prefix=~ - - You can use ``--help`` to get a full options list, but we recommend consulting - the `EasyInstall manual`_ for detailed instructions, especially `the section - on custom installation locations`_. - - .. _EasyInstall manual: http://peak.telecommunity.com/DevCenter/EasyInstall - .. _the section on custom installation locations: http://peak.telecommunity.com/DevCenter/EasyInstall#custom-installation-locations - - - Cygwin Note - ----------- - - If you are trying to install setuptools for the **Windows** version of Python - (as opposed to the Cygwin version that lives in ``/usr/bin``), you must make - sure that an appropriate executable (``python2.3``, ``python2.4``, or - ``python2.5``) is on your **Cygwin** ``PATH`` when invoking the egg. For - example, doing the following at a Cygwin bash prompt will install setuptools - for the **Windows** Python found at ``C:\\Python24``:: - - ln -s /cygdrive/c/Python24/python.exe python2.4 - PATH=.:$PATH sh setuptools-0.6c9-py2.4.egg - rm python2.4 - - - Downloads - ========= - - All setuptools downloads can be found at `the project's home page in the Python - Package Index`_. Scroll to the very bottom of the page to find the links. - - .. _the project's home page in the Python Package Index: http://pypi.python.org/pypi/setuptools#files - - In addition to the PyPI downloads, the development version of ``setuptools`` - is available from the `Python SVN sandbox`_, and in-development versions of the - `0.6 branch`_ are available as well. - - .. _0.6 branch: http://svn.python.org/projects/sandbox/branches/setuptools-0.6/#egg=setuptools-dev06 - - .. _Python SVN sandbox: http://svn.python.org/projects/sandbox/trunk/setuptools/#egg=setuptools-dev - - -------------------------------- - Using Setuptools and EasyInstall - -------------------------------- - - Here are some of the available manuals, tutorials, and other resources for - learning about Setuptools, Python Eggs, and EasyInstall: - - * `The EasyInstall user's guide and reference manual`_ - * `The setuptools Developer's Guide`_ - * `The pkg_resources API reference`_ - * `Package Compatibility Notes`_ (user-maintained) - * `The Internal Structure of Python Eggs`_ - - Questions, comments, and bug reports should be directed to the `distutils-sig - mailing list`_. If you have written (or know of) any tutorials, documentation, - plug-ins, or other resources for setuptools users, please let us know about - them there, so this reference list can be updated. If you have working, - *tested* patches to correct problems or add features, you may submit them to - the `setuptools bug tracker`_. - - .. _setuptools bug tracker: http://bugs.python.org/setuptools/ - .. _Package Compatibility Notes: http://peak.telecommunity.com/DevCenter/PackageNotes - .. _The Internal Structure of Python Eggs: http://peak.telecommunity.com/DevCenter/EggFormats - .. _The setuptools Developer's Guide: http://peak.telecommunity.com/DevCenter/setuptools - .. _The pkg_resources API reference: http://peak.telecommunity.com/DevCenter/PkgResources - .. _The EasyInstall user's guide and reference manual: http://peak.telecommunity.com/DevCenter/EasyInstall - .. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/ - - - ------- - Credits - ------- - - * The original design for the ``.egg`` format and the ``pkg_resources`` API was - co-created by Phillip Eby and Bob Ippolito. Bob also implemented the first - version of ``pkg_resources``, and supplied the OS X operating system version - compatibility algorithm. - - * Ian Bicking implemented many early "creature comfort" features of - easy_install, including support for downloading via Sourceforge and - Subversion repositories. Ian's comments on the Web-SIG about WSGI - application deployment also inspired the concept of "entry points" in eggs, - and he has given talks at PyCon and elsewhere to inform and educate the - community about eggs and setuptools. - - * Jim Fulton contributed time and effort to build automated tests of various - aspects of ``easy_install``, and supplied the doctests for the command-line - ``.exe`` wrappers on Windows. - - * Phillip J. Eby is the principal author and maintainer of setuptools, and - first proposed the idea of an importable binary distribution format for - Python application plug-ins. - - * Significant parts of the implementation of setuptools were funded by the Open - Source Applications Foundation, to provide a plug-in infrastructure for the - Chandler PIM application. In addition, many OSAF staffers (such as Mike - "Code Bear" Taylor) contributed their time and stress as guinea pigs for the - use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!) - - .. _files: - -Keywords: CPAN PyPI distutils eggs package management -Platform: UNKNOWN -Classifier: Development Status :: 3 - Alpha -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Python Software Foundation License -Classifier: License :: OSI Approved :: Zope Public License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: System :: Archiving :: Packaging -Classifier: Topic :: System :: Systems Administration -Classifier: Topic :: Utilities diff --git a/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/PKG-INFO b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/PKG-INFO new file mode 100644 index 0000000..c9df489 --- /dev/null +++ b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/PKG-INFO @@ -0,0 +1,100 @@ +Metadata-Version: 1.0 +Name: setuptools +Version: 0.6c16dev3 +Summary: Download, build, install, upgrade, and uninstall Python packages -- easily! (zetuptoolz fork) +Home-page: http://pypi.python.org/pypi/setuptools +Author: Phillip J. Eby +Author-email: distutils-sig@python.org +License: PSF or ZPL +Description: ====================== + This is not Setuptools + ====================== + + This is the ``zetuptoolz`` fork of setuptools, which is used to install + `Tahoe-LAFS`_. It has a `darcs source repository`_ and `issue tracker`_. + + For a list of differences between this fork and setuptools, see zetuptoolz.txt. + + Note that, to avoid interfering with any setuptools installation, zetuptoolz + does not install a script called ``easy_install``. There is an ``easy_install_z`` + script, but that is intended only for developers to test differences between + setuptools and zetuptoolz. + + .. _Tahoe-LAFS: http://tahoe-lafs.org/ + .. _darcs source repository: http://tahoe-lafs.org/source/zetuptoolz/trunk + .. _issue tracker: http://tahoe-lafs.org/trac/zetuptoolz + + + -------------------------------- + Using Setuptools and EasyInstall + -------------------------------- + + Here are some of the available manuals, tutorials, and other resources for + learning about Setuptools, Python Eggs, and EasyInstall: + + * `The EasyInstall user's guide and reference manual`_ + * `The setuptools Developer's Guide`_ + * `The pkg_resources API reference`_ + * `Package Compatibility Notes`_ (user-maintained) + * `The Internal Structure of Python Eggs`_ + + Questions, comments, and bug reports should be directed to the `distutils-sig + mailing list`_. If you have written (or know of) any tutorials, documentation, + plug-ins, or other resources for setuptools users, please let us know about + them there, so this reference list can be updated. If you have working, + *tested* patches to correct problems or add features, you may submit them to + the `setuptools bug tracker`_. + + .. _setuptools bug tracker: http://bugs.python.org/setuptools/ + .. _Package Compatibility Notes: http://peak.telecommunity.com/DevCenter/PackageNotes + .. _The Internal Structure of Python Eggs: http://peak.telecommunity.com/DevCenter/EggFormats + .. _The setuptools Developer's Guide: http://peak.telecommunity.com/DevCenter/setuptools + .. _The pkg_resources API reference: http://peak.telecommunity.com/DevCenter/PkgResources + .. _The EasyInstall user's guide and reference manual: http://peak.telecommunity.com/DevCenter/EasyInstall + .. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/ + + + ------- + Credits + ------- + + * The original design for the ``.egg`` format and the ``pkg_resources`` API was + co-created by Phillip Eby and Bob Ippolito. Bob also implemented the first + version of ``pkg_resources``, and supplied the OS X operating system version + compatibility algorithm. + + * Ian Bicking implemented many early "creature comfort" features of + easy_install, including support for downloading via Sourceforge and + Subversion repositories. Ian's comments on the Web-SIG about WSGI + application deployment also inspired the concept of "entry points" in eggs, + and he has given talks at PyCon and elsewhere to inform and educate the + community about eggs and setuptools. + + * Jim Fulton contributed time and effort to build automated tests of various + aspects of ``easy_install``, and supplied the doctests for the command-line + ``.exe`` wrappers on Windows. + + * Phillip J. Eby is the principal author and maintainer of setuptools, and + first proposed the idea of an importable binary distribution format for + Python application plug-ins. + + * Significant parts of the implementation of setuptools were funded by the Open + Source Applications Foundation, to provide a plug-in infrastructure for the + Chandler PIM application. In addition, many OSAF staffers (such as Mike + "Code Bear" Taylor) contributed their time and stress as guinea pigs for the + use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!) + + .. _files: + +Keywords: CPAN PyPI distutils eggs package management +Platform: UNKNOWN +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: License :: OSI Approved :: Zope Public License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: System :: Archiving :: Packaging +Classifier: Topic :: System :: Systems Administration +Classifier: Topic :: Utilities diff --git a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/SOURCES.txt b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/SOURCES.txt similarity index 97% rename from zfec/setuptools-0.6c15dev.egg/EGG-INFO/SOURCES.txt rename to zfec/setuptools-0.6c16dev3.egg/EGG-INFO/SOURCES.txt index 74f5d2b..07bd4ff 100644 --- a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/SOURCES.txt +++ b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/SOURCES.txt @@ -34,6 +34,7 @@ setuptools/command/install_scripts.py setuptools/command/register.py setuptools/command/rotate.py setuptools/command/saveopts.py +setuptools/command/scriptsetup.py setuptools/command/sdist.py setuptools/command/setopt.py setuptools/command/test.py diff --git a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/dependency_links.txt b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/dependency_links.txt similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/EGG-INFO/dependency_links.txt rename to zfec/setuptools-0.6c16dev3.egg/EGG-INFO/dependency_links.txt diff --git a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/entry_points.txt b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/entry_points.txt similarity index 93% rename from zfec/setuptools-0.6c15dev.egg/EGG-INFO/entry_points.txt rename to zfec/setuptools-0.6c16dev3.egg/EGG-INFO/entry_points.txt index 07d362c..0a31ba0 100644 --- a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/entry_points.txt +++ b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/entry_points.txt @@ -4,6 +4,7 @@ rotate = setuptools.command.rotate:rotate develop = setuptools.command.develop:develop setopt = setuptools.command.setopt:setopt build_py = setuptools.command.build_py:build_py +scriptsetup = setuptools.command.scriptsetup:scriptsetup saveopts = setuptools.command.saveopts:saveopts egg_info = setuptools.command.egg_info:egg_info register = setuptools.command.register:register @@ -30,8 +31,8 @@ entry_points.txt = setuptools.command.egg_info:write_entries depends.txt = setuptools.command.egg_info:warn_depends_obsolete [console_scripts] -easy_install = setuptools.command.easy_install:main -easy_install-2.5 = setuptools.command.easy_install:main +easy_install_z-2.6 = setuptools.command.easy_install:main +easy_install_z = setuptools.command.easy_install:main [setuptools.file_finders] svn_cvs = setuptools.command.sdist:_default_revctrl diff --git a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/top_level.txt b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/top_level.txt similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/EGG-INFO/top_level.txt rename to zfec/setuptools-0.6c16dev3.egg/EGG-INFO/top_level.txt diff --git a/zfec/setuptools-0.6c15dev.egg/EGG-INFO/zip-safe b/zfec/setuptools-0.6c16dev3.egg/EGG-INFO/zip-safe similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/EGG-INFO/zip-safe rename to zfec/setuptools-0.6c16dev3.egg/EGG-INFO/zip-safe diff --git a/zfec/setuptools-0.6c15dev.egg/easy_install.py b/zfec/setuptools-0.6c16dev3.egg/easy_install.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/easy_install.py rename to zfec/setuptools-0.6c16dev3.egg/easy_install.py diff --git a/zfec/setuptools-0.6c15dev.egg/pkg_resources.py b/zfec/setuptools-0.6c16dev3.egg/pkg_resources.py similarity index 98% rename from zfec/setuptools-0.6c15dev.egg/pkg_resources.py rename to zfec/setuptools-0.6c16dev3.egg/pkg_resources.py index 83e346b..00d9722 100644 --- a/zfec/setuptools-0.6c15dev.egg/pkg_resources.py +++ b/zfec/setuptools-0.6c16dev3.egg/pkg_resources.py @@ -13,7 +13,7 @@ The package resource API is designed to work with normal filesystem packages, method. """ -import sys, os, zipimport, time, re, imp, new, pkgutil # XXX +import sys, os, zipimport, time, re, imp try: frozenset @@ -524,6 +524,16 @@ class WorkingSet(object): if dist.key in self.by_key: return # ignore hidden distros + # If we have a __requires__ then we can already tell if this + # dist is unsatisfactory, in which case we won't add it. + if __requires__ is not None: + for thisreqstr in __requires__: + for thisreq in parse_requirements(thisreqstr): + if thisreq.key == dist.key: + if dist not in thisreq: + return + + self.by_key[dist.key] = dist if dist.key not in keys: keys.append(dist.key) @@ -783,19 +793,33 @@ class Environment(object): This calls the ``find(req)`` method of the `working_set` to see if a suitable distribution is already active. (This may raise ``VersionConflict`` if an unsuitable version of the project is already - active in the specified `working_set`.) If a suitable distribution - isn't active, this method returns the newest distribution in the - environment that meets the ``Requirement`` in `req`. If no suitable - distribution is found, and `installer` is supplied, then the result of - calling the environment's ``obtain(req, installer)`` method will be - returned. + active in the specified `working_set`.) + + If a suitable distribution isn't active, this method returns the + newest platform-dependent distribution in the environment that meets + the ``Requirement`` in `req`. If no suitable platform-dependent + distribution is found, then the newest platform-independent + distribution that meets the requirement is returned. (A platform- + dependent distribution will typically have code compiled or + specialized for that platform.) + + Otherwise, if `installer` is supplied, then the result of calling the + environment's ``obtain(req, installer)`` method will be returned. """ dist = working_set.find(req) if dist is not None: return dist + + # first try to find a platform-dependent dist + for dist in self[req.key]: + if dist in req and dist.platform is not None: + return dist + + # then try any other dist for dist in self[req.key]: if dist in req: return dist + return self.obtain(req, installer) # try and download/install def obtain(self, requirement, installer=None): @@ -2591,6 +2615,7 @@ def _initialize(g): _initialize(globals()) # Prepare the master working set and make the ``require()`` API available +__requires__ = None _declare_state('object', working_set = WorkingSet()) try: # Does the main program list any requirements? @@ -2601,12 +2626,15 @@ else: # Yes: ensure the requirements are met, by prefixing sys.path if necessary try: working_set.require(__requires__) - except VersionConflict: # try it without defaults already on sys.path + except (VersionConflict, DistributionNotFound): # try it without defaults already on sys.path working_set = WorkingSet([]) # by starting with an empty path - for dist in working_set.resolve( - parse_requirements(__requires__), Environment() - ): - working_set.add(dist) + try: + for dist in working_set.resolve( + parse_requirements(__requires__), Environment() + ): + working_set.add(dist) + except DistributionNotFound: + pass for entry in sys.path: # add any missing entries from sys.path if entry not in working_set.entries: working_set.add_entry(entry) diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/__init__.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/__init__.py similarity index 89% rename from zfec/setuptools-0.6c15dev.egg/setuptools/__init__.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/__init__.py index c8e461f..d57448f 100644 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/__init__.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/__init__.py @@ -6,8 +6,10 @@ from setuptools.depends import Require from distutils.core import Command as _Command from distutils.util import convert_path import os.path +import os +import sys -__version__ = '0.6c15' +__version__ = '0.6c16dev3' __all__ = [ 'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require', 'find_packages' @@ -80,3 +82,9 @@ import distutils.filelist distutils.filelist.findall = findall # fix findall bug in distutils. +# sys.dont_write_bytecode was introduced in Python 2.6. +if ((hasattr(sys, "dont_write_bytecode") and sys.dont_write_bytecode) or + (not hasattr(sys, "dont_write_bytecode") and os.environ.get("PYTHONDONTWRITEBYTECODE"))): + _dont_write_bytecode = True +else: + _dont_write_bytecode = False diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/archive_util.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/archive_util.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/archive_util.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/archive_util.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/cli.exe b/zfec/setuptools-0.6c16dev3.egg/setuptools/cli.exe similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/cli.exe rename to zfec/setuptools-0.6c16dev3.egg/setuptools/cli.exe diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/__init__.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/__init__.py similarity index 92% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/__init__.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/__init__.py index dfed693..80969f3 100644 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/command/__init__.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/__init__.py @@ -2,7 +2,7 @@ __all__ = [ 'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop', 'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts', 'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts', - 'register', 'bdist_wininst', + 'register', 'bdist_wininst', 'scriptsetup', ] import sys diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/alias.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/alias.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/alias.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/alias.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/bdist_egg.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/bdist_egg.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/bdist_egg.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/bdist_egg.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/bdist_rpm.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/bdist_rpm.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/bdist_rpm.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/bdist_rpm.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/bdist_wininst.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/bdist_wininst.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/bdist_wininst.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/bdist_wininst.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/build_ext.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/build_ext.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/build_ext.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/build_ext.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/build_py.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/build_py.py similarity index 97% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/build_py.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/build_py.py index aadbc55..c5e3d7f 100644 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/command/build_py.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/build_py.py @@ -19,6 +19,12 @@ class build_py(_build_py): if 'data_files' in self.__dict__: del self.__dict__['data_files'] def run(self): + self.old_run() + if sys.platform == "win32": + from setuptools.command.scriptsetup import do_scriptsetup + do_scriptsetup() + + def old_run(self): """Build modules, packages, and copy data files to build directory""" if not self.py_modules and not self.packages: return diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/develop.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/develop.py similarity index 96% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/develop.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/develop.py index 429ad8e..303f488 100644 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/command/develop.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/develop.py @@ -20,6 +20,12 @@ class develop(easy_install): command_consumes_arguments = False # override base def run(self): + self.old_run() + if sys.platform == "win32": + from setuptools.command.scriptsetup import do_scriptsetup + do_scriptsetup() + + def old_run(self): if self.uninstall: self.multi_version = True self.uninstall_link() @@ -34,11 +40,6 @@ class develop(easy_install): self.setup_path = None self.always_copy_from = '.' # always copy eggs installed in curdir - - - - - def finalize_options(self): ei = self.get_finalized_command("egg_info") if ei.broken_egg_info: diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/easy_install.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/easy_install.py similarity index 93% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/easy_install.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/easy_install.py index b2948d2..8ac42b4 100755 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/command/easy_install.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/easy_install.py @@ -11,7 +11,8 @@ __ http://peak.telecommunity.com/DevCenter/EasyInstall """ import sys, os.path, zipimport, shutil, tempfile, zipfile, re, stat, random from glob import glob -from setuptools import Command +from setuptools import Command, _dont_write_bytecode +from setuptools import __version__ as setuptools_version from setuptools.sandbox import run_setup from distutils import log, dir_util from distutils.sysconfig import get_python_lib @@ -573,7 +574,7 @@ Please make the appropriate changes for your system and try again. def install_wrapper_scripts(self, dist): if not self.exclude_scripts: - for args in get_script_args(dist): + for args in get_script_args(dist, script_dir=self.script_dir): self.write_script(*args) @@ -583,10 +584,11 @@ Please make the appropriate changes for your system and try again. spec = str(dist.as_requirement()) is_script = is_python_script(script_text, script_name) + requires = [spec] + [str(r) for r in dist.requires()] if is_script and dev_path: script_text = get_script_header(script_text) + ( "# EASY-INSTALL-DEV-SCRIPT: %(spec)r,%(script_name)r\n" - "__requires__ = %(spec)r\n" + "__requires__ = %(requires)r\n" "from pkg_resources import require; require(%(spec)r)\n" "del require\n" "__file__ = %(dev_path)r\n" @@ -595,7 +597,7 @@ Please make the appropriate changes for your system and try again. elif is_script: script_text = get_script_header(script_text) + ( "# EASY-INSTALL-SCRIPT: %(spec)r,%(script_name)r\n" - "__requires__ = %(spec)r\n" + "__requires__ = %(requires)r\n" "import pkg_resources\n" "pkg_resources.run_script(%(spec)r, %(script_name)r)\n" ) % locals() @@ -1007,6 +1009,9 @@ See the setuptools documentation for the "develop" command for more info. chmod(f, mode) def byte_compile(self, to_compile): + if _dont_write_bytecode: + self.warn('byte-compiling is disabled, skipping.') + return from distutils.util import byte_compile try: # try to make the byte compile messages quieter @@ -1086,10 +1091,14 @@ these changes you will not be able to run the installed code. log.debug("Checking existing site.py in %s", self.install_dir) current = open(sitepy,'rb').read() if not current.startswith('def __boot():'): - raise DistutilsError( - "%s is not a setuptools-generated site.py; please" - " remove it." % sitepy - ) + print ("\n" + "***********************************************************************\n" + "Warning: %s is not a\n" + "setuptools-generated site.py. It will not be overwritten.\n" + "***********************************************************************\n" + ) % (sitepy,) + self.sitepy_installed = True + return if current != source: log.info("Creating %s", sitepy) @@ -1564,86 +1573,86 @@ def fix_jython_executable(executable, options): return executable -def get_script_args(dist, executable=sys_executable, wininst=False): +def get_script_args(dist, executable=sys_executable, wininst=False, script_dir=None): """Yield write_script() argument tuples for a distribution's entrypoints""" spec = str(dist.as_requirement()) + requires = [spec] + [str(r) for r in dist.requires()] header = get_script_header("", executable, wininst) + generated_by = "# generated by zetuptoolz %s" % (setuptools_version,) + for group in 'console_scripts', 'gui_scripts': - for name,ep in dist.get_entry_map(group).items(): - script_text = ( + for name, ep in dist.get_entry_map(group).items(): + script_head, script_tail = (( "# EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r\n" - "__requires__ = %(spec)r\n" + "%(generated_by)s\n" + "__requires__ = %(requires)r\n" "import sys\n" "from pkg_resources import load_entry_point\n" "\n" + ) % locals(), ( "sys.exit(\n" " load_entry_point(%(spec)r, %(group)r, %(name)r)()\n" ")\n" - ) % locals() - if sys.platform=='win32' or wininst: - # On Windows/wininst, add a .py extension and an .exe launcher + ) % locals()) + + if wininst or sys.platform == "win32": + # On Windows/wininst, add a .py[w] extension. Delete any existing + # -script.py[w], .exe, and .exe.manifest. if group=='gui_scripts': - ext, launcher = '-script.pyw', 'gui.exe' - old = ['.pyw'] - new_header = re.sub('(?i)python.exe','pythonw.exe',header) + ext = '.pyw' + old = ['','.pyw','-script.pyw','.exe','.exe.manifest'] + which_python = 'pythonw.exe' + new_header = re.sub('(?i)python.exe', which_python, header) else: - ext, launcher = '-script.py', 'cli.exe' - old = ['.py','.pyc','.pyo'] - new_header = re.sub('(?i)pythonw.exe','python.exe',header) - - if os.path.exists(new_header[2:-1]) or sys.platform!='win32': + ext = '.pyscript' + old = ['','.pyscript','.py','.pyc','.pyo','-script.py','.exe','.exe.manifest'] + which_python = 'python.exe' + new_header = re.sub('(?i)pythonw.exe', which_python, header) + + len_ext = len(ext) + script_head += ( + "# If this script doesn't work for you, make sure that the %(ext)s\n" + "# extension is included in the PATHEXT environment variable, and is\n" + "# associated with %(which_python)s in the registry.\n" + "\n" + "if sys.argv[0].endswith(%(ext)r):\n" + " sys.argv[0] = sys.argv[0][:-%(len_ext)r]\n" + "\n" + ) % locals() + + if os.path.exists(new_header[2:-1]) or sys.platform != 'win32': hdr = new_header else: hdr = header - yield (name+ext, hdr+script_text, 't', [name+x for x in old]) - yield ( - name+'.exe', resource_string('setuptools', launcher), - 'b') # write in binary mode - yield (name+'.exe.manifest', _launcher_manifest % (name,), 't') + yield (name+ext, hdr + script_head + script_tail, 't', [name+x for x in old]) + + # Also write a shell script that runs the .pyscript, for cygwin. + # + # We can't use a Python script, because the Python interpreter that we want + # to use is the native Windows one, which won't understand a cygwin path. + # Windows paths written with forward slashes are universally understood + # (by native Python, cygwin Python, and bash), so we'll use 'cygpath -m' to + # get the directory from which the script was run in that form. This makes + # the cygwin script and .pyscript position-independent, provided they are + # in the same directory. + + def quote_path(s): + return "\\'".join("'" + p.replace('\\', '/') + "'" for p in s.split("'")) + + pyscript = quote_path("/"+name+ext) + python_path = quote_path(sys.executable) + shell_script_text = ( + '#!/bin/sh\n' + '%(generated_by)s\n' + '\n' + 'ScriptDir=`cygpath -m "$0/.."`\n' + '%(python_path)s "${ScriptDir}"%(pyscript)s "$@"\n' + ) % locals() + yield (name, shell_script_text, 'b') else: # On other platforms, we assume the right thing to do is to # just write the stub with no extension. - yield (name, header+script_text) - -_launcher_manifest = """ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> - <assemblyIdentity version="1.0.0.0" - processorArchitecture="X86" - name="%s.exe" - type="win32"/> - - <!-- Identify the application security requirements. --> - <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> - <security> - <requestedPrivileges> - <requestedExecutionLevel level="asInvoker" uiAccess="false"/> - </requestedPrivileges> - </security> - </trustInfo> -</assembly>""" - - - - - - - - - - - - - - - - - - - - - - + yield (name, header + script_head + script_tail) def rmtree(path, ignore_errors=False, onerror=auto_chmod): diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/egg_info.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/egg_info.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/egg_info.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/egg_info.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/install.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/install.py similarity index 95% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/install.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/install.py index a150c43..adaaeca 100644 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/command/install.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/install.py @@ -49,8 +49,13 @@ class install(_install): self.path_file = None self.extra_dirs = '' - def run(self): + self.old_run() + if sys.platform == "win32": + from setuptools.command.scriptsetup import do_scriptsetup + do_scriptsetup() + + def old_run(self): # Explicit request for old-style install? Just do it if self.old_and_unmanageable or self.single_version_externally_managed: return _install.run(self) @@ -75,11 +80,6 @@ class install(_install): else: self.do_egg_install() - - - - - def do_egg_install(self): easy_install = self.distribution.get_command_class('easy_install') diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/install_egg_info.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/install_egg_info.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/install_egg_info.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/install_egg_info.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/install_lib.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/install_lib.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/install_lib.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/install_lib.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/install_scripts.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/install_scripts.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/install_scripts.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/install_scripts.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/register.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/register.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/register.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/register.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/rotate.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/rotate.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/rotate.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/rotate.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/saveopts.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/saveopts.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/saveopts.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/saveopts.py diff --git a/zfec/setuptools-0.6c16dev3.egg/setuptools/command/scriptsetup.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/scriptsetup.py new file mode 100644 index 0000000..db68c07 --- /dev/null +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/scriptsetup.py @@ -0,0 +1,284 @@ +from distutils.errors import DistutilsSetupError +from setuptools import Command +import sys + +class scriptsetup(Command): + action = (sys.platform == "win32" + and "set up .pyscript association and PATHEXT variable to run scripts" + or "this does nothing on non-Windows platforms") + + user_options = [ + ('allusers', 'a', + 'make changes for all users of this Windows installation (requires Administrator privileges)'), + ] + boolean_options = ['allusers'] + + def initialize_options(self): + self.allusers = False + + def finalize_options(self): + pass + + def run(self): + if sys.platform != "win32": + print "\n'scriptsetup' isn't needed on non-Windows platforms." + else: + do_scriptsetup(self.allusers) + + +def do_scriptsetup(allusers=False): + print "\nSetting up environment to run scripts for %s..." % (allusers and "all users" or "the current user") + + from _winreg import HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT, \ + REG_SZ, REG_EXPAND_SZ, KEY_QUERY_VALUE, KEY_SET_VALUE, \ + OpenKey, CreateKey, QueryValueEx, SetValueEx, FlushKey, CloseKey + + USER_ENV = "Environment" + try: + user_env = OpenKey(HKEY_CURRENT_USER, USER_ENV, 0, KEY_QUERY_VALUE) + except WindowsError, e: + raise DistutilsSetupError("I could not read the user environment from the registry.\n%r" % (e,)) + + SYSTEM_ENV = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" + try: + system_env = OpenKey(HKEY_LOCAL_MACHINE, SYSTEM_ENV, 0, KEY_QUERY_VALUE) + except WindowsError, e: + raise DistutilsSetupError("I could not read the system environment from the registry.\n%r" % (e,)) + + + # HKEY_CLASSES_ROOT is a merged view that would only confuse us. + # <http://technet.microsoft.com/en-us/library/cc739822(WS.10).aspx> + + USER_CLASSES = "SOFTWARE\\Classes" + try: + user_classes = OpenKey(HKEY_CURRENT_USER, USER_CLASSES, 0, KEY_QUERY_VALUE) + except WindowsError, e: + raise DistutilsSetupError("I could not read the user filetype associations from the registry.\n%r" % (e,)) + + SYSTEM_CLASSES = "SOFTWARE\\Classes" + try: + system_classes = OpenKey(HKEY_LOCAL_MACHINE, SYSTEM_CLASSES, 0, KEY_QUERY_VALUE) + except WindowsError, e: + raise DistutilsSetupError("I could not read the system filetype associations from the registry.\n%r" % (e,)) + + + def query(key, subkey, what): + try: + (value, type) = QueryValueEx(key, subkey) + except WindowsError, e: + if e.winerror == 2: # not found + return None + raise DistutilsSetupError("I could not read %s from the registry.\n%r" % (what, e)) + + # It does not matter that we don't expand environment strings, in fact it's better not to. + + if type != REG_SZ and type != REG_EXPAND_SZ: + raise DistutilsSetupError("I expected the registry entry for %s to have a string type (REG_SZ or REG_EXPAND_SZ), " + "and was flummoxed by it having type code %r." % (what, type)) + return (value, type) + + + def open_and_query(key, path, subkey, what): + try: + read_key = OpenKey(key, path, 0, KEY_QUERY_VALUE) + except WindowsError, e: + if e.winerror == 2: # not found + return None + raise DistutilsSetupError("I could not read %s from the registry because I could not open " + "the parent key.\n%r" % (what, e)) + + try: + return query(read_key, subkey, what) + finally: + CloseKey(read_key) + + + def update(key_name_path, subkey, desired_value, desired_type, goal, what): + (key, name, path) = key_name_path + + (old_value, old_type) = open_and_query(key, path, subkey, what) or (None, None) + if (old_value, old_type) == (desired_value, desired_type): + print "Already done: %s." % (goal,) + return False + + try: + update_key = OpenKey(key, path, 0, KEY_SET_VALUE|KEY_QUERY_VALUE) + except WindowsError, e: + if e.winerror != 2: + raise DistutilsSetupError("I tried to %s, but was not successful because I could not open " + "the registry key %s\\%s for writing.\n%r" + % (goal, name, path, e)) + try: + update_key = CreateKey(key, path) + except WindowsError, e: + raise DistutilsSetupError("I tried to %s, but was not successful because the registry key %s\\%s " + "did not exist, and I was unable to create it.\n%r" + % (goal, name, path, e)) + + (new_value, new_type) = (None, None) + try: + SetValueEx(update_key, subkey, 0, desired_type, desired_value) + except WindowsError, e: + raise DistutilsSetupError("I tried to %s, but was not able to set the subkey %r under %s\\%s to be %r.\n%r" + % (goal, subkey, name, path, desired_value)) + else: + (new_value, new_type) = query(update_key, subkey, what) or (None, None) + finally: + FlushKey(update_key) + CloseKey(update_key) + + if (new_value, new_type) != (desired_value, desired_type): + raise DistutilsSetupError("I tried to %s by setting the subkey %r under %s\\%s to be %r, " + "and the call to SetValueEx succeeded, but the value ended up as " + "%r instead (it was previously %r). Maybe the update was unexpectedly virtualized?" + % (goal, subkey, name, path, desired_value, new_value, old_value)) + + print "Done: %s." % (goal,) + return True + + + # Maintenance hazard: 'add_to_environment' and 'associate' use very similar, but not identical logic. + + def add_to_environment(varname, addition, change_allusers): + changed = False + what = "the %s environment variable %s" % (change_allusers and "system" or "user", varname) + goal = "add %s to %s" % (addition, what) + + system_valueandtype = query(system_env, varname, "the system environment variable %s" % (varname,)) + user_valueandtype = query(user_env, varname, "the user environment variable %s" % (varname,)) + + if change_allusers: + (value, type) = system_valueandtype or (u'', REG_SZ) + key_name_path = (HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", SYSTEM_ENV) + else: + (value, type) = user_valueandtype or system_valueandtype or (u'', REG_SZ) + key_name_path = (HKEY_CURRENT_USER, "HKEY_CURRENT_USER", USER_ENV) + + if addition.lower() in value.lower().split(u';'): + print "Already done: %s." % (goal,) + else: + changed |= update(key_name_path, varname, value + u';' + addition, type, goal, what) + + if change_allusers: + # Also change any overriding environment entry for the current user. + (user_value, user_type) = user_valueandtype or (u'', REG_SZ) + split_value = user_value.lower().split(u';') + + if not (addition.lower() in split_value or u'%'+varname.lower()+u'%' in split_value): + now_what = "the overriding user environment variable %s" % (varname,) + changed |= update((HKEY_CURRENT_USER, "HKEY_CURRENT_USER", USER_ENV), + varname, user_value + u';' + addition, user_type, + "add %s to %s" % (addition, now_what), now_what) + + return changed + + + def associate(ext, target, change_allusers): + changed = False + what = "the %s association for %s" % (change_allusers and "system" or "user", ext) + goal = "associate the filetype %s with %s for %s" % (ext, target, change_allusers and "all users" or "the current user") + + try: + if change_allusers: + target_key = OpenKey(HKEY_LOCAL_MACHINE, "%s\\%s" % (SYSTEM_CLASSES, target), 0, KEY_QUERY_VALUE) + else: + target_key = OpenKey(HKEY_CLASSES_ROOT, target, 0, KEY_QUERY_VALUE) + except WindowsError, e: + raise DistutilsSetupError("I was going to %s, but that won't work because the %s class does not exist in the registry, " + "as far as I can tell.\n%r" % (goal, target, e)) + CloseKey(target_key) + + system_key_name_path = (HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", "%s\\%s" % (SYSTEM_CLASSES, ext)) + user_key_name_path = (HKEY_CURRENT_USER, "HKEY_CURRENT_USER", "%s\\%s" % (USER_CLASSES, ext)) + + system_valueandtype = open_and_query(system_classes, ext, "", "the system association for %s" % (ext,)) + user_valueandtype = open_and_query(user_classes, ext, "", "the user association for %s" % (ext,)) + + if change_allusers: + (value, type) = system_valueandtype or (u'', REG_SZ) + key_name_path = system_key_name_path + else: + (value, type) = user_valueandtype or system_valueandtype or (u'', REG_SZ) + key_name_path = user_key_name_path + + if value == target: + print "Already done: %s." % (goal,) + else: + changed |= update(key_name_path, "", unicode(target), REG_SZ, goal, what) + + if change_allusers: + # Also change any overriding association for the current user. + (user_value, user_type) = user_valueandtype or (u'', REG_SZ) + + if user_value != target: + changed |= update(user_key_name_path, "", unicode(target), REG_SZ, + "associate the filetype %s with %s for the current user " \ + "(because the system association is overridden)" % (ext, target), + "the overriding user association for %s" % (ext,)) + + return changed + + + def broadcast_settingchange(change_allusers): + print "Broadcasting that the environment has changed, please wait..." + + # <http://support.microsoft.com/kb/104011/en-us> + # <http://msdn.microsoft.com/en-us/library/ms644952(VS.85).aspx> + # LRESULT WINAPI SendMessageTimeoutW(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, + # UINT fuFlags, UINT uTimeout, PDWORD_PTR lpdwResult); + + try: + from ctypes import WINFUNCTYPE, POINTER, windll, addressof, c_wchar_p + from ctypes.wintypes import LONG, HWND, UINT, WPARAM, LPARAM, DWORD + + SendMessageTimeout = WINFUNCTYPE(POINTER(LONG), HWND, UINT, WPARAM, LPARAM, UINT, UINT, POINTER(POINTER(DWORD))) \ + (("SendMessageTimeoutW", windll.user32)) + HWND_BROADCAST = 0xFFFF + WM_SETTINGCHANGE = 0x001A + SMTO_ABORTIFHUNG = 0x0002 + SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, change_allusers and 1 or 0, + addressof(c_wchar_p(u"Environment")), SMTO_ABORTIFHUNG, 5000, None); + except Exception, e: + print "Warning: %r" % (e,) + + + changed_assoc = associate(".pyscript", "Python.File", allusers) + + changed_env = False + try: + changed_env |= add_to_environment("PATHEXT", ".pyscript", allusers) + changed_env |= add_to_environment("PATHEXT", ".pyw", allusers) + finally: + CloseKey(user_env) + CloseKey(system_env) + + if changed_assoc or changed_env: + broadcast_settingchange(allusers) + + if changed_env: + # whether logout is needed seems to randomly differ between installations + # of XP, but it is not needed in Vista or later. + try: + import platform, re + need_logout = not re.search(r'^[6-9]|([1-9][0-9]+)\.', platform.version()) + except Exception, e: + e # hush pyflakes + need_logout = True + + if need_logout: + print """ +*********************************************************************** +Changes have been made to the persistent environment, but they may not +take effect in this Windows session. Running installed Python scripts +from a Command Prompt may only work after you have logged out and back +in again, or rebooted. +*********************************************************************** +""" + else: + print """ +*********************************************************************** +Changes have been made to the persistent environment, but not in this +Command Prompt. Running installed Python scripts will only work from +new Command Prompts opened from now on. +*********************************************************************** +""" diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/sdist.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/sdist.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/sdist.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/sdist.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/setopt.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/setopt.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/setopt.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/setopt.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/test.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/test.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/test.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/test.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/command/upload.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/command/upload.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/command/upload.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/command/upload.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/depends.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/depends.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/depends.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/depends.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/dist.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/dist.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/dist.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/dist.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/extension.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/extension.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/extension.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/extension.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/package_index.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/package_index.py similarity index 94% rename from zfec/setuptools-0.6c15dev.egg/setuptools/package_index.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/package_index.py index 32498d0..3d82d93 100644 --- a/zfec/setuptools-0.6c15dev.egg/setuptools/package_index.py +++ b/zfec/setuptools-0.6c16dev3.egg/setuptools/package_index.py @@ -19,6 +19,21 @@ PYPI_MD5 = re.compile( URL_SCHEME = re.compile('([-+.a-z0-9]{2,}):',re.I).match EXTENSIONS = ".tar.gz .tar.bz2 .tar .zip .tgz".split() +def is_local(url_or_fname): + """ Return True if url_or_fname is a "file:" url or if it is a schemaless thing (which is presumably a filename). """ + mo = URL_SCHEME(url_or_fname) + return not (mo and mo.group(1).lower()!='file') + +def url_or_fname_to_fname(url_or_fname): + """ Assert that is_local(url_or_fname) then if it is a "file:" url, parse it and run url2pathname on it, else just return it. """ + assert is_local(url_or_fname) + + mo = URL_SCHEME(url_or_fname) + if mo: + return urllib2.url2pathname(urlparse.urlparse(url)[2]) + else: + return url_or_fname + __all__ = [ 'PackageIndex', 'distros_for_url', 'parse_bdist_wininst', 'interpret_distro_name', @@ -436,18 +451,22 @@ class PackageIndex(Environment): def find(env, req): # Find a matching distribution; may be called more than once - for dist in env[req.key]: - - if dist.precedence==DEVELOP_DIST and not develop_ok: - if dist not in skipped: - self.warn("Skipping development or system egg: %s",dist) - skipped[dist] = 1 - continue - - if dist in req and (dist.precedence<=SOURCE_DIST or not source): - return dist - - + # first try to find a local dist + for allow_remote in (False, True): + # then try to find a platform-dependent dist + for allow_platform_independent in (False, True): + for dist in env[req.key]: + if dist.precedence==DEVELOP_DIST and not develop_ok: + if dist not in skipped: + self.warn("Skipping development or system egg: %s",dist) + skipped[dist] = 1 + continue + + if ((is_local(dist.location) or allow_remote) and + (dist in req) and + ((allow_platform_independent or dist.platform is not None) and + (dist.precedence<=SOURCE_DIST or not source))): + return dist if force_scan: self.prescan() diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/sandbox.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/sandbox.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/sandbox.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/sandbox.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/site-patch.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/site-patch.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/site-patch.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/site-patch.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/tests/__init__.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/tests/__init__.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/tests/__init__.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/tests/__init__.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/tests/test_packageindex.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/tests/test_packageindex.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/tests/test_packageindex.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/tests/test_packageindex.py diff --git a/zfec/setuptools-0.6c15dev.egg/setuptools/tests/test_resources.py b/zfec/setuptools-0.6c16dev3.egg/setuptools/tests/test_resources.py similarity index 100% rename from zfec/setuptools-0.6c15dev.egg/setuptools/tests/test_resources.py rename to zfec/setuptools-0.6c16dev3.egg/setuptools/tests/test_resources.py diff --git a/zfec/setuptools-0.6c16dev3.egg/zetuptoolz.txt b/zfec/setuptools-0.6c16dev3.egg/zetuptoolz.txt new file mode 100644 index 0000000..25c029d --- /dev/null +++ b/zfec/setuptools-0.6c16dev3.egg/zetuptoolz.txt @@ -0,0 +1,93 @@ +This is the "zetuptoolz" fork of setuptools. This version is forked from +setuptools trunk r80621 (which is current as of 2010-08-31), with the following +differences: + + + * Zooko's patches for the following bugs and features have been applied: + + <http://bugs.python.org/setuptools/issue17> + "easy_install will install a package that is already there" + + <http://bugs.python.org/setuptools/issue54> + "be more like distutils with regard to --prefix=" + + <http://bugs.python.org/setuptools/issue53> + "respect the PYTHONPATH" + (Note: this patch does not work as intended when site.py has been modified. + This will be fixed in a future version.) + + + * The following patch to setuptools introduced bugs, and has been reverted + in zetuptoolz: + + $ svn log -r 45514 + ------------------------------------------------------------------------ + r45514 | phillip.eby | 2006-04-18 04:03:16 +0100 (Tue, 18 Apr 2006) | 9 lines + + Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools + 0.7 trunk. (Sideport?) Setuptools 0.7 will install these in place of + the 2.3/2.4 versions (at least of pydoc and doctest) to let them work + properly with eggs. pkg_resources now depends on the 2.5 pkgutil, which + is included here as _pkgutil, to work around the fact that some system + packagers will install setuptools without overriding the stdlib modules. + But users who install their own setuptools will get them, and the system + packaged people probably don't need them. + ------------------------------------------------------------------------ + + + * If unpatched setuptools decides that it needs to change an existing site.py + file that appears not to have been written by it (because the file does not + start with "def __boot():"), it aborts the installation. + zetuptoolz leaves the file alone and outputs a warning, but continues with + the installation. + + + * The scripts written by zetuptoolz have the following extra line: + + # generated by zetuptoolz <version number> + + after the header. + + + * Windows-specific changes (native Python): + + Python distributions may have command-line or GUI scripts. + On Windows, setuptools creates an executable wrapper to run each + script. zetuptools uses a different approach that does not require + an .exe wrapper. It writes approximately the same script file that + is used on other platforms, but with a .pyscript extension. + It also writes a shell-script wrapper (without any extension) that + is only used when the command is run from a Cygwin shell. + + Some of the advantages of this approach are: + + * Unicode arguments are preserved (although the program will + need to use some Windows-specific code to get at them in + current versions of Python); + * it works correctly on 64-bit Windows; + * the zetuptoolz distribution need not contain either any + binary executables, or any C code that needs to be compiled. + + See setuptools\tests\win_script_wrapper.txt for further details. + + Installing or building any distribution on Windows will automatically + associate .pyscript with the native Python interpreter for the current + user. It will also add .pyscript and .pyw to the PATHEXT variable for + the current user, which is needed to allow scripts to be run without + typing any extension. + + There is an additional setup.py command that can be used to perform + these steps separately (which isn't normally needed, but might be + useful for debugging): + + python setup.py scriptsetup + + Adding the --allusers option, i.e. + + python setup.py scriptsetup --allusers + + will make the .pyscript association and changes to the PATHEXT variable + for all users of this Windows installation, except those that have it + overridden in their per-user environment. In this case setup.py must be + run with Administrator privileges, e.g. from a Command Prompt whose + shortcut has been set to run as Administrator. -- 2.45.2