| OLD | NEW |
| (Empty) |
| 1 import os | |
| 2 import re | |
| 3 import shutil | |
| 4 import sys | |
| 5 | |
| 6 if sys.version_info[:2] < (2, 6): | |
| 7 sys.exit('virtualenv requires Python 2.6 or higher.') | |
| 8 | |
| 9 try: | |
| 10 from setuptools import setup | |
| 11 from setuptools.command.test import test as TestCommand | |
| 12 | |
| 13 class PyTest(TestCommand): | |
| 14 user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")] | |
| 15 | |
| 16 def initialize_options(self): | |
| 17 TestCommand.initialize_options(self) | |
| 18 self.pytest_args = None | |
| 19 | |
| 20 def finalize_options(self): | |
| 21 TestCommand.finalize_options(self) | |
| 22 self.test_args = [] | |
| 23 self.test_suite = True | |
| 24 | |
| 25 def run_tests(self): | |
| 26 # import here, because outside the eggs aren't loaded | |
| 27 import pytest | |
| 28 errno = pytest.main(self.pytest_args) | |
| 29 sys.exit(errno) | |
| 30 | |
| 31 setup_params = { | |
| 32 'entry_points': { | |
| 33 'console_scripts': [ | |
| 34 'virtualenv=virtualenv:main', | |
| 35 'virtualenv-%s.%s=virtualenv:main' % sys.version_info[:2] | |
| 36 ], | |
| 37 }, | |
| 38 'zip_safe': False, | |
| 39 'cmdclass': {'test': PyTest}, | |
| 40 'tests_require': ['pytest', 'mock'], | |
| 41 } | |
| 42 except ImportError: | |
| 43 from distutils.core import setup | |
| 44 if sys.platform == 'win32': | |
| 45 print('Note: without Setuptools installed you will ' | |
| 46 'have to use "python -m virtualenv ENV"') | |
| 47 setup_params = {} | |
| 48 else: | |
| 49 script = 'scripts/virtualenv' | |
| 50 script_ver = script + '-%s.%s' % sys.version_info[:2] | |
| 51 shutil.copy(script, script_ver) | |
| 52 setup_params = {'scripts': [script, script_ver]} | |
| 53 | |
| 54 | |
| 55 def read_file(*paths): | |
| 56 here = os.path.dirname(os.path.abspath(__file__)) | |
| 57 with open(os.path.join(here, *paths)) as f: | |
| 58 return f.read() | |
| 59 | |
| 60 # Get long_description from index.rst: | |
| 61 long_description = read_file('docs', 'index.rst') | |
| 62 long_description = long_description.strip().split('split here', 1)[0] | |
| 63 # Add release history | |
| 64 long_description += "\n\n" + read_file('docs', 'changes.rst') | |
| 65 | |
| 66 | |
| 67 def get_version(): | |
| 68 version_file = read_file('virtualenv.py') | |
| 69 version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", | |
| 70 version_file, re.M) | |
| 71 if version_match: | |
| 72 return version_match.group(1) | |
| 73 raise RuntimeError("Unable to find version string.") | |
| 74 | |
| 75 | |
| 76 # Hack to prevent stupid TypeError: 'NoneType' object is not callable error on | |
| 77 # exit of python setup.py test # in multiprocessing/util.py _exit_function when | |
| 78 # running python setup.py test (see | |
| 79 # http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html) | |
| 80 try: | |
| 81 import multiprocessing # noqa | |
| 82 except ImportError: | |
| 83 pass | |
| 84 | |
| 85 setup( | |
| 86 name='virtualenv', | |
| 87 version=get_version(), | |
| 88 description="Virtual Python Environment builder", | |
| 89 long_description=long_description, | |
| 90 classifiers=[ | |
| 91 'Development Status :: 5 - Production/Stable', | |
| 92 'Intended Audience :: Developers', | |
| 93 'License :: OSI Approved :: MIT License', | |
| 94 'Programming Language :: Python :: 2', | |
| 95 'Programming Language :: Python :: 2.6', | |
| 96 'Programming Language :: Python :: 2.7', | |
| 97 'Programming Language :: Python :: 3', | |
| 98 'Programming Language :: Python :: 3.1', | |
| 99 'Programming Language :: Python :: 3.2', | |
| 100 ], | |
| 101 keywords='setuptools deployment installation distutils', | |
| 102 author='Ian Bicking', | |
| 103 author_email='ianb@colorstudy.com', | |
| 104 maintainer='Jannis Leidel, Carl Meyer and Brian Rosner', | |
| 105 maintainer_email='python-virtualenv@groups.google.com', | |
| 106 url='https://virtualenv.pypa.io/', | |
| 107 license='MIT', | |
| 108 py_modules=['virtualenv'], | |
| 109 packages=['virtualenv_support'], | |
| 110 package_data={'virtualenv_support': ['*.whl']}, | |
| 111 **setup_params) | |
| OLD | NEW |