summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/setup.py b/setup.py
index 960cbed..726d675 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
import sys
-from setuptools import setup
+import setuptools
from setuptools.command.test import test as TestCommand
@@ -15,18 +15,40 @@ class Tox(TestCommand):
import tox
tox.cmdline(self.test_args)
+def has_environment_marker_support():
+ """
+ Tests that setuptools has support for PEP-426 environment marker support.
+
+ The first known release to support it is 0.7 (and the earliest on PyPI seems to be 0.7.2
+ so we're using that), see: http://pythonhosted.org/setuptools/history.html#id142
+
+ References:
+
+ * https://wheel.readthedocs.org/en/latest/index.html#defining-conditional-dependencies
+ * https://www.python.org/dev/peps/pep-0426/#environment-markers
+ """
+ import pkg_resources
+ try:
+ return pkg_resources.parse_version(setuptools.__version__) >= pkg_resources.parse_version('0.7.2')
+ except Exception as exc:
+ sys.stderr.write("Could not test setuptool's version: %s\n" % exc)
+ return False
def main():
version = sys.version_info[:2]
install_requires = ['virtualenv>=1.11.2', 'py>=1.4.17', 'pluggy>=0.3.0,<0.4.0']
- if version < (2, 7):
- install_requires += ['argparse']
- setup(
+ extras_require = {}
+ if has_environment_marker_support():
+ extras_require[':python_version=="2.6"'] = ['argparse']
+ else:
+ if version < (2, 7):
+ install_requires += ['argparse']
+ setuptools.setup(
name='tox',
description='virtualenv-based automation of test activities',
long_description=open("README.rst").read(),
url='http://tox.testrun.org/',
- version='2.0.0',
+ version='2.0.1',
license='http://opensource.org/licenses/MIT',
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
author='holger krekel',
@@ -38,6 +60,7 @@ def main():
tests_require=['tox'],
cmdclass={"test": Tox},
install_requires=install_requires,
+ extras_require=extras_require,
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',