Index: bootstrap/virtualenv/setup.py |
diff --git a/bootstrap/virtualenv/setup.py b/bootstrap/virtualenv/setup.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ce35314fb5eb719fda7d03efd3d9b995b56de460 |
--- /dev/null |
+++ b/bootstrap/virtualenv/setup.py |
@@ -0,0 +1,111 @@ |
+import os |
+import re |
+import shutil |
+import sys |
+ |
+if sys.version_info[:2] < (2, 6): |
+ sys.exit('virtualenv requires Python 2.6 or higher.') |
+ |
+try: |
+ from setuptools import setup |
+ from setuptools.command.test import test as TestCommand |
+ |
+ class PyTest(TestCommand): |
+ user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")] |
+ |
+ def initialize_options(self): |
+ TestCommand.initialize_options(self) |
+ self.pytest_args = None |
+ |
+ def finalize_options(self): |
+ TestCommand.finalize_options(self) |
+ self.test_args = [] |
+ self.test_suite = True |
+ |
+ def run_tests(self): |
+ # import here, because outside the eggs aren't loaded |
+ import pytest |
+ errno = pytest.main(self.pytest_args) |
+ sys.exit(errno) |
+ |
+ setup_params = { |
+ 'entry_points': { |
+ 'console_scripts': [ |
+ 'virtualenv=virtualenv:main', |
+ 'virtualenv-%s.%s=virtualenv:main' % sys.version_info[:2] |
+ ], |
+ }, |
+ 'zip_safe': False, |
+ 'cmdclass': {'test': PyTest}, |
+ 'tests_require': ['pytest', 'mock'], |
+ } |
+except ImportError: |
+ from distutils.core import setup |
+ if sys.platform == 'win32': |
+ print('Note: without Setuptools installed you will ' |
+ 'have to use "python -m virtualenv ENV"') |
+ setup_params = {} |
+ else: |
+ script = 'scripts/virtualenv' |
+ script_ver = script + '-%s.%s' % sys.version_info[:2] |
+ shutil.copy(script, script_ver) |
+ setup_params = {'scripts': [script, script_ver]} |
+ |
+ |
+def read_file(*paths): |
+ here = os.path.dirname(os.path.abspath(__file__)) |
+ with open(os.path.join(here, *paths)) as f: |
+ return f.read() |
+ |
+# Get long_description from index.rst: |
+long_description = read_file('docs', 'index.rst') |
+long_description = long_description.strip().split('split here', 1)[0] |
+# Add release history |
+long_description += "\n\n" + read_file('docs', 'changes.rst') |
+ |
+ |
+def get_version(): |
+ version_file = read_file('virtualenv.py') |
+ version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", |
+ version_file, re.M) |
+ if version_match: |
+ return version_match.group(1) |
+ raise RuntimeError("Unable to find version string.") |
+ |
+ |
+# Hack to prevent stupid TypeError: 'NoneType' object is not callable error on |
+# exit of python setup.py test # in multiprocessing/util.py _exit_function when |
+# running python setup.py test (see |
+# http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html) |
+try: |
+ import multiprocessing # noqa |
+except ImportError: |
+ pass |
+ |
+setup( |
+ name='virtualenv', |
+ version=get_version(), |
+ description="Virtual Python Environment builder", |
+ long_description=long_description, |
+ classifiers=[ |
+ 'Development Status :: 5 - Production/Stable', |
+ 'Intended Audience :: Developers', |
+ 'License :: OSI Approved :: MIT License', |
+ 'Programming Language :: Python :: 2', |
+ 'Programming Language :: Python :: 2.6', |
+ 'Programming Language :: Python :: 2.7', |
+ 'Programming Language :: Python :: 3', |
+ 'Programming Language :: Python :: 3.1', |
+ 'Programming Language :: Python :: 3.2', |
+ ], |
+ keywords='setuptools deployment installation distutils', |
+ author='Ian Bicking', |
+ author_email='ianb@colorstudy.com', |
+ maintainer='Jannis Leidel, Carl Meyer and Brian Rosner', |
+ maintainer_email='python-virtualenv@groups.google.com', |
+ url='https://virtualenv.pypa.io/', |
+ license='MIT', |
+ py_modules=['virtualenv'], |
+ packages=['virtualenv_support'], |
+ package_data={'virtualenv_support': ['*.whl']}, |
+ **setup_params) |