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 |