[Python-checkins] commit of r41483 - in sandbox/trunk/setuptools: . setuptools setuptools.egg-info setuptools/command

phillip.eby@python.org phillip.eby at python.org
Sat Nov 19 21:38:41 CET 2005


Author: phillip.eby
Date: Sat Nov 19 21:38:40 2005
New Revision: 41483
Modified:
 sandbox/trunk/setuptools/setup.py
 sandbox/trunk/setuptools/setuptools.egg-info/entry_points.txt
 sandbox/trunk/setuptools/setuptools.txt
 sandbox/trunk/setuptools/setuptools/command/test.py
 sandbox/trunk/setuptools/setuptools/dist.py
Log:
Added ``tests_require`` keyword to ``setup()``, so that e.g. packages
requiring ``nose`` to run unit tests can make this dependency optional
unless the ``test`` command is run.
Modified: sandbox/trunk/setuptools/setup.py
==============================================================================
--- sandbox/trunk/setuptools/setup.py	(original)
+++ sandbox/trunk/setuptools/setup.py	Sat Nov 19 21:38:40 2005
@@ -40,6 +40,7 @@
 py_modules = ['pkg_resources', 'easy_install', 'site'],
 
 zip_safe = False, # We want 'python -m easy_install' to work, for now :(
+
 entry_points = {
 "distutils.commands" : [
 "%(cmd)s = setuptools.command.%(cmd)s:%(cmd)s" % locals()
@@ -49,7 +50,8 @@
 "eager_resources = setuptools.dist:assert_string_list",
 "namespace_packages = setuptools.dist:check_nsp",
 "extras_require = setuptools.dist:check_extras",
- "install_requires = setuptools.dist:check_install_requires",
+ "install_requires = setuptools.dist:check_requirements",
+ "tests_require = setuptools.dist:check_requirements",
 "entry_points = setuptools.dist:check_entry_points",
 "test_suite = setuptools.dist:check_test_suite",
 "zip_safe = setuptools.dist:assert_bool",
@@ -67,6 +69,17 @@
 "console_scripts":
 ["easy_install = setuptools.command.easy_install:main"],
 },
+
+
+
+
+
+
+
+
+
+
+
 classifiers = [f.strip() for f in """
 Development Status :: 3 - Alpha
 Intended Audience :: Developers
@@ -108,16 +121,3 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
Modified: sandbox/trunk/setuptools/setuptools.egg-info/entry_points.txt
==============================================================================
--- sandbox/trunk/setuptools/setuptools.egg-info/entry_points.txt	(original)
+++ sandbox/trunk/setuptools/setuptools.egg-info/entry_points.txt	Sat Nov 19 21:38:40 2005
@@ -1,12 +1,13 @@
 [distutils.setup_keywords]
 entry_points = setuptools.dist:check_entry_points
 extras_require = setuptools.dist:check_extras
-install_requires = setuptools.dist:check_install_requires
+install_requires = setuptools.dist:check_requirements
 include_package_data = setuptools.dist:assert_bool
 namespace_packages = setuptools.dist:check_nsp
 test_suite = setuptools.dist:check_test_suite
 eager_resources = setuptools.dist:assert_string_list
 zip_safe = setuptools.dist:assert_bool
+tests_require = setuptools.dist:check_requirements
 
 [egg_info.writers]
 requires.txt = setuptools.command.egg_info:write_requirements
Modified: sandbox/trunk/setuptools/setuptools.txt
==============================================================================
--- sandbox/trunk/setuptools/setuptools.txt	(original)
+++ sandbox/trunk/setuptools/setuptools.txt	Sat Nov 19 21:38:40 2005
@@ -355,6 +355,17 @@
 specified test suite, e.g. via ``setup.py test``. See the section on the
 `test`_ command below for more details.
 
+``tests_require``
+ If your project's tests need one or more additional packages besides those
+ needed to install it, you can use this option to specify them. It should 
+ be a string or list of strings specifying what other distributions need to
+ be present for the package's tests to run. When you run the ``test``
+ command, ``setuptools`` will attempt to obtain these (even going
+ so far as to download them using ``EasyInstall``). Note that these
+ required projects will *not* be installed on the system where the tests
+ are run, but only downloaded to the project's setup directory if they're
+ not already installed locally.
+
 ``eager_resources``
 A list of strings naming resources that should be extracted together, if
 any of them is needed, or if any C extensions included in the project are
@@ -1996,7 +2007,7 @@
 ----------------------------
 
 Sometimes, your commands may need additional arguments to the ``setup()``
-script. You can enable this by defining entry points in the
+call. You can enable this by defining entry points in the
 ``distutils.setup_keywords`` group. For example, if you wanted a ``setup()``
 argument called ``bar_baz``, you might add something like this to your
 distutils extension project's setup script::
@@ -2041,8 +2052,9 @@
 
 Also note that as with commands, it is not necessary to subclass or monkeypatch
 the distutils ``Distribution`` class in order to add your arguments; it is
-sufficient to define the entry points in your extension, as long as the setup
-script lists your extension in its ``setup_requires`` argument.
+sufficient to define the entry points in your extension, as long as any setup
+script using your extension lists your project in its ``setup_requires``
+argument.
 
 
 Adding new EGG-INFO Files
@@ -2157,6 +2169,10 @@
 
 * Added warning for namespace packages with missing ``declare_namespace()``
 
+ * Added ``tests_require`` keyword to ``setup()``, so that e.g. packages
+ requiring ``nose`` to run unit tests can make this dependency optional
+ unless the ``test`` command is run.
+
 0.6a8
 * Fixed some problems building extensions when Pyrex was installed, especially
 with Python 2.4 and/or packages using SWIG.
Modified: sandbox/trunk/setuptools/setuptools/command/test.py
==============================================================================
--- sandbox/trunk/setuptools/setuptools/command/test.py	(original)
+++ sandbox/trunk/setuptools/setuptools/command/test.py	Sat Nov 19 21:38:40 2005
@@ -47,6 +47,9 @@
 self.reinitialize_command('build_ext', inplace=1)
 self.run_command('build_ext')
 
+ if self.distribution.tests_require: 
+ self.distribution.fetch_build_eggs(self.distribution.tests_require)
+
 if self.test_suite:
 cmd = ' '.join(self.test_args)
 if self.dry_run:
@@ -55,6 +58,7 @@
 self.announce('running "unittest %s"' % cmd)
 self.run_tests()
 
+
 def run_tests(self):
 import unittest
 old_path = sys.path[:]
@@ -76,7 +80,3 @@
 
 
 
-
-
-
-
Modified: sandbox/trunk/setuptools/setuptools/dist.py
==============================================================================
--- sandbox/trunk/setuptools/setuptools/dist.py	(original)
+++ sandbox/trunk/setuptools/setuptools/dist.py	Sat Nov 19 21:38:40 2005
@@ -80,14 +80,14 @@
 
 
 
-def check_install_requires(dist, attr, value):
+def check_requirements(dist, attr, value):
 """Verify that install_requires is a valid requirements list"""
 try:
 list(pkg_resources.parse_requirements(value))
 except (TypeError,ValueError):
 raise DistutilsSetupError(
- "'install_requires' must be a string or list of strings "
- "containing valid project/version requirement specifiers"
+ "%r must be a string or list of strings "
+ "containing valid project/version requirement specifiers" % (attr,)
 )
 
 def check_entry_points(dist, attr, value):


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /