aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2005-06-15 02:19:42 +0000
committerPJ Eby <distutils-sig@python.org>2005-06-15 02:19:42 +0000
commit5a9445cd57c60bb47451d8a88ec12a7a865013b7 (patch)
tree75dab611dd00efff933bad3fb579dadd37ddd7ef /setuptools
parent13c8739a6b43cb59ad0dfbd7751148d427af6170 (diff)
downloadexternal_python_setuptools-5a9445cd57c60bb47451d8a88ec12a7a865013b7.tar.gz
external_python_setuptools-5a9445cd57c60bb47451d8a88ec12a7a865013b7.tar.bz2
external_python_setuptools-5a9445cd57c60bb47451d8a88ec12a7a865013b7.zip
Add bootstrap installation support that "hitches a ride" on other packages
being installed via the normal distutils "setup.py install". Also, don't repeatedly download the setuptools egg if it's already in the target location. --HG-- branch : setuptools extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041069
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/__init__.py14
-rw-r--r--setuptools/dist.py24
2 files changed, 19 insertions, 19 deletions
diff --git a/setuptools/__init__.py b/setuptools/__init__.py
index 77fdbbbe..1a6bebff 100644
--- a/setuptools/__init__.py
+++ b/setuptools/__init__.py
@@ -15,6 +15,7 @@ __all__ = [
'find_packages'
]
+bootstrap_install_from = None
def find_packages(where='.'):
"""Return a list all Python packages found within directory 'where'
@@ -38,7 +39,6 @@ def find_packages(where='.'):
-
def setup(**attrs):
"""Do package setup
@@ -56,6 +56,12 @@ class Command(_Command):
command_consumes_arguments = False
+ def __init__(self, dist, **kw):
+ # Add support for keyword arguments
+ _Command.__init__(self,dist)
+ for k,v in kw.items():
+ setattr(self,k,v)
+
def reinitialize_command(self, command, reinit_subcommands=0, **kw):
cmd = _Command.reinitialize_command(self, command, reinit_subcommands)
for k,v in kw.items():
@@ -74,9 +80,3 @@ class Command(_Command):
-
-
-
-
-
-
diff --git a/setuptools/dist.py b/setuptools/dist.py
index a39b4a13..f46a02f8 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -8,6 +8,7 @@ from setuptools.command.install import install
from setuptools.command.install_lib import install_lib
from distutils.errors import DistutilsOptionError, DistutilsPlatformError
from distutils.errors import DistutilsSetupError
+import setuptools
sequence = tuple, list
@@ -38,7 +39,6 @@ sequence = tuple, list
-
class Distribution(_Distribution):
"""Distribution with support for features, tests, and package data
@@ -348,18 +348,18 @@ class Distribution(_Distribution):
return not not self.requires
+ def run_commands(self):
+ if setuptools.bootstrap_install_from and 'install' in self.commands:
+ # Bootstrap self-installation of setuptools
+ from easy_install import easy_install
+ cmd = easy_install(
+ self, args=[setuptools.bootstrap_install_from], zip_ok=1
+ )
+ cmd.ensure_finalized()
+ cmd.run()
+ setuptools.bootstrap_install_from = None
-
-
-
-
-
-
-
-
-
-
-
+ _Distribution.run_commands(self)