diff --git a/bin/compile b/bin/compile index 59d824bcabceb126bbc054fdeb87f43ffac9c16b..63a43fa6dbc02653eb18cd854cf9111352b7b0bd 100755 --- a/bin/compile +++ b/bin/compile @@ -23,7 +23,7 @@ indent() { virtualenv() { python - "$@" <<EOF import sys -sys.path.insert(0, "$ROOT_DIR/src/virtualenv-1.6.4") +sys.path.insert(0, "$ROOT_DIR/src/virtualenv-1.7") import virtualenv virtualenv.main() EOF diff --git a/src/virtualenv-1.6.4/virtualenv_support/distribute-0.6.19.tar.gz b/src/virtualenv-1.6.4/virtualenv_support/distribute-0.6.19.tar.gz deleted file mode 100644 index 647aa1142b494f4a1b68c16d1d7519a72d304403..0000000000000000000000000000000000000000 Binary files a/src/virtualenv-1.6.4/virtualenv_support/distribute-0.6.19.tar.gz and /dev/null differ diff --git a/src/virtualenv-1.6.4/AUTHORS.txt b/src/virtualenv-1.7/AUTHORS.txt similarity index 81% rename from src/virtualenv-1.6.4/AUTHORS.txt rename to src/virtualenv-1.7/AUTHORS.txt index 13fb1df1344891aba7180b5e18cd1903fa5edaaa..093a83b8ecf0c1e2d075aac7297aa0e9072786db 100644 --- a/src/virtualenv-1.6.4/AUTHORS.txt +++ b/src/virtualenv-1.7/AUTHORS.txt @@ -13,11 +13,15 @@ Jannis Leidel Contributors ------------ +Alex Grönholm Antonio Cuni Armin Ronacher +Chris McDonough +Christian Stefanescu Christopher Nilsson Curt Micol Douglas Creager +Gunnlaugur Thor Briem Jeff Hammel Jorge Vargas Josh Bronson diff --git a/src/virtualenv-1.7/HACKING b/src/virtualenv-1.7/HACKING new file mode 100644 index 0000000000000000000000000000000000000000..4eb6da73c56c3e21fd30bf3cff197693b5b4ad14 --- /dev/null +++ b/src/virtualenv-1.7/HACKING @@ -0,0 +1,16 @@ +virtualenv +========== + +See docs/index.txt for user documentation. + +Contributor notes +----------------- + +* virtualenv is designed to work on python 2 and 3 with a single code base. + Use Python 3 print-function syntax, and always use sys.exc_info()[1] + inside the `except` block to get at exception objects. + +* virtualenv uses git-flow_ to `coordinate development`_. + +.. _git-flow: https://github.com/nvie/gitflow +.. _coordinate development: http://nvie.com/posts/a-successful-git-branching-model/ diff --git a/src/virtualenv-1.6.4/LICENSE.txt b/src/virtualenv-1.7/LICENSE.txt similarity index 100% rename from src/virtualenv-1.6.4/LICENSE.txt rename to src/virtualenv-1.7/LICENSE.txt diff --git a/src/virtualenv-1.6.4/MANIFEST.in b/src/virtualenv-1.7/MANIFEST.in similarity index 100% rename from src/virtualenv-1.6.4/MANIFEST.in rename to src/virtualenv-1.7/MANIFEST.in diff --git a/src/virtualenv-1.6.4/PKG-INFO b/src/virtualenv-1.7/PKG-INFO similarity index 87% rename from src/virtualenv-1.6.4/PKG-INFO rename to src/virtualenv-1.7/PKG-INFO index 601625c59404699866e36616a87232fba4a2bdd7..cd83aa0eadae4c4e5641b566aecfbb58c9ef1c80 100644 --- a/src/virtualenv-1.6.4/PKG-INFO +++ b/src/virtualenv-1.7/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: virtualenv -Version: 1.6.4 +Version: 1.7 Summary: Virtual Python Environment builder Home-page: http://www.virtualenv.org Author: Jannis Leidel, Carl Meyer and Brian Rosner @@ -22,9 +22,16 @@ Description: It is licensed under an `MIT-style permissive license <https://github.com/pypa/virtualenv/raw/master/LICENSE.txt>`_. - You can install it with ``easy_install virtualenv``, or the `latest + You can install it with ``pip install virtualenv``, or the `latest development version <https://github.com/pypa/virtualenv/tarball/develop#egg=virtualenv-dev>`_ - with ``easy_install virtualenv==dev``. + with ``pip install virtualenv==dev``. + + You can also use ``easy_install``, or if you have no Python package manager + available at all, you can just grab the single file `virtualenv.py`_ and run + it with ``python virtualenv.py``. + + .. _virtualenv.py: https://raw.github.com/pypa/virtualenv/master/virtualenv.py + What It Does ------------ @@ -74,9 +81,65 @@ Description: You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE. A new virtualenv also includes the `pip <http://pypy.python.org/pypi/pip>`_ - installer, so you can use `ENV/bin/pip`` to install additional packages into + installer, so you can use ``ENV/bin/pip`` to install additional packages into the environment. + Environment variables and configuration files + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + virtualenv can not only be configured by passing command line options such as + ``--distribute`` but also by two other means: + + - Environment variables + + Each command line option is automatically used to look for environment + variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means + the name of the command line options are capitalized and have dashes + (``'-'``) replaced with underscores (``'_'``). + + For example, to automatically install Distribute instead of setuptools + you can also set an environment variable:: + + $ export VIRTUALENV_USE_DISTRIBUTE=true + $ python virtualenv.py ENV + + It's the same as passing the option to virtualenv directly:: + + $ python virtualenv.py --distribute ENV + + This also works for appending command line options, like ``--find-links``. + Just leave an empty space between the passsed values, e.g.:: + + $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists" + $ virtualenv ENV + + is the same as calling:: + + $ python virtualenv.py --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV + + - Config files + + virtualenv also looks for a standard ini config file. On Unix and Mac OS X + that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's + ``%HOME%\\virtualenv\\virtualenv.ini``. + + The names of the settings are derived from the long command line option, + e.g. the option ``--distribute`` would look like this:: + + [virtualenv] + distribute = true + + Appending options like ``--extra-search-dir`` can be written on multiple + lines:: + + [virtualenv] + extra-search-dir = + /path/to/dists + /path/to/other/dists + + Please have a look at the output of ``virtualenv --help`` for a full list + of supported options. + Windows Notes ~~~~~~~~~~~~~ @@ -167,7 +230,7 @@ Description: f = open('blog-bootstrap.py', 'w').write(output) Another example is available `here - <https://svn.openplans.org/svn/fassembler/trunk/fassembler/create-venv-script.py>`_. + <https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py>`_. activate script ~~~~~~~~~~~~~~~ @@ -184,7 +247,7 @@ Description: environment in-place.) This is all it does; it's purely a convenience. If you directly run a script or the python interpreter from the virtualenv's ``bin/`` directory (e.g. ``path/to/env/bin/pip`` or - ``/path/to/env/bin/python script.py``) there's no need for activation. + ``/path/to/env/bin/python script.py``) there's no need for activation. After activating an environment you can use the function ``deactivate`` to undo the changes to your ``$PATH``. @@ -202,15 +265,16 @@ Description: And use ``deactivate.bat`` to undo the changes. - The ``--no-site-packages`` Option - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The ``--system-site-packages`` Option + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + If you build with ``virtualenv --system-site-packages ENV``, your virtual + environment will inherit packages from ``/usr/lib/python2.7/site-packages`` + (or wherever your global site-packages directory is). - If you build with ``virtualenv --no-site-packages ENV`` it will *not* - inherit any packages from ``/usr/lib/python2.5/site-packages`` (or - wherever your global site-packages directory is). This can be used if - you don't have control over site-packages and don't want to depend on - the packages there, or you just want more isolation from the global - system. + This can be used if you have control over the global site-packages directory, + and you want to depend on the packages there. If you want isolation from the + global system, do not use this flag. Using Virtualenv without ``bin/python`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -231,11 +295,12 @@ Description: This will change ``sys.path`` and even change ``sys.prefix``, but also allow you to use an existing interpreter. Items in your environment will show up first on ``sys.path``, before global items. However, global items will - always be accessible -- this technique does not support the - ``--no-site-packages`` flag. Also, this cannot undo the activation of other - environments, or modules that have been imported. You shouldn't try to, for - instance, activate an environment before a web request; you should activate - *one* environment as early as possible, and not do it again in that process. + always be accessible (as if the ``--system-site-packages`` flag had been used + in creating the environment, whether it was or not). Also, this cannot undo + the activation of other environments, or modules that have been imported. + You shouldn't try to, for instance, activate an environment before a web + request; you should activate *one* environment as early as possible, and not + do it again in that process. Making Environments Relocatable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -272,8 +337,8 @@ Description: different (either different versions, or a different filesystem layout). - Currently the ``--no-site-packages`` option will not be honored if you - use this on an environment. + If you use this flag to create an environment, currently, the + ``--system-site-packages`` option will be implied. The ``--extra-search-dir`` Option ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -419,10 +484,24 @@ Description: Changes & News -------------- - Next release (1.7) schedule - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 1.7 (2011-11-30) + ~~~~~~~~~~~~~~~~ + + * Updated embedded Distribute release to 0.6.24. Thanks Alex Grönholm. + + * Made ``--no-site-packages`` behavior the default behavior. The + ``--no-site-packages`` flag is still permitted, but displays a warning when + used. Thanks Chris McDonough. + + * New flag: ``--system-site-packages``; this flag should be passed to get the + previous default global-site-package-including behavior back. + + * Added ability to set command options as environment variables and options + in a ``virtualenv.ini`` file. + + * Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem. - Beta release mid-July 2011, final release early August. + * Made ``virtualenv.py`` script executable. 1.6.4 (2011-07-21) ~~~~~~~~~~~~~~~~~~ diff --git a/src/virtualenv-1.7/bin/rebuild-script.py b/src/virtualenv-1.7/bin/rebuild-script.py new file mode 100755 index 0000000000000000000000000000000000000000..a6163e323f5c57c39cec25c78878bb4d59ca79c2 --- /dev/null +++ b/src/virtualenv-1.7/bin/rebuild-script.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python +""" +Helper script to rebuild virtualenv.py from virtualenv_support +""" + +import re +import os +import sys + +here = os.path.dirname(__file__) +script = os.path.join(here, '..', 'virtualenv.py') + +file_regex = re.compile( + r'##file (.*?)\n([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*convert\("""(.*?)"""\)', + re.S) +file_template = '##file %(filename)s\n%(varname)s = convert("""\n%(data)s""")' + +def rebuild(): + f = open(script, 'rb') + content = f.read() + f.close() + parts = [] + last_pos = 0 + match = None + for match in file_regex.finditer(content): + parts.append(content[last_pos:match.start()]) + last_pos = match.end() + filename = match.group(1) + varname = match.group(2) + data = match.group(3) + print('Found reference to file %s' % filename) + f = open(os.path.join(here, '..', 'virtualenv_support', filename), 'rb') + c = f.read() + f.close() + new_data = c.encode('zlib').encode('base64') + if new_data == data: + print(' Reference up to date (%s bytes)' % len(c)) + parts.append(match.group(0)) + continue + print(' Content changed (%s bytes -> %s bytes)' % ( + zipped_len(data), len(c))) + new_match = file_template % dict( + filename=filename, + varname=varname, + data=new_data) + parts.append(new_match) + parts.append(content[last_pos:]) + new_content = ''.join(parts) + if new_content != content: + sys.stdout.write('Content updated; overwriting... ') + f = open(script, 'wb') + f.write(new_content) + f.close() + print('done.') + else: + print('No changes in content') + if match is None: + print('No variables were matched/found') + +def zipped_len(data): + if not data: + return 'no data' + try: + return len(data.decode('base64').decode('zlib')) + except: + return 'unknown' + +if __name__ == '__main__': + rebuild() + diff --git a/src/virtualenv-1.7/bin/refresh-support-files.py b/src/virtualenv-1.7/bin/refresh-support-files.py new file mode 100755 index 0000000000000000000000000000000000000000..866b9d5309cf87e0132eebb27a6e76137749772e --- /dev/null +++ b/src/virtualenv-1.7/bin/refresh-support-files.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +""" +Refresh any files in ../virtualenv_support/ that come from elsewhere +""" + +import os +try: + from urllib.request import urlopen +except ImportError: + from urllib2 import urlopen +import sys + +here = os.path.dirname(__file__) +support_files = os.path.join(here, '..', 'virtualenv_support') + +files = [ + ('http://peak.telecommunity.com/dist/ez_setup.py', 'ez_setup.py'), + ('http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg', 'setuptools-0.6c11-py2.6.egg'), + ('http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg', 'setuptools-0.6c11-py2.5.egg'), + ('http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c11-py2.4.egg', 'setuptools-0.6c11-py2.4.egg'), + ('http://python-distribute.org/distribute_setup.py', 'distribute_setup.py'), + ('http://pypi.python.org/packages/source/d/distribute/distribute-0.6.24.tar.gz', 'distribute-0.6.24.tar.gz'), + ('http://pypi.python.org/packages/source/p/pip/pip-1.0.2.tar.gz', 'pip-1.0.2.tar.gz'), +] + +def main(): + for url, filename in files: + sys.stdout.write('fetching %s ... ' % url) + sys.stdout.flush() + f = urlopen(url) + content = f.read() + f.close() + print('done.') + filename = os.path.join(support_files, filename) + if os.path.exists(filename): + f = open(filename, 'rb') + cur_content = f.read() + f.close() + else: + cur_content = '' + if cur_content == content: + print(' %s up-to-date' % filename) + else: + print(' overwriting %s' % filename) + f = open(filename, 'wb') + f.write(content) + f.close() + +if __name__ == '__main__': + main() + + diff --git a/src/virtualenv-1.7/docs/Makefile b/src/virtualenv-1.7/docs/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..e4de9f847c482887a61e83152424d25e8f1b435d --- /dev/null +++ b/src/virtualenv-1.7/docs/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make <target>' where <target> is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-compressor.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-compressor.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/django-compressor" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-compressor" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/src/virtualenv-1.7/docs/_theme/nature/static/nature.css_t b/src/virtualenv-1.7/docs/_theme/nature/static/nature.css_t new file mode 100644 index 0000000000000000000000000000000000000000..03b0379d0427e0c773cb181a8567aecd49f53747 --- /dev/null +++ b/src/virtualenv-1.7/docs/_theme/nature/static/nature.css_t @@ -0,0 +1,229 @@ +/** + * Sphinx stylesheet -- default theme + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: Arial, sans-serif; + font-size: 100%; + background-color: #111; + color: #555; + margin: 0; + padding: 0; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +hr{ + border: 1px solid #B1B4B6; +} + +div.document { + background-color: #eee; +} + +div.body { + background-color: #ffffff; + color: #3E4349; + padding: 0 30px 30px 30px; + font-size: 0.8em; +} + +div.footer { + color: #555; + width: 100%; + padding: 13px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #444; + text-decoration: underline; +} + +div.related { + background-color: #6BA81E; + line-height: 32px; + color: #fff; + text-shadow: 0px 1px 0 #444; + font-size: 0.80em; +} + +div.related a { + color: #E2F3CC; +} + +div.sphinxsidebar { + font-size: 0.75em; + line-height: 1.5em; +} + +div.sphinxsidebarwrapper{ + padding: 20px 0; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: Arial, sans-serif; + color: #222; + font-size: 1.2em; + font-weight: normal; + margin: 0; + padding: 5px 10px; + background-color: #ddd; + text-shadow: 1px 1px 0 white +} + +div.sphinxsidebar h4{ + font-size: 1.1em; +} + +div.sphinxsidebar h3 a { + color: #444; +} + + +div.sphinxsidebar p { + color: #888; + padding: 5px 20px; +} + +div.sphinxsidebar p.topless { +} + +div.sphinxsidebar ul { + margin: 10px 20px; + padding: 0; + color: #000; +} + +div.sphinxsidebar a { + color: #444; +} + +div.sphinxsidebar input { + border: 1px solid #ccc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar input[type=text]{ + margin-left: 20px; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #005B81; + text-decoration: none; +} + +a:hover { + color: #E32E00; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: Arial, sans-serif; + background-color: #BED4EB; + font-weight: normal; + color: #212224; + margin: 30px 0px 10px 0px; + padding: 5px 0 5px 10px; + text-shadow: 0px 1px 0 white +} + +div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 150%; background-color: #C8D5E3; } +div.body h3 { font-size: 120%; background-color: #D8DEE3; } +div.body h4 { font-size: 110%; background-color: #D8DEE3; } +div.body h5 { font-size: 100%; background-color: #D8DEE3; } +div.body h6 { font-size: 100%; background-color: #D8DEE3; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + line-height: 1.5em; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.highlight{ + background-color: white; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 10px; + background-color: White; + color: #222; + line-height: 1.2em; + border: 1px solid #C6C9CB; + font-size: 1.2em; + margin: 1.5em 0 1.5em 0; + -webkit-box-shadow: 1px 1px 1px #d8d8d8; + -moz-box-shadow: 1px 1px 1px #d8d8d8; +} + +tt { + background-color: #ecf0f3; + color: #222; + padding: 1px 2px; + font-size: 1.2em; + font-family: monospace; +} diff --git a/src/virtualenv-1.7/docs/_theme/nature/static/pygments.css b/src/virtualenv-1.7/docs/_theme/nature/static/pygments.css new file mode 100644 index 0000000000000000000000000000000000000000..652b76128b6a174f3407a50fff8735896f47d863 --- /dev/null +++ b/src/virtualenv-1.7/docs/_theme/nature/static/pygments.css @@ -0,0 +1,54 @@ +.c { color: #999988; font-style: italic } /* Comment */ +.k { font-weight: bold } /* Keyword */ +.o { font-weight: bold } /* Operator */ +.cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.cp { color: #999999; font-weight: bold } /* Comment.preproc */ +.c1 { color: #999988; font-style: italic } /* Comment.Single */ +.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #aa0000 } /* Generic.Error */ +.gh { color: #999999 } /* Generic.Heading */ +.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.go { color: #111 } /* Generic.Output */ +.gp { color: #555555 } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #aaaaaa } /* Generic.Subheading */ +.gt { color: #aa0000 } /* Generic.Traceback */ +.kc { font-weight: bold } /* Keyword.Constant */ +.kd { font-weight: bold } /* Keyword.Declaration */ +.kp { font-weight: bold } /* Keyword.Pseudo */ +.kr { font-weight: bold } /* Keyword.Reserved */ +.kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.m { color: #009999 } /* Literal.Number */ +.s { color: #bb8844 } /* Literal.String */ +.na { color: #008080 } /* Name.Attribute */ +.nb { color: #999999 } /* Name.Builtin */ +.nc { color: #445588; font-weight: bold } /* Name.Class */ +.no { color: #ff99ff } /* Name.Constant */ +.ni { color: #800080 } /* Name.Entity */ +.ne { color: #990000; font-weight: bold } /* Name.Exception */ +.nf { color: #990000; font-weight: bold } /* Name.Function */ +.nn { color: #555555 } /* Name.Namespace */ +.nt { color: #000080 } /* Name.Tag */ +.nv { color: purple } /* Name.Variable */ +.ow { font-weight: bold } /* Operator.Word */ +.mf { color: #009999 } /* Literal.Number.Float */ +.mh { color: #009999 } /* Literal.Number.Hex */ +.mi { color: #009999 } /* Literal.Number.Integer */ +.mo { color: #009999 } /* Literal.Number.Oct */ +.sb { color: #bb8844 } /* Literal.String.Backtick */ +.sc { color: #bb8844 } /* Literal.String.Char */ +.sd { color: #bb8844 } /* Literal.String.Doc */ +.s2 { color: #bb8844 } /* Literal.String.Double */ +.se { color: #bb8844 } /* Literal.String.Escape */ +.sh { color: #bb8844 } /* Literal.String.Heredoc */ +.si { color: #bb8844 } /* Literal.String.Interpol */ +.sx { color: #bb8844 } /* Literal.String.Other */ +.sr { color: #808000 } /* Literal.String.Regex */ +.s1 { color: #bb8844 } /* Literal.String.Single */ +.ss { color: #bb8844 } /* Literal.String.Symbol */ +.bp { color: #999999 } /* Name.Builtin.Pseudo */ +.vc { color: #ff99ff } /* Name.Variable.Class */ +.vg { color: #ff99ff } /* Name.Variable.Global */ +.vi { color: #ff99ff } /* Name.Variable.Instance */ +.il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/src/virtualenv-1.7/docs/_theme/nature/theme.conf b/src/virtualenv-1.7/docs/_theme/nature/theme.conf new file mode 100644 index 0000000000000000000000000000000000000000..1cc40044646bb73870088ddc88543c58a3ca083e --- /dev/null +++ b/src/virtualenv-1.7/docs/_theme/nature/theme.conf @@ -0,0 +1,4 @@ +[theme] +inherit = basic +stylesheet = nature.css +pygments_style = tango diff --git a/src/virtualenv-1.7/docs/conf.py b/src/virtualenv-1.7/docs/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..39203f1c8e459228b5547c2d98d57c7548cbf0fb --- /dev/null +++ b/src/virtualenv-1.7/docs/conf.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# +# Paste documentation build configuration file, created by +# sphinx-quickstart on Tue Apr 22 22:08:49 2008. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# The contents of this file are pickled, so don't put values in the namespace +# that aren't pickleable (module imports are okay, they're removed automatically). +# +# All configuration values have a default value; values that are commented out +# serve to show the default value. + +import sys + +# If your extensions are in another directory, add it here. +#sys.path.append('some/directory') + +# General configuration +# --------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc'] + +# Add any paths that contain templates here, relative to this directory. +## FIXME: disabled for now because I haven't figured out how to use this: +#templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.txt' + +# The master toctree document. +master_doc = 'index' + +# General substitutions. +project = 'virtualenv' +copyright = '2007-2011, Ian Bicking, The Open Planning Project, The virtualenv developers' + +# The default replacements for |version| and |release|, also used in various +# other places throughout the built documents. +# +# The short X.Y version. + +release = "1.7" +version = ".".join(release.split(".")[:2]) + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +unused_docs = [] + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# Options for HTML output +# ----------------------- + +# The style sheet to use for HTML and HTML Help pages. A file of that name +# must exist either in Sphinx' static/ path, or in one of the custom paths +# given in html_static_path. +#html_style = 'default.css' + +html_theme = 'nature' +html_theme_path = ['_theme'] + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Content template for the index page. +#html_index = '' + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If true, the reST sources are included in the HTML build as _sources/<name>. +#html_copy_source = True + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Pastedoc' + + +# Options for LaTeX output +# ------------------------ + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, document class [howto/manual]). +#latex_documents = [] + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/src/virtualenv-1.6.4/docs/index.txt b/src/virtualenv-1.7/docs/index.txt similarity index 82% rename from src/virtualenv-1.6.4/docs/index.txt rename to src/virtualenv-1.7/docs/index.txt index 4fe4c325d6b7529eb9605ef021b7d30c7810c7da..9f81adf0de2f042b8a756769e5a092c7f270311f 100644 --- a/src/virtualenv-1.6.4/docs/index.txt +++ b/src/virtualenv-1.7/docs/index.txt @@ -27,9 +27,16 @@ Project <http://openplans.org>`_ and is now maintained by a It is licensed under an `MIT-style permissive license <https://github.com/pypa/virtualenv/raw/master/LICENSE.txt>`_. -You can install it with ``easy_install virtualenv``, or the `latest +You can install it with ``pip install virtualenv``, or the `latest development version <https://github.com/pypa/virtualenv/tarball/develop#egg=virtualenv-dev>`_ -with ``easy_install virtualenv==dev``. +with ``pip install virtualenv==dev``. + +You can also use ``easy_install``, or if you have no Python package manager +available at all, you can just grab the single file `virtualenv.py`_ and run +it with ``python virtualenv.py``. + +.. _virtualenv.py: https://raw.github.com/pypa/virtualenv/master/virtualenv.py + What It Does ------------ @@ -79,9 +86,65 @@ Distribute instead of setuptools, just call virtualenv like this:: You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE. A new virtualenv also includes the `pip <http://pypy.python.org/pypi/pip>`_ -installer, so you can use `ENV/bin/pip`` to install additional packages into +installer, so you can use ``ENV/bin/pip`` to install additional packages into the environment. +Environment variables and configuration files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +virtualenv can not only be configured by passing command line options such as +``--distribute`` but also by two other means: + +- Environment variables + + Each command line option is automatically used to look for environment + variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means + the name of the command line options are capitalized and have dashes + (``'-'``) replaced with underscores (``'_'``). + + For example, to automatically install Distribute instead of setuptools + you can also set an environment variable:: + + $ export VIRTUALENV_USE_DISTRIBUTE=true + $ python virtualenv.py ENV + + It's the same as passing the option to virtualenv directly:: + + $ python virtualenv.py --distribute ENV + + This also works for appending command line options, like ``--find-links``. + Just leave an empty space between the passsed values, e.g.:: + + $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists" + $ virtualenv ENV + + is the same as calling:: + + $ python virtualenv.py --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV + +- Config files + + virtualenv also looks for a standard ini config file. On Unix and Mac OS X + that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's + ``%HOME%\\virtualenv\\virtualenv.ini``. + + The names of the settings are derived from the long command line option, + e.g. the option ``--distribute`` would look like this:: + + [virtualenv] + distribute = true + + Appending options like ``--extra-search-dir`` can be written on multiple + lines:: + + [virtualenv] + extra-search-dir = + /path/to/dists + /path/to/other/dists + +Please have a look at the output of ``virtualenv --help`` for a full list +of supported options. + Windows Notes ~~~~~~~~~~~~~ @@ -172,7 +235,7 @@ Here's a more concrete example of how you could use this:: f = open('blog-bootstrap.py', 'w').write(output) Another example is available `here -<https://svn.openplans.org/svn/fassembler/trunk/fassembler/create-venv-script.py>`_. +<https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py>`_. activate script ~~~~~~~~~~~~~~~ @@ -189,7 +252,7 @@ directory. (You have to use ``source`` because it changes your shell environment in-place.) This is all it does; it's purely a convenience. If you directly run a script or the python interpreter from the virtualenv's ``bin/`` directory (e.g. ``path/to/env/bin/pip`` or -``/path/to/env/bin/python script.py``) there's no need for activation. +``/path/to/env/bin/python script.py``) there's no need for activation. After activating an environment you can use the function ``deactivate`` to undo the changes to your ``$PATH``. @@ -207,15 +270,16 @@ On Windows you just do:: And use ``deactivate.bat`` to undo the changes. -The ``--no-site-packages`` Option -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The ``--system-site-packages`` Option +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you build with ``virtualenv --system-site-packages ENV``, your virtual +environment will inherit packages from ``/usr/lib/python2.7/site-packages`` +(or wherever your global site-packages directory is). -If you build with ``virtualenv --no-site-packages ENV`` it will *not* -inherit any packages from ``/usr/lib/python2.5/site-packages`` (or -wherever your global site-packages directory is). This can be used if -you don't have control over site-packages and don't want to depend on -the packages there, or you just want more isolation from the global -system. +This can be used if you have control over the global site-packages directory, +and you want to depend on the packages there. If you want isolation from the +global system, do not use this flag. Using Virtualenv without ``bin/python`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -236,11 +300,12 @@ can setup the environment like:: This will change ``sys.path`` and even change ``sys.prefix``, but also allow you to use an existing interpreter. Items in your environment will show up first on ``sys.path``, before global items. However, global items will -always be accessible -- this technique does not support the -``--no-site-packages`` flag. Also, this cannot undo the activation of other -environments, or modules that have been imported. You shouldn't try to, for -instance, activate an environment before a web request; you should activate -*one* environment as early as possible, and not do it again in that process. +always be accessible (as if the ``--system-site-packages`` flag had been used +in creating the environment, whether it was or not). Also, this cannot undo +the activation of other environments, or modules that have been imported. +You shouldn't try to, for instance, activate an environment before a web +request; you should activate *one* environment as early as possible, and not +do it again in that process. Making Environments Relocatable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -277,8 +342,8 @@ libraries on the system, if those C libraries are located somewhere different (either different versions, or a different filesystem layout). -Currently the ``--no-site-packages`` option will not be honored if you -use this on an environment. +If you use this flag to create an environment, currently, the +``--system-site-packages`` option will be implied. The ``--extra-search-dir`` Option ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/virtualenv-1.7/docs/make.bat b/src/virtualenv-1.7/docs/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..aa5c189fcfb97a3a1735fe7a36184a0bf3c1a248 --- /dev/null +++ b/src/virtualenv-1.7/docs/make.bat @@ -0,0 +1,170 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=_build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^<target^>` where ^<target^> is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. changes to make an overview over all changed/added/deprecated items + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\django-compressor.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\django-compressor.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +:end diff --git a/src/virtualenv-1.6.4/docs/news.txt b/src/virtualenv-1.7/docs/news.txt similarity index 94% rename from src/virtualenv-1.6.4/docs/news.txt rename to src/virtualenv-1.7/docs/news.txt index 4e20e0f694edf86d83cfeff7e2ecdcbf8259d307..254229ceb88e8121b57ccbc58b5764d9561c6c7a 100644 --- a/src/virtualenv-1.6.4/docs/news.txt +++ b/src/virtualenv-1.7/docs/news.txt @@ -1,10 +1,24 @@ Changes & News -------------- -Next release (1.7) schedule -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1.7 (2011-11-30) +~~~~~~~~~~~~~~~~ -Beta release mid-July 2011, final release early August. +* Updated embedded Distribute release to 0.6.24. Thanks Alex Grönholm. + +* Made ``--no-site-packages`` behavior the default behavior. The + ``--no-site-packages`` flag is still permitted, but displays a warning when + used. Thanks Chris McDonough. + +* New flag: ``--system-site-packages``; this flag should be passed to get the + previous default global-site-package-including behavior back. + +* Added ability to set command options as environment variables and options + in a ``virtualenv.ini`` file. + +* Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem. + +* Made ``virtualenv.py`` script executable. 1.6.4 (2011-07-21) ~~~~~~~~~~~~~~~~~~ diff --git a/src/virtualenv-1.6.4/scripts/virtualenv b/src/virtualenv-1.7/scripts/virtualenv similarity index 100% rename from src/virtualenv-1.6.4/scripts/virtualenv rename to src/virtualenv-1.7/scripts/virtualenv diff --git a/src/virtualenv-1.6.4/setup.cfg b/src/virtualenv-1.7/setup.cfg similarity index 100% rename from src/virtualenv-1.6.4/setup.cfg rename to src/virtualenv-1.7/setup.cfg diff --git a/src/virtualenv-1.6.4/setup.py b/src/virtualenv-1.7/setup.py similarity index 98% rename from src/virtualenv-1.6.4/setup.py rename to src/virtualenv-1.7/setup.py index ae7c79bddb48553a9d942b7ccb2e8c02614e80f2..6e6cdd886aca5e13a340dbe81df0b39d1ff055ff 100644 --- a/src/virtualenv-1.6.4/setup.py +++ b/src/virtualenv-1.7/setup.py @@ -26,7 +26,7 @@ f.close() setup(name='virtualenv', # If you change the version here, change it in virtualenv.py and # docs/conf.py as well - version="1.6.4", + version="1.7", description="Virtual Python Environment builder", long_description=long_description, classifiers=[ diff --git a/src/virtualenv-1.6.4/virtualenv_support/__init__.py b/src/virtualenv-1.7/tests/__init__.py similarity index 100% rename from src/virtualenv-1.6.4/virtualenv_support/__init__.py rename to src/virtualenv-1.7/tests/__init__.py diff --git a/src/virtualenv-1.7/tests/test_virtualenv.py b/src/virtualenv-1.7/tests/test_virtualenv.py new file mode 100644 index 0000000000000000000000000000000000000000..3752e155ed2bab1607210f3da77fb48eaab0fb99 --- /dev/null +++ b/src/virtualenv-1.7/tests/test_virtualenv.py @@ -0,0 +1,50 @@ +import virtualenv +from mock import patch, Mock + + +def test_version(): + """Should have a version string""" + assert virtualenv.virtualenv_version == "1.7", "Should have version" + + +@patch('os.path.exists') +def test_resolve_interpreter_with_absolute_path(mock_exists): + """Should return absolute path if given and exists""" + mock_exists.return_value = True + virtualenv.is_executable = Mock(return_value=True) + + exe = virtualenv.resolve_interpreter("/usr/bin/python42") + + assert exe == "/usr/bin/python42", "Absolute path should return as is" + mock_exists.assert_called_with("/usr/bin/python42") + virtualenv.is_executable.assert_called_with("/usr/bin/python42") + + +@patch('os.path.exists') +def test_resolve_intepreter_with_nonexistant_interpreter(mock_exists): + """Should exit when with absolute path if not exists""" + mock_exists.return_value = False + + try: + virtualenv.resolve_interpreter("/usr/bin/python42") + assert False, "Should raise exception" + except SystemExit: + pass + + mock_exists.assert_called_with("/usr/bin/python42") + + +@patch('os.path.exists') +def test_resolve_intepreter_with_invalid_interpreter(mock_exists): + """Should exit when with absolute path if not exists""" + mock_exists.return_value = True + virtualenv.is_executable = Mock(return_value=False) + + try: + virtualenv.resolve_interpreter("/usr/bin/python42") + assert False, "Should raise exception" + except SystemExit: + pass + + mock_exists.assert_called_with("/usr/bin/python42") + virtualenv.is_executable.assert_called_with("/usr/bin/python42") diff --git a/src/virtualenv-1.6.4/virtualenv.egg-info/PKG-INFO b/src/virtualenv-1.7/virtualenv.egg-info/PKG-INFO similarity index 87% rename from src/virtualenv-1.6.4/virtualenv.egg-info/PKG-INFO rename to src/virtualenv-1.7/virtualenv.egg-info/PKG-INFO index 601625c59404699866e36616a87232fba4a2bdd7..cd83aa0eadae4c4e5641b566aecfbb58c9ef1c80 100644 --- a/src/virtualenv-1.6.4/virtualenv.egg-info/PKG-INFO +++ b/src/virtualenv-1.7/virtualenv.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: virtualenv -Version: 1.6.4 +Version: 1.7 Summary: Virtual Python Environment builder Home-page: http://www.virtualenv.org Author: Jannis Leidel, Carl Meyer and Brian Rosner @@ -22,9 +22,16 @@ Description: It is licensed under an `MIT-style permissive license <https://github.com/pypa/virtualenv/raw/master/LICENSE.txt>`_. - You can install it with ``easy_install virtualenv``, or the `latest + You can install it with ``pip install virtualenv``, or the `latest development version <https://github.com/pypa/virtualenv/tarball/develop#egg=virtualenv-dev>`_ - with ``easy_install virtualenv==dev``. + with ``pip install virtualenv==dev``. + + You can also use ``easy_install``, or if you have no Python package manager + available at all, you can just grab the single file `virtualenv.py`_ and run + it with ``python virtualenv.py``. + + .. _virtualenv.py: https://raw.github.com/pypa/virtualenv/master/virtualenv.py + What It Does ------------ @@ -74,9 +81,65 @@ Description: You can also set the environment variable VIRTUALENV_USE_DISTRIBUTE. A new virtualenv also includes the `pip <http://pypy.python.org/pypi/pip>`_ - installer, so you can use `ENV/bin/pip`` to install additional packages into + installer, so you can use ``ENV/bin/pip`` to install additional packages into the environment. + Environment variables and configuration files + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + virtualenv can not only be configured by passing command line options such as + ``--distribute`` but also by two other means: + + - Environment variables + + Each command line option is automatically used to look for environment + variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means + the name of the command line options are capitalized and have dashes + (``'-'``) replaced with underscores (``'_'``). + + For example, to automatically install Distribute instead of setuptools + you can also set an environment variable:: + + $ export VIRTUALENV_USE_DISTRIBUTE=true + $ python virtualenv.py ENV + + It's the same as passing the option to virtualenv directly:: + + $ python virtualenv.py --distribute ENV + + This also works for appending command line options, like ``--find-links``. + Just leave an empty space between the passsed values, e.g.:: + + $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists" + $ virtualenv ENV + + is the same as calling:: + + $ python virtualenv.py --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV + + - Config files + + virtualenv also looks for a standard ini config file. On Unix and Mac OS X + that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's + ``%HOME%\\virtualenv\\virtualenv.ini``. + + The names of the settings are derived from the long command line option, + e.g. the option ``--distribute`` would look like this:: + + [virtualenv] + distribute = true + + Appending options like ``--extra-search-dir`` can be written on multiple + lines:: + + [virtualenv] + extra-search-dir = + /path/to/dists + /path/to/other/dists + + Please have a look at the output of ``virtualenv --help`` for a full list + of supported options. + Windows Notes ~~~~~~~~~~~~~ @@ -167,7 +230,7 @@ Description: f = open('blog-bootstrap.py', 'w').write(output) Another example is available `here - <https://svn.openplans.org/svn/fassembler/trunk/fassembler/create-venv-script.py>`_. + <https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py>`_. activate script ~~~~~~~~~~~~~~~ @@ -184,7 +247,7 @@ Description: environment in-place.) This is all it does; it's purely a convenience. If you directly run a script or the python interpreter from the virtualenv's ``bin/`` directory (e.g. ``path/to/env/bin/pip`` or - ``/path/to/env/bin/python script.py``) there's no need for activation. + ``/path/to/env/bin/python script.py``) there's no need for activation. After activating an environment you can use the function ``deactivate`` to undo the changes to your ``$PATH``. @@ -202,15 +265,16 @@ Description: And use ``deactivate.bat`` to undo the changes. - The ``--no-site-packages`` Option - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The ``--system-site-packages`` Option + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + If you build with ``virtualenv --system-site-packages ENV``, your virtual + environment will inherit packages from ``/usr/lib/python2.7/site-packages`` + (or wherever your global site-packages directory is). - If you build with ``virtualenv --no-site-packages ENV`` it will *not* - inherit any packages from ``/usr/lib/python2.5/site-packages`` (or - wherever your global site-packages directory is). This can be used if - you don't have control over site-packages and don't want to depend on - the packages there, or you just want more isolation from the global - system. + This can be used if you have control over the global site-packages directory, + and you want to depend on the packages there. If you want isolation from the + global system, do not use this flag. Using Virtualenv without ``bin/python`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -231,11 +295,12 @@ Description: This will change ``sys.path`` and even change ``sys.prefix``, but also allow you to use an existing interpreter. Items in your environment will show up first on ``sys.path``, before global items. However, global items will - always be accessible -- this technique does not support the - ``--no-site-packages`` flag. Also, this cannot undo the activation of other - environments, or modules that have been imported. You shouldn't try to, for - instance, activate an environment before a web request; you should activate - *one* environment as early as possible, and not do it again in that process. + always be accessible (as if the ``--system-site-packages`` flag had been used + in creating the environment, whether it was or not). Also, this cannot undo + the activation of other environments, or modules that have been imported. + You shouldn't try to, for instance, activate an environment before a web + request; you should activate *one* environment as early as possible, and not + do it again in that process. Making Environments Relocatable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -272,8 +337,8 @@ Description: different (either different versions, or a different filesystem layout). - Currently the ``--no-site-packages`` option will not be honored if you - use this on an environment. + If you use this flag to create an environment, currently, the + ``--system-site-packages`` option will be implied. The ``--extra-search-dir`` Option ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -419,10 +484,24 @@ Description: Changes & News -------------- - Next release (1.7) schedule - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 1.7 (2011-11-30) + ~~~~~~~~~~~~~~~~ + + * Updated embedded Distribute release to 0.6.24. Thanks Alex Grönholm. + + * Made ``--no-site-packages`` behavior the default behavior. The + ``--no-site-packages`` flag is still permitted, but displays a warning when + used. Thanks Chris McDonough. + + * New flag: ``--system-site-packages``; this flag should be passed to get the + previous default global-site-package-including behavior back. + + * Added ability to set command options as environment variables and options + in a ``virtualenv.ini`` file. + + * Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem. - Beta release mid-July 2011, final release early August. + * Made ``virtualenv.py`` script executable. 1.6.4 (2011-07-21) ~~~~~~~~~~~~~~~~~~ diff --git a/src/virtualenv-1.6.4/virtualenv.egg-info/SOURCES.txt b/src/virtualenv-1.7/virtualenv.egg-info/SOURCES.txt similarity index 53% rename from src/virtualenv-1.6.4/virtualenv.egg-info/SOURCES.txt rename to src/virtualenv-1.7/virtualenv.egg-info/SOURCES.txt index 3a15c55e68f1626f0bdf9f9bb5d786d2d773fc34..b073501368d0dcdfc25fb494f1d4e4bffb1dce36 100644 --- a/src/virtualenv-1.6.4/virtualenv.egg-info/SOURCES.txt +++ b/src/virtualenv-1.7/virtualenv.egg-info/SOURCES.txt @@ -1,11 +1,22 @@ AUTHORS.txt +HACKING LICENSE.txt MANIFEST.in setup.py virtualenv.py +bin/rebuild-script.py +bin/refresh-support-files.py +docs/Makefile +docs/conf.py docs/index.txt +docs/make.bat docs/news.txt +docs/_theme/nature/theme.conf +docs/_theme/nature/static/nature.css_t +docs/_theme/nature/static/pygments.css scripts/virtualenv +tests/__init__.py +tests/test_virtualenv.py virtualenv.egg-info/PKG-INFO virtualenv.egg-info/SOURCES.txt virtualenv.egg-info/dependency_links.txt @@ -13,7 +24,13 @@ virtualenv.egg-info/entry_points.txt virtualenv.egg-info/not-zip-safe virtualenv.egg-info/top_level.txt virtualenv_support/__init__.py -virtualenv_support/distribute-0.6.19.tar.gz +virtualenv_support/activate.bat +virtualenv_support/activate.csh +virtualenv_support/activate.fish +virtualenv_support/activate.sh +virtualenv_support/deactivate.bat +virtualenv_support/distribute-0.6.24.tar.gz +virtualenv_support/distutils.cfg virtualenv_support/pip-1.0.2.tar.gz virtualenv_support/setuptools-0.6c11-py2.4.egg virtualenv_support/setuptools-0.6c11-py2.5.egg diff --git a/src/virtualenv-1.6.4/virtualenv.egg-info/dependency_links.txt b/src/virtualenv-1.7/virtualenv.egg-info/dependency_links.txt similarity index 100% rename from src/virtualenv-1.6.4/virtualenv.egg-info/dependency_links.txt rename to src/virtualenv-1.7/virtualenv.egg-info/dependency_links.txt diff --git a/src/virtualenv-1.6.4/virtualenv.egg-info/entry_points.txt b/src/virtualenv-1.7/virtualenv.egg-info/entry_points.txt similarity index 100% rename from src/virtualenv-1.6.4/virtualenv.egg-info/entry_points.txt rename to src/virtualenv-1.7/virtualenv.egg-info/entry_points.txt diff --git a/src/virtualenv-1.6.4/virtualenv.egg-info/not-zip-safe b/src/virtualenv-1.7/virtualenv.egg-info/not-zip-safe similarity index 100% rename from src/virtualenv-1.6.4/virtualenv.egg-info/not-zip-safe rename to src/virtualenv-1.7/virtualenv.egg-info/not-zip-safe diff --git a/src/virtualenv-1.6.4/virtualenv.egg-info/top_level.txt b/src/virtualenv-1.7/virtualenv.egg-info/top_level.txt similarity index 100% rename from src/virtualenv-1.6.4/virtualenv.egg-info/top_level.txt rename to src/virtualenv-1.7/virtualenv.egg-info/top_level.txt diff --git a/src/virtualenv-1.6.4/virtualenv.py b/src/virtualenv-1.7/virtualenv.py old mode 100644 new mode 100755 similarity index 84% rename from src/virtualenv-1.6.4/virtualenv.py rename to src/virtualenv-1.7/virtualenv.py index c173dd417f53401687b88793794537c62a051dc9..5b4951db1eba05f64341e3bba11af630c16c8967 --- a/src/virtualenv-1.6.4/virtualenv.py +++ b/src/virtualenv-1.7/virtualenv.py @@ -2,9 +2,9 @@ """Create a "virtual" Python installation """ -# If you change the version here, change it in setup.py +# If you change the version here, change it in setup.py # and docs/conf.py as well. -virtualenv_version = "1.6.4" +virtualenv_version = "1.7" import base64 import sys @@ -17,6 +17,8 @@ import tempfile import zlib import errno import distutils.sysconfig +from distutils.util import strtobool + try: import subprocess except ImportError: @@ -36,6 +38,11 @@ try: except NameError: basestring = str +try: + import ConfigParser +except ImportError: + import configparser as ConfigParser + join = os.path.join py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) @@ -44,6 +51,14 @@ is_pypy = hasattr(sys, 'pypy_version_info') is_win = (sys.platform == 'win32') abiflags = getattr(sys, 'abiflags', '') +user_dir = os.path.expanduser('~') +if sys.platform == 'win32': + user_dir = os.environ.get('APPDATA', user_dir) # Use %APPDATA% for roaming + default_storage_dir = os.path.join(user_dir, 'virtualenv') +else: + default_storage_dir = os.path.join(user_dir, '.virtualenv') +default_config_file = os.path.join(default_storage_dir, 'virtualenv.ini') + if is_pypy: expected_exe = 'pypy' elif is_jython: @@ -472,35 +487,10 @@ def _install_req(py_executable, unzip=False, distribute=False, source = None else: setup_fn = None - source = 'distribute-0.6.19.tar.gz' + source = 'distribute-0.6.24.tar.gz' project_name = 'distribute' bootstrap_script = DISTRIBUTE_SETUP_PY - # If we are running under -p, we need to remove the current - # directory from sys.path temporarily here, so that we - # definitely get the pkg_resources from the site directory of - # the interpreter we are running under, not the one - # virtualenv.py is installed under (which might lead to py2/py3 - # incompatibility issues) - _prev_sys_path = sys.path - if os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'): - sys.path = sys.path[1:] - - try: - try: - # check if the global Python has distribute installed or plain - # setuptools - import pkg_resources - if not hasattr(pkg_resources, '_distribute'): - location = os.path.dirname(pkg_resources.__file__) - logger.notify("A globally installed setuptools was found (in %s)" % location) - logger.notify("Use the --no-site-packages option to use distribute in " - "the virtualenv.") - except ImportError: - pass - finally: - sys.path = _prev_sys_path - if setup_fn is not None: setup_fn = _find_file(setup_fn, search_dirs) @@ -546,7 +536,7 @@ def _install_req(py_executable, unzip=False, distribute=False, "and --never-download is set. Either re-run virtualenv " "without the --never-download option, or place a %s " "distribution (%s) in one of these " - "locations: %r" % (project_name, project_name, + "locations: %r" % (project_name, project_name, setup_fn or source, search_dirs)) sys.exit(1) @@ -599,16 +589,16 @@ def file_search_dirs(): def install_setuptools(py_executable, unzip=False, search_dirs=None, never_download=False): - _install_req(py_executable, unzip, + _install_req(py_executable, unzip, search_dirs=search_dirs, never_download=never_download) -def install_distribute(py_executable, unzip=False, +def install_distribute(py_executable, unzip=False, search_dirs=None, never_download=False): - _install_req(py_executable, unzip, distribute=True, + _install_req(py_executable, unzip, distribute=True, search_dirs=search_dirs, never_download=never_download) _pip_re = re.compile(r'^pip-.*(zip|tar.gz|tar.bz2|tgz|tbz)$', re.I) -def install_pip(py_executable, search_dirs=None, never_download=False): +def install_pip(py_executable, search_dirs=None, never_download=False): if search_dirs is None: search_dirs = file_search_dirs() @@ -626,7 +616,9 @@ def install_pip(py_executable, search_dirs=None, never_download=False): easy_install_script = 'easy_install' if sys.platform == 'win32': easy_install_script = 'easy_install-script.py' - cmd = [py_executable, join(os.path.dirname(py_executable), easy_install_script), filename] + cmd = [join(os.path.dirname(py_executable), easy_install_script), filename] + if sys.platform == 'win32': + cmd.insert(0, py_executable) if filename == 'pip': if never_download: logger.fatal("Can't find any local distributions of pip to install " @@ -669,10 +661,113 @@ def filter_ez_setup(line, project_name='setuptools'): return Logger.DEBUG return Logger.INFO + +class UpdatingDefaultsHelpFormatter(optparse.IndentedHelpFormatter): + """ + Custom help formatter for use in ConfigOptionParser that updates + the defaults before expanding them, allowing them to show up correctly + in the help listing + """ + def expand_default(self, option): + if self.parser is not None: + self.parser.update_defaults(self.parser.defaults) + return optparse.IndentedHelpFormatter.expand_default(self, option) + + +class ConfigOptionParser(optparse.OptionParser): + """ + Custom option parser which updates its defaults by by checking the + configuration files and environmental variables + """ + def __init__(self, *args, **kwargs): + self.config = ConfigParser.RawConfigParser() + self.files = self.get_config_files() + self.config.read(self.files) + optparse.OptionParser.__init__(self, *args, **kwargs) + + def get_config_files(self): + config_file = os.environ.get('VIRTUALENV_CONFIG_FILE', False) + if config_file and os.path.exists(config_file): + return [config_file] + return [default_config_file] + + def update_defaults(self, defaults): + """ + Updates the given defaults with values from the config files and + the environ. Does a little special handling for certain types of + options (lists). + """ + # Then go and look for the other sources of configuration: + config = {} + # 1. config files + config.update(dict(self.get_config_section('virtualenv'))) + # 2. environmental variables + config.update(dict(self.get_environ_vars())) + # Then set the options with those values + for key, val in config.items(): + key = key.replace('_', '-') + if not key.startswith('--'): + key = '--%s' % key # only prefer long opts + option = self.get_option(key) + if option is not None: + # ignore empty values + if not val: + continue + # handle multiline configs + if option.action == 'append': + val = val.split() + else: + option.nargs = 1 + if option.action in ('store_true', 'store_false', 'count'): + val = strtobool(val) + try: + val = option.convert_value(key, val) + except optparse.OptionValueError: + e = sys.exc_info()[1] + print("An error occured during configuration: %s" % e) + sys.exit(3) + defaults[option.dest] = val + return defaults + + def get_config_section(self, name): + """ + Get a section of a configuration + """ + if self.config.has_section(name): + return self.config.items(name) + return [] + + def get_environ_vars(self, prefix='VIRTUALENV_'): + """ + Returns a generator with all environmental vars with prefix VIRTUALENV + """ + for key, val in os.environ.items(): + if key.startswith(prefix): + yield (key.replace(prefix, '').lower(), val) + + def get_default_values(self): + """ + Overridding to make updating the defaults after instantiation of + the option parser possible, update_defaults() does the dirty work. + """ + if not self.process_default_values: + # Old, pre-Optik 1.5 behaviour. + return optparse.Values(self.defaults) + + defaults = self.update_defaults(self.defaults.copy()) # ours + for option in self._get_all_options(): + default = defaults.get(option.dest) + if isinstance(default, basestring): + opt_str = option.get_opt_string() + defaults[option.dest] = option.check_value(opt_str, default) + return optparse.Values(defaults) + + def main(): - parser = optparse.OptionParser( + parser = ConfigOptionParser( version=virtualenv_version, - usage="%prog [OPTIONS] DEST_DIR") + usage="%prog [OPTIONS] DEST_DIR", + formatter=UpdatingDefaultsHelpFormatter()) parser.add_option( '-v', '--verbose', @@ -709,6 +804,13 @@ def main(): help="Don't give access to the global site-packages dir to the " "virtual environment") + parser.add_option( + '--system-site-packages', + dest='system_site_packages', + action='store_true', + help="Give access to the global site-packages dir to the " + "virtual environment") + parser.add_option( '--unzip-setuptools', dest='unzip_setuptools', @@ -727,7 +829,7 @@ def main(): dest='use_distribute', action='store_true', help='Use Distribute instead of Setuptools. Set environ variable ' - 'VIRTUALENV_USE_DISTRIBUTE to make it the default ') + 'VIRTUALENV_DISTRIBUTE to make it the default ') default_search_dirs = file_search_dirs() parser.add_option( @@ -777,6 +879,16 @@ def main(): popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env) raise SystemExit(popen.wait()) + # Force --use-distribute on Python 3, since setuptools is not available. + if majver > 2: + options.use_distribute = True + + if os.environ.get('PYTHONDONTWRITEBYTECODE') and not options.use_distribute: + print( + "The PYTHONDONTWRITEBYTECODE environment variable is " + "not compatible with setuptools. Either use --distribute " + "or unset PYTHONDONTWRITEBYTECODE.") + sys.exit(2) if not args: print('You must provide a DEST_DIR') parser.print_help() @@ -802,9 +914,15 @@ def main(): make_environment_relocatable(home_dir) return - create_environment(home_dir, site_packages=not options.no_site_packages, clear=options.clear, + if options.no_site_packages: + logger.warn('The --no-site-packages flag is deprecated; it is now ' + 'the default behavior.') + + create_environment(home_dir, + site_packages=options.system_site_packages, + clear=options.clear, unzip_setuptools=options.unzip_setuptools, - use_distribute=options.use_distribute or majver > 2, + use_distribute=options.use_distribute, prompt=options.prompt, search_dirs=options.search_dirs, never_download=options.never_download) @@ -821,6 +939,11 @@ def call_subprocess(cmd, show_stdout=True, part = part[:20]+"..."+part[-20:] if ' ' in part or '\n' in part or '"' in part or "'" in part: part = '"%s"' % part.replace('"', '\\"') + if hasattr(part, 'decode'): + try: + part = part.decode(sys.getdefaultencoding()) + except UnicodeDecodeError: + part = part.decode(sys.getfilesystemencoding()) cmd_parts.append(part) cmd_desc = ' '.join(cmd_parts) if show_stdout: @@ -850,8 +973,13 @@ def call_subprocess(cmd, show_stdout=True, if stdout is not None: stdout = proc.stdout encoding = sys.getdefaultencoding() + fs_encoding = sys.getfilesystemencoding() while 1: - line = stdout.readline().decode(encoding) + line = stdout.readline() + try: + line = line.decode(encoding) + except UnicodeDecodeError: + line = line.decode(fs_encoding) if not line: break line = line.rstrip() @@ -882,14 +1010,14 @@ def call_subprocess(cmd, show_stdout=True, % (cmd_desc, proc.returncode)) -def create_environment(home_dir, site_packages=True, clear=False, +def create_environment(home_dir, site_packages=False, clear=False, unzip_setuptools=False, use_distribute=False, prompt=None, search_dirs=None, never_download=False): """ Creates a new environment in ``home_dir``. - If ``site_packages`` is true (the default) then the global - ``site-packages/`` directory will be on the path. + If ``site_packages`` is true, then the global ``site-packages/`` + directory will be on the path. If ``clear`` is true (default False) then the environment will first be cleared. @@ -902,11 +1030,13 @@ def create_environment(home_dir, site_packages=True, clear=False, install_distutils(home_dir) + # use_distribute also is True if VIRTUALENV_DISTRIBUTE env var is set + # we also check VIRTUALENV_USE_DISTRIBUTE for backwards compatibility if use_distribute or os.environ.get('VIRTUALENV_USE_DISTRIBUTE'): - install_distribute(py_executable, unzip=unzip_setuptools, + install_distribute(py_executable, unzip=unzip_setuptools, search_dirs=search_dirs, never_download=never_download) else: - install_setuptools(py_executable, unzip=unzip_setuptools, + install_setuptools(py_executable, unzip=unzip_setuptools, search_dirs=search_dirs, never_download=never_download) install_pip(py_executable, search_dirs=search_dirs, never_download=never_download) @@ -1191,7 +1321,17 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear): # argument that has a space in it. Instead we have to quote # the value: py_executable = '"%s"' % py_executable - cmd = [py_executable, '-c', 'import sys; print(sys.prefix)'] + cmd = [py_executable, '-c', """ +import sys +prefix = sys.prefix +if sys.version_info[0] == 3: + prefix = prefix.encode('utf8') +if hasattr(sys.stdout, 'detach'): + sys.stdout = sys.stdout.detach() +elif hasattr(sys.stdout, 'buffer'): + sys.stdout = sys.stdout.buffer +sys.stdout.write(prefix) +"""] logger.info('Testing executable with %s %s "%s"' % tuple(cmd)) try: proc = subprocess.Popen(cmd, @@ -1205,14 +1345,17 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear): else: raise e - proc_stdout = proc_stdout.strip().decode(sys.getdefaultencoding()) + proc_stdout = proc_stdout.strip().decode("utf-8") proc_stdout = os.path.normcase(os.path.abspath(proc_stdout)) - if proc_stdout != os.path.normcase(os.path.abspath(home_dir)): + norm_home_dir = os.path.normcase(os.path.abspath(home_dir)) + if hasattr(norm_home_dir, 'decode'): + norm_home_dir = norm_home_dir.decode(sys.getfilesystemencoding()) + if proc_stdout != norm_home_dir: logger.fatal( 'ERROR: The executable %s is not functioning' % py_executable) logger.fatal( 'ERROR: It thinks sys.prefix is %r (should be %r)' - % (proc_stdout, os.path.normcase(os.path.abspath(home_dir)))) + % (proc_stdout, norm_home_dir)) logger.fatal( 'ERROR: virtualenv is not compatible with this system or executable') if sys.platform == 'win32': @@ -1248,11 +1391,14 @@ def install_activate(home_dir, bin_dir, prompt=None): files['activate_this.py'] = ACTIVATE_THIS - vname = os.path.basename(os.path.abspath(home_dir)) + home_dir = os.path.abspath(home_dir) + if hasattr(home_dir, 'decode'): + home_dir = home_dir.decode(sys.getfilesystemencoding()) + vname = os.path.basename(home_dir) for name, content in files.items(): content = content.replace('__VIRTUAL_PROMPT__', prompt or '') content = content.replace('__VIRTUAL_WINPROMPT__', prompt or '(%s)' % vname) - content = content.replace('__VIRTUAL_ENV__', os.path.abspath(home_dir)) + content = content.replace('__VIRTUAL_ENV__', home_dir) content = content.replace('__VIRTUAL_NAME__', vname) content = content.replace('__BIN_NAME__', os.path.basename(bin_dir)) writefile(os.path.join(bin_dir, name), content) @@ -1539,7 +1685,7 @@ def create_bootstrap_script(extra_text, python_version=''): def convert(s): b = base64.b64decode(s.encode('ascii')) return zlib.decompress(b).decode('utf-8') - + ##file site.py SITE_PY = convert(""" eJzVPP1z2zaWv/OvwMqTIZXKdD66nR2n7o2TOK3v3MTbpLO5dT06SoIk1hTJEqQV7c3d337vAwAB @@ -1752,85 +1898,85 @@ BDaonX65d/fwEjNqlDjLVIvM9X+XVxF7 ##file distribute_setup.py DISTRIBUTE_SETUP_PY = convert(""" -eJztG2tz27jxu34FKo+HVELRdu768lQ3k0ucq+fSJBM7dx8SDw2RkMQzX8eHZd2v7+4CIEESkp1e -25nOVO05ErFYLPa9C/DoD8Wu3uTZZDqdfp/ndVWXvGBRDP/Gy6YWLM6qmicJr2MAmlyu2C5v2JZn -Natz1lSCVaJuijrPkwpgcbRkBQ/v+Fo4lRz0i53HfmmqGgDCpIkEqzdxNVnFCaKHH4CEpwJWLUVY -5+WObeN6w+LaYzyLGI8imoALImydFyxfyZU0/vPzyYTBZ1XmqUF9QOMsTou8rJHaoKOW4PuP3Nlo -h6X4tQGyGGdVIcJ4FYfsXpQVMANp6KZ6+B2gonybJTmPJmlclnnpsbwkLvGM8aQWZcaBpxqo27FH -i4YAFeWsytlyx6qmKJJdnK0nuGleFGVelDFOzwsUBvHj9na4g9tbfzK5RnYRf0NaGDEKVjbwvcKt -hGVc0PaUdInKYl3yyJSnj0oxUczLK/2t2rVf6zgV+vsqS3kdbtohkRZIQfubl/SzlVBTx6gycjTJ -15NJXe7OOylWMWqfHP50dfExuLq8vpiIh1AA6Zf0/AJZLKe0EGzB3uWZMLBpspslsDAUVSVVJRIr -FkjlD8I0cp/xcl3N5BT84E9A5sJ2ffEgwqbmy0R4M/achlq4EvhVZgZ6PwSOuoSNLRbsdLKX6CNQ -dGA+iAakGLEVSEESxF743/xbiTxivzZ5DcqEj5tUZDWwfgXLZ6CLHRg8QkwFmDsQkyL5DsB888Lp -ltRkIUKB25z1xxQeB/4Hxg3j42GDbc70uJo67BgBR3AKZjikNv25o4BYB1/UitXNUDp55VcFB6tz -4duH4OeXl9ceGzCNPTNl9vrizctPb6+Dny4+Xl2+fwfrTU/9P/lnf522Q58+vsXHm7ouzk9Oil0R -+1JUfl6uT5QTrE4qcFShOIlOOr90Mp1cXVx/+nD9/v3bq+DNyx8vXg8WCs/OphMT6MOPPwSX7968 -x/Hp9MvkH6LmEa/5/Cfpjs7ZmX86eQd+9Nww4Uk7elxNrpo05WAV7AE+k7/nqZgXQCH9nrxsgPLS -/D4XKY8T+eRtHIqsUqCvhXQghBcfAEEgwX07mkwmpMbK17jgCZbw70zbgHiAmBOScpJ7l8M0WKcF -uEjYsvYmfnoX4Xfw1DgObsPf8jJznYsOCejAceV4arIEzJMo2EaACMS/FnW4jRSG1ksQFNjuBua4 -5lSC4kSEdGF+Xois3UULE6h9qC32JvthklcCw0tnkOtcEYubbgNBCwD+RG4diCp4vfF/AXhFmIcP -E9Amg9bPpzez8UYklm6gY9i7fMu2eXlnckxDG1QqoWEYGuO4bAfZ61a3nZnpTrK87jkwR0dsWM5R -yJ2BB+kWuAIdhdAP+Lfgsti2zOFr1JRaV8zkxDcWHmARgqAFel6WgosGrWd8md8LPWkVZ4DHpgpS -c2ZaiZdNDA/Eeu3Cf55WVviSB8i6/+v0/4BOkwwpFmYMpGhB9H0LYSg2wnaCkPLuOLVPx+e/4t8l -+n5UG3o0x1/wpzQQPVEN5Q5kVNPaVYqqSeq+8sBSEljZoOa4eIClKxruVil5DCnq5XtKTVznVd4k -Ec0iTknbWa/RVpQVREC0ymFdlQ57bVYbLHkl9MaMx5FI+E6tiqwcqoGCd7owOT+u5sXuOPLh/8g7 -ayIBn2PWUYFBXf2AiLPKQYcsD89uZk9njzILILjdi5Fx79n/PloHnz1c6vTqEYdDgJSzIfngD0VZ -u6ce6+Svst9+3WMk+Utd9ekAHVD6vSDTkPIe1Bhqx4tBijTgwMJIk6zckDtYoIo3pYUJi7M/eiCc -YMXvxOK6bETrXVNOJl41UJhtKXkmHeXLKk/QUJEXk24JQ9MABP91Te5teRVILgn0pk5xtw7ApChr -qyiJRf6medQkosJK6Uu7G6fjyhBw7Il7PwzR9NbrA0jl3PCK13Xp9gDBUILICLrWJBxnKw7as3Aa -6lfAQxDlHLrapYXYV9a0M2Xu/Xu8xX7m9ZjhqzLdnXYs+W4xfa5Wm1nIGu6ij0+lza/ybJXEYd1f -WoCWyNohJG/izsCfDAVnatWY9zgdQh1kJP62hELXHUFMr8mz07Yis+dg9Gbc7xbHULBArY+C5veQ -rlMl8yWbjvFhKyXkmVNjvalMHTBvN9gmoP6KagvAt7LJMLr47EMiQDxWfLp1wFmal0hqiCmaJnQV -l1XtgWkCGut0BxDvtMth80/GvhzfAv8l+5K5r5qyhFWSnUTMjssZIO/5f+FjFYeZw1iVpdDi2n3R -HxNJZbEP0EA2MDnDvj8P/MQNTsHITI2d/G5fMfs11vCkGLLPYqx63WYzsOq7vH6TN1n0u432UTJt -JI5SnUPuKghLwWsx9FYBbo4ssM2iMFwdiNK/N2bRxxK4VLxSXhjq4dddi681V4qrbSMRbC/JQypd -qM2pGB/XsnOXQSUvk8JbRfstqzaUmS2xHXnPk7iHXVte1qRLUYJFczLl1isQLmz/UdJLHZO2Dwla -QFMEu+3x45Zhj8MFHxFu9Ooii2TYxB4tZ86JM/PZreTJLa7Yy/3Bv4hS6BSy7XfpVUTkyz0SB9vp -ag/UYQ3zLKJeZ8Ex0C/FCt0NtjXDuuFJ13Gl/dVYSdW+FsN/JGHoxSISalNCFbykKCSwza36zWWC -ZdXEsEZrrDRQvLDNrde/BagO2PrpJcc+lmHr39ABKunLpnbZy1VRkOx5i0Xmf/xeAEv3pOAaVGWX -ZYjoYF+qtWpY6yBvlmhn58jzl/d5jFpdoOVGLTldhjMK6W3x0loP+fhq6uGW+i5bEqW45I6Gj9hH -waMTiq0MAwwkZ0A6W4LJ3XnYYd+iEmI0lK4FNDnMyxLcBVnfABnslrRa20uMZx21IHitwvqDTTlM -EMoQ9IFHg4xKspGIlszy2HS7nI6AVFqAyLqxkc9UkoC1LCkGEKBL9AE84LeEO1jUhO86pyRh2EtC -lqBkrCpBcNcVeK9l/uCumixEb6acIA2b49Re9dizZ3fb2YGsWDb/u/pETdeG8Vp7liv5/FDCPITF -nBkKaVuyjNTex7lsJY3a7Oan4FU1Ghiu5OM6IOjx83aRJ+BoYQHT/nkFHrtQ6YJF0hMSm27CGw4A -T87nh/P2y1DpjtaInugf1Wa1zJjuwwyyisCa1NkhTaU39VYpOlEVoG9w0Qw8cBfgAbK6C/k/U2zj -4V1TkLdYycRaZHJHENl1QCJvCb4tUDi0R0DEM9NrADfGsAu9dMehI/BxOG2nmWfpab3sQ5jtUrXr -Thu6WR8QGksBX0+AbBJjQ0DOgCiW+Zy5CTC0rWMLlsqtad7ZM8GVzQ+Rbk8MMcB6pncxRrRvwkNl -zTar0LSLG/Le4LFCNdqzRJCJrY7M+BSirOO/f/vaP67wSAtPR338M+rsfkR0MrhhIMllT1GSqHGq -Ji/WtvjTtY2qDeiHLbFpfg/JMphGYHbI3SLhodiAsgvdqR6E8bjCXuMYrE/9p+wOAmGv+Q6Jl9qD -MXe/fq2w7uj5H0xH9YUAoxFsJwWoVqfNvvrXxbme2Y95hh3DORYHQ3evFx95yyVI/85ky6pfHnUc -6DqklMKbh+bmugMGTEZaAHJCLRCJkEeyeVNj0oveY8t3nc3pOmeYsBns8ZhUfUX+QKJqvsGJzpkr -ywGygx6sdFW9CDKaJP2hmuExy3ml6mwrjo58e8cNMAU+dFEe61NjVaYjwLxliaidiqHit853yM9W -0RS/Uddcs4XnDZp/qoWPNxHwq8E9jeGQPBRM7zhs2GdWIINq1/Q2IyzjmG7TS3CqsnEPbNXEKk7s -aaM7V91FnshoEziDnfT98T5fM/TO++C0r+YrSKfbI2JcXzHFCGAI0t5YadvWrY10vMdyBTDgqRj4 -/zQFIoJ8+YvbHTj6utddQEkIdZeMbI91GXrOTdL9NVN6LtckF1TSUkw95oYtwtbM0Y2FsQsiTu3u -iUdgcipSuU8+NZEVYbdRFYkNK1KHNlXnB2GBLz2dc/ddFfAkbV/h9AakjPyf5uXYAVo9jwQ/4HeG -PvwVyl9G8tGsLiVqHeThtMjqPglgf4okWVW3OdF+Vhky8mGCM0xKBlupNwZHu62ox49tpUeG0Skb -yuvx/T1mYkNP8wj4rJfPt0Gvy+mOVCiBCBTeoSrF+MuWX+9VUJkBX/zwwxxFiCEExCm/f4WCxqMU -9mCc3RcTnhpXDd/exdY9yT4Qn961fOs/OsiK2SOm/Sjn/is2ZbCiV3YobbFXHmpQ65fsU7YRbRTN -vpd9zL3hzHIypzBTszYoSrGKH1zt6bvg0gY5Cg3qUBLq73vjvN/YG/5WF+o04Gf9BaJkJB6MsPn8 -7PymzaJo0NPX7kTWpKLk8kKe2TtBUHljVeZb83kJe5X3IOQmhgk6bAJw+LBmWVfYZkYlXmAYkXgs -jZk6L5RkaGaRxLXr4DoLZ/Z5PjidM1ig2WcupnANj4gkVVgaSiqsB64JaKa8Rfid5I+9h9Qjt/pM -kM8tVH4tpR2NwNymEqVDRwvd5Vh1VIhtXGvHxrZKO9tiGFIjR6o6VParkNOBonHuqK9H2mx378H4 -oQ7VEdsKBywqBBIsQd7IbkEhjVs9US4kUyohUjxnMI9Hx10S+rlFc+mXCureEbJhvCEjDmFiCpO3 -lY9ZW/9M3/8oz3sx2QavWIIz6pUn9sR9oC0U8xHDgty48riKc9e7Qoz4hq1K4yDp5YfLfzPhs64I -HCIEhewro3mby3y3wCxJZGFuF80Ri0Qt1K05DN54Et9GQNTUaJjDtsdwiyF5vh4a6rP5zoNR9Mil -Qbt1O8SyiuIFHSpIX4gKSb4wfiBiizK/jyMRydcf4pWCN1+0qIzmQ6Qu3KVed6ihO45mxdEPHDbK -7FJQ2ICh3pBgQCTPQmz3QMfaKm+EAy0bqD/21yi9NAysUsqxMq/rqS1ZNuGLLFJBg+6M7dlUNpe3 -+Trh9ehA+97fR7NKVU9WpAEOm4e1NFWMC5/7SdqXMVlIOZxAKRLdffkn6ly/G/EVOejeJPRA83nA -m/68cfvZ1I326A7Nms6Xpfujs17D32diKNp+9v975Tmgl047M2E0zBPeZOGmS+G6J8NI+VGN9PaM -oY1tOLa28I0kCUEFv36jRUIVccFSXt7hWX7OOB3A8m7CsmmNp031zr+5wXThszMPzRvZlJ3hFZtE -zFULYC4e6P0lyJnnKc8gdkfOjRHiNMbTm7YfgE0zM8H83H/j4oY9b6dNNA66n2N9mablnnEpuRLJ -SjbOF1N/6rFU4MWBaoExpTuZURep6SBYQchjRroEUAK3JWvxZyivGOl7xHp/3YUG9Mn4rle+zbCq -TvMI3wqT/h+b/QRQiDKNq4pe0+qO7DSSGJSQGl4g86jy2S1uwGkvhuArWoB0JYiQ0TVqIFRxAL7C -ZLUjBz2xTE15QkSk+ModXRYBfhLJ1ADUeLDHrrQYNHa5Y2tRK1zurH+DQiVkYV7szN9QiEHGr24E -SobK6+QaQDG+uzZocgD04abNC7RYRvmAHsDYnKwmbfUBK5E/hIiiQHqVsxpW/e+BXzrShPXoURda -Kr4SKFUxONbvIH1eQAUauWqNvivTdC2IWz7+OQiI98mwb/Ptt3+h3CWMUxAfFU1A3+mfT0+NZCxZ -+Ur0GqdU/jan+CjQWgWrkPsmyabhmz099jfmvvDYtwaH0MZwvihdwHDmIZ4XM2u5EKYFwfjYJJCA -fnc6NWQbInUlZjtAKal3bUcPI0R3YrfQCujjcT+oL9LsIAHOzGMKm7w6rBkEmRtd9ABcrQW3Vouq -S+LAVG7IvIHSGeM9Iukc0NrW0ALvM2h0dk5SDjdAXCdjhXc2BmzofPEJgOEGdnYAUBUIpsX+C7de -pYri5AS4n0AVfDaugOlG8aC6tt1TIGRBtFy7oIRT5VrwTTa88CR0OEh5TDX3vcf2XPLrAsHloddd -SQUueLVTUNr5Hb7+r2L88OU2IC6m+y+YPAVUkQcBkhoE6l1KoruNmmfnN7PJPwERhOVk +eJztG2tz2zbyu34FTh4PqYSi7TT3GM+pM2nj9DzNJZnYaT8kHhoiIYk1X+XDsvrrb3cBkCAJyc61 +dzM3c7qrIxGLxWLfuwCP/lTs6k2eTabT6Xd5Xld1yQsWxfBvvGxqweKsqnmS8DoGoMnliu3yhm15 +VrM6Z00lWCXqpqjzPKkAFkdLVvDwjq+FU8lBv9h57JemqgEgTJpIsHoTV5NVnCB6+AFIeCpg1VKE +dV7u2DauNyyuPcaziPEoogm4IMLWecHylVxJ4z8/n0wYfFZlnhrUBzTO4rTIyxqpDTpqCb7/yJ2N +dliKXxsgi3FWFSKMV3HI7kVZATOQhm6qh98BKsq3WZLzaJLGZZmXHstL4hLPGE9qUWYceKqBuh17 +tGgIUFHOqpwtd6xqiiLZxdl6gpvmRVHmRRnj9LxAYRA/bm+HO7i99SeTa2QX8TekhRGjYGUD3yvc +SljGBW1PSZeoLNYlj0x5+qgUE8W8vNLfql37tY5Tob+vspTX4aYdEmmBFLS/eUk/Wwk1dYwqI0eT +fD2Z1OXuvJNiFaP2yeFPVxcfg6vL64uJeAgFkH5Jzy+QxXJKC8EW7F2eCQObJrtZAgtDUVVSVSKx +YoFU/iBMI/cZL9fVTE7BD/4EZC5s1xcPImxqvkyEN2PPaaiFK4FfZWag90PgqEvY2GLBTid7iT4C +RQfmg2hAihFbgRQkQeyF/80fSuQR+7XJa1AmfNykIquB9StYPgNd7MDgEWIqwNyBmBTJdwDmmxdO +t6QmCxEK3OasP6bwOPA/MG4YHw8bbHOmx9XUYccIOIJTMMMhtenPHQXEOviiVqxuhtLJK78qOFid +C98+BD+/urz22IBp7Jkps9cXb159ensd/HTx8ery/TtYb3rq/8V/8XLaDn36+BYfb+q6OD85KXZF +7EtR+Xm5PlFOsDqpwFGF4iQ66fzSyXRydXH96cP1+/dvr4I3r368eD1YKDw7m05MoA8//hBcvnvz +Hsen0y+Tf4qaR7zm85+kOzpnZ/7p5B340XPDhCft6HE1uWrSlINVsAf4TP6Rp2JeAIX0e/KqAcpL +8/tcpDxO5JO3cSiySoG+FtKBEF58AASBBPftaDKZkBorX+OCJ1jCvzNtA+IBYk5IyknuXQ7TYJ0W +4CJhy9qb+OldhN/BU+M4uA1/y8vMdS46JKADx5XjqckSME+iYBsBIhD/WtThNlIYWi9BUGC7G5jj +mlMJihMR0oX5eSGydhctTKD2obbYm+yHSV4JDC+dQa5zRSxuug0ELQD4E7l1IKrg9cb/BeAVYR4+ +TECbDFo/n97MxhuRWLqBjmHv8i3b5uWdyTENbVCphIZhaIzjsh1kr1vddmamO8nyuufAHB2xYTlH +IXcGHqRb4Ap0FEI/4N+Cy2LbMoevUVNqXTGTE99YeIBFCIIW6HlZCi4atJ7xZX4v9KRVnAEemypI +zZlpJV42MTwQ67UL/3laWeFLHiDr/q/T/wM6TTKkWJgxkKIF0XcthKHYCNsJQsq749Q+HZ//in+X +6PtRbejRHH/Bn9JA9EQ1lDuQUU1rVymqJqn7ygNLSWBlg5rj4gGWrmi4W6XkMaSol+8pNXGd7/Mm +iWgWcUraznqNtqKsIAKiVQ7rqnTYa7PaYMkroTdmPI5EwndqVWTlUA0UvNOFyflxNS92x5EP/0fe +WRMJ+ByzjgoM6uoHRJxVDjpkeXh2M3s6e5RZAMHtXoyMe8/+99E6+OzhUqdXjzgcAqScDckHfyjK +2j31WCd/lf326x4jyV/qqk8H6IDS7wWZhpT3oMZQO14MUqQBBxZGmmTlhtzBAlW8KS1MWJz92QPh +BCt+JxbXZSNa75pyMvGqgcJsS8kz6ShfVnmChoq8mHRLGJoGIPiva3Jvy6tAckmgN3WKu3UAJkVZ +W0VJLPI3zaMmERVWSl/a3TgdV4aAY0/c+2GIprdeH0Aq54ZXvK5LtwcIhhJERtC1JuE4W3HQnoXT +UL8CHoIo59DVLi3EvrKmnSlz79/jLfYzr8cMX5Xp7rRjybeL6XO12sxC1nAXfXwqbf4+z1ZJHNb9 +pQVoiawdQvIm7gz8yVBwplaNeY/TIdRBRuJvSyh03RHE9Jo8O20rMnsORm/G/XZxDAUL1PooaH4P +6TpVMl+y6RgftlJCnjk11pvK1AHzdoNtAuqvqLYAfCubDKOLzz4kAsRjxadbB5yleYmkhpiiaUJX +cVnVHpgmoLFOdwDxTrscNv9k7MvxLfBfsi+Z+31TlrBKspOI2XE5A+Q9/y98rOIwcxirshRaXLsv ++mMiqSz2ARrIBiZn2PfngZ+4wSkYmamxk9/tK2a/xhqeFEP2WYxVr9tsBlZ9l9dv8iaLfrfRPkqm +jcRRqnPIXQVhKXgtht4qwM2RBbZZFIarA1H698Ys+lgCl4pXygtDPfy6a/G15kpxtW0kgu0leUil +C7U5FePjWnbuMqjkZVJ4q2i/ZdWGMrMltiPveRL3sGvLy5p0KUqwaE6m3HoFwoXtP0p6qWPS9iFB +C2iKYLc9ftwy7HG44CPCjV5dZJEMm9ij5cw5cWY+u5U8ucUVe7k/+BdRCp1Ctv0uvYqIfLlH4mA7 +Xe2BOqxhnkXU6yw4BvqlWKG7wbZmWDc86TqutL8aK6na12L4jyQMvVhEQm1KqIKXFIUEtrlVv7lM +sKyaGNZojZUGihe2ufX6twDVAVs/veTYxzJs/Rs6QCV92dQue7kqCpI9b7HI/I/fC2DpnhRcg6rs +sgwRHexLtVYNax3kzRLt7Bx5/uo+j1GrC7TcqCWny3BGIb0tXlrrIR9fTT3cUt9lS6IUl9zR8BH7 +KHh0QrGVYYCB5AxIZ0swuTsPO+xbVEKMhtK1gCaHeVmCuyDrGyCD3ZJWa3uJ8ayjFgSvVVh/sCmH +CUIZgj7waJBRSTYS0ZJZHptul9MRkEoLEFk3NvKZShKwliXFAAJ0iT6AB/yWcAeLmvBd55QkDHtJ +yBKUjFUlCO66Au+1zB/cVZOF6M2UE6Rhc5zaqx579uxuOzuQFcvmf1efqOnaMF5rz3Ilnx9KmIew +mDNDIW1LlpHa+ziXraRRm938FLyqRgPDlXxcBwQ9ft4u8gQcLSxg2j+vwGMXKl2wSHpCYtNNeMMB +4Mn5/HDefhkq3dEa0RP9o9qslhnTfZhBVhFYkzo7pKn0pt4qRSeqAvQNLpqBB+4CPEBWdyH/Z4pt +PLxrCvIWK5lYi0zuCCK7DkjkLcG3BQqH9giIeGZ6DeDGGHahl+44dAQ+DqftNPMsPa1XfQizXap2 +3WlDN+sDQmMp4OsJkE1ibAjIGRDFMp8zNwGGtnVswVK5Nc07eya4svkh0u2JIQZYz/Quxoj2TXio +rNlmFZp2cUPeGzxWqEZ7lggysdWRGZ9ClHX8929f+8cVHmnh6aiPf0ad3Y+ITgY3DCS57ClKEjVO +1eTF2hZ/urZRtQH9sCU2ze8hWQbTCMwOuVskPBQbUHahO9WDMB5X2Gscg/Wp/5TdQSDsNd8h8VJ7 +MObu168V1h09/4PpqL4QYDSC7aQA1eq02Vf/ujjXM/sxz7BjOMfiYOju9eIjb7kE6d+ZbFn1y6OO +A12HlFJ489DcXHfAgMlIC0BOqAUiEfJINm9qTHrRe2z5rrM5XecMEzaDPR6Tqq/IH0hUzTc40Tlz +ZTlAdtCDla6qF0FGk6Q/VDM8ZjmvVJ1txdGRb++4AabAhy7KY31qrMp0BJi3LBG1UzFU/Nb5DvnZ +KpriN+qaa7bwvEHzT7Xw8SYCfjW4pzEckoeC6R2HDfvMCmRQ7ZreZoRlHNNteglOVTbuga2aWMWJ +PW1056q7yBMZbQJnsJO+P97na4beeR+c9tV8Bel0e0SM6yumGAEMQdobK23burWRjvdYrgAGPBUD +/5+mQESQL39xuwNHX/e6CygJoe6Ske2xLkPPuUm6v2ZKz+Wa5IJKWoqpx9ywRdiaObqxMHZBxKnd +PfEITE5FKvfJpyayIuw2qiKxYUXq0Kbq/CAs8KWnc+6+qwKepO0rnN6AlJH/07wcO0Cr55HgB/zO +0Id/j/KXkXw0q0uJWgd5OC2yuk8C2J8iSVbVbU60n1WGjHyY4AyTksFW6o3B0W4r6vFjW+mRYXTK +hvJ6fH+PmdjQ0zwCPuvl823Q63K6IxVKIAKFd6hKMf6y5dd7FVRmwBc//DBHEWIIAXHK71+hoPEo +hT0YZ/fFhKfGVcO3d7F1T7IPxKd3Ld/6jw6yYvaIaT/Kuf+KTRms6JUdSlvslYca1Pol+5RtRBtF +s+9kH3NvOLOczCnM1KwNilKs4gdXe/ouuLRBjkKDOpSE+vveOO839oa/1YU6DfhZf4EoGYkHI2w+ +Pzu/abMoGvT0tTuRNakoubyQZ/ZOEFTeWJX51nxewl7lPQi5iWGCDpsAHD6sWdYVtplRiRcYRiQe +S2OmzgslGZpZJHHtOrjOwpl9ng9O5wwWaPaZiylcwyMiSRWWhpIK64FrApopbxF+K/lj7yH1yK0+ +E+RzC5VfS2lHIzC3qUTp0NFCdzlWHRViG9fasbGt0s62GIbUyJGqDpX9KuR0oGicO+rrkTbb3Xsw +fqhDdcS2wgGLCoEES5A3sltQSONWT5QLyZRKiBTPGczj0XGXhH5u0Vz6pYK6d4RsGG/IiEOYmMLk +beVj1tY/0/c/yvNeTLbBK5bgjHrliT1xH2gLxXzEsCA3rjyu4tz1rhAjvmGr0jhIevXh8g8mfNYV +gUOEoJB9ZTRvc5nvFpgliSzM7aI5YpGohbo1h8EbT+LbCIiaGg1z2PYYbjEkz9dDQ30233kwih65 +NGi3bodYVlG8oEMF6QtRIckXxg9EbFHm93EkIvn6Q7xS8OaLFpXRfIjUhbvU6w41dMfRrDj6gcNG +mV0KChsw1BsSDIjkWYjtHuhYW+WNcKBlA/XH/hqll4aBVUo5VuZ1PbUlyyZ8kUUqaNCdsT2byuby +Nl8nvB4daN/7+2hWqerJijTAYfOwlqaKceFzP0n7MiYLKYcTKEWiuy//RJ3rdyO+Igfdm4QeaD4P +eNOfN24/m7rRHt2hWdP5snR/dNZr+PtMDEXbz/5/rzwH9NJpZyaMhnnCmyzcdClc92QYKT+qkd6e +MbSxDcfWFr6RJCGo4NdvtEioIi5Yyss7PMvPGacDWN5NWDat8bSp3vk3N5gufHbmoXkjm7IzvGKT +iLlqAczFA72/BDnzPOUZxO7IuTFCnMZ4etP2A7BpZiaYn/tvXNyw5+20icZB93OsL9O03DMuJVci +WcnG+WLqTz2WCrw4UC0wpnQnM+oiNR0EKwh5zEiXAErgtmQt/gzlFSN9j1jvr7vQgD4Z3/XKtxlW +1Wke4Vth0v9js58AClGmcVXRa1rdkZ1GEoMSUsMLZB5VPrvFDTjtxRB8RQuQrgQRMrpGDYQqDsBX +mKx25KAnlqkpT4iIFF+5o8siwE8imRqAGg/22JUWg8Yud2wtaoXLnfVvUKiELMyLnfkbCjHI+NWN +QMlQeZ1cAyjGd9cGTQ6APty0eYEWyygf0AMYm5PVpK0+YCXyhxBRFEivclbDqv898EtHmrAePepC +S8VXAqUqBsf6HaTPC6hAI1et0Xdlmq4FccvHPwcB8T4Z9m1evvwb5S5hnIL4qGgC+k7/enpqJGPJ +ylei1zil8rc5xUeB1ipYhdw3STYN3+zpsb8z94XHXhocQhvD+aJ0AcOZh3hezKzlQpgWBONjk0AC ++t3p1JBtiNSVmO0ApaTetR09jBDdid1CK6CPx/2gvkizgwQ4M48pbPLqsGYQZG500QNwtRbcWi2q +LokDU7kh8wZKZ4z3iKRzQGtbQwu8z6DR2TlJOdwAcZ2MFd7ZGLCh88UnAIYb2NkBQFUgmBb7b9x6 +lSqKkxPgfgJV8Nm4AqYbxYPq2nZPgZAF0XLtghJOlWvBN9nwwpPQ4SDlMdXc9x7bc8mvCwSXh153 +JRW44NVOQWnnd/j6v4rxw5fbgLiY7r9g8hRQRR4ESGoQqHcpie42ap6d38wm/wIwBuVg """) ##file activate.sh diff --git a/src/virtualenv-1.7/virtualenv_support/__init__.py b/src/virtualenv-1.7/virtualenv_support/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/virtualenv-1.7/virtualenv_support/activate.bat b/src/virtualenv-1.7/virtualenv_support/activate.bat new file mode 100644 index 0000000000000000000000000000000000000000..1b06941cea035f9313f12408520276bf38560edd --- /dev/null +++ b/src/virtualenv-1.7/virtualenv_support/activate.bat @@ -0,0 +1,31 @@ +@echo off +set VIRTUAL_ENV=__VIRTUAL_ENV__ + +if not defined PROMPT ( + set PROMPT=$P$G +) + +if defined _OLD_VIRTUAL_PROMPT ( + set PROMPT=%_OLD_VIRTUAL_PROMPT% +) + +if defined _OLD_VIRTUAL_PYTHONHOME ( + set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% +) + +set _OLD_VIRTUAL_PROMPT=%PROMPT% +set PROMPT=__VIRTUAL_WINPROMPT__ %PROMPT% + +if defined PYTHONHOME ( + set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% + set PYTHONHOME= +) + +if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH%; goto SKIPPATH + +set _OLD_VIRTUAL_PATH=%PATH% + +:SKIPPATH +set PATH=%VIRTUAL_ENV%\__BIN_NAME__;%PATH% + +:END diff --git a/src/virtualenv-1.7/virtualenv_support/activate.csh b/src/virtualenv-1.7/virtualenv_support/activate.csh new file mode 100644 index 0000000000000000000000000000000000000000..20fe95d45fc032e21031dfc64875bba0696879de --- /dev/null +++ b/src/virtualenv-1.7/virtualenv_support/activate.csh @@ -0,0 +1,32 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi <davidedb@gmail.com>. + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelavent variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "__VIRTUAL_ENV__" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/__BIN_NAME__:$PATH" + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if ("__VIRTUAL_PROMPT__" != "") then + set env_name = "__VIRTUAL_PROMPT__" +else + if (`basename "$VIRTUAL_ENV"` == "__") then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + set env_name = `basename \`dirname "$VIRTUAL_ENV"\`` + else + set env_name = `basename "$VIRTUAL_ENV"` + endif +endif +set prompt = "[$env_name] $prompt" +unset env_name + +rehash + diff --git a/src/virtualenv-1.7/virtualenv_support/activate.fish b/src/virtualenv-1.7/virtualenv_support/activate.fish new file mode 100644 index 0000000000000000000000000000000000000000..fcb31d8e6d14c1ab2800461e142dbf72211e651b --- /dev/null +++ b/src/virtualenv-1.7/virtualenv_support/activate.fish @@ -0,0 +1,79 @@ +# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org) +# you cannot run it directly + +function deactivate -d "Exit virtualenv and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + functions -e fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + end + + set -e VIRTUAL_ENV + if test "$argv[1]" != "nondestructive" + # Self destruct! + functions -e deactivate + end +end + +# unset irrelavent variables +deactivate nondestructive + +set -gx VIRTUAL_ENV "__VIRTUAL_ENV__" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/__BIN_NAME__" $PATH + +# unset PYTHONHOME if set +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish shell uses a function, instead of env vars, + # to produce the prompt. Overriding the existing function is easy. + # However, adding to the current prompt, instead of clobbering it, + # is a little more work. + set -l oldpromptfile (tempfile) + if test $status + # save the current fish_prompt function... + echo "function _old_fish_prompt" >> $oldpromptfile + echo -n \# >> $oldpromptfile + functions fish_prompt >> $oldpromptfile + # we've made the "_old_fish_prompt" file, source it. + . $oldpromptfile + rm -f $oldpromptfile + + if test -n "__VIRTUAL_PROMPT__" + # We've been given us a prompt override. + # + # FIXME: Unsure how to handle this *safely*. We could just eval() + # whatever is given, but the risk is a bit much. + echo "activate.fish: Alternative prompt prefix is not supported under fish-shell." 1>&2 + echo "activate.fish: Alter the fish_prompt in this file as needed." 1>&2 + end + + # with the original prompt function renamed, we can override with our own. + function fish_prompt + set -l _checkbase (basename "$VIRTUAL_ENV") + if test $_checkbase = "__" + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + printf "%s[%s]%s %s" (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) (_old_fish_prompt) + else + printf "%s(%s)%s%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) (_old_fish_prompt) + end + end + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + end +end + diff --git a/src/virtualenv-1.7/virtualenv_support/activate.sh b/src/virtualenv-1.7/virtualenv_support/activate.sh new file mode 100644 index 0000000000000000000000000000000000000000..45458c63892fbf8e134102351e373b1674467418 --- /dev/null +++ b/src/virtualenv-1.7/virtualenv_support/activate.sh @@ -0,0 +1,76 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "$_OLD_VIRTUAL_PATH" ] ; then + PATH="$_OLD_VIRTUAL_PATH" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then + PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then + hash -r + fi + + if [ -n "$_OLD_VIRTUAL_PS1" ] ; then + PS1="$_OLD_VIRTUAL_PS1" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "$1" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelavent variables +deactivate nondestructive + +VIRTUAL_ENV="__VIRTUAL_ENV__" +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/__BIN_NAME__:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "$PYTHONHOME" ] ; then + _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" + unset PYTHONHOME +fi + +if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then + _OLD_VIRTUAL_PS1="$PS1" + if [ "x__VIRTUAL_PROMPT__" != x ] ; then + PS1="__VIRTUAL_PROMPT__$PS1" + else + if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" + else + PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" + fi + fi + export PS1 +fi + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then + hash -r +fi diff --git a/src/virtualenv-1.7/virtualenv_support/deactivate.bat b/src/virtualenv-1.7/virtualenv_support/deactivate.bat new file mode 100644 index 0000000000000000000000000000000000000000..a575a94ca15916d8feadf785dc1ad690def55c19 --- /dev/null +++ b/src/virtualenv-1.7/virtualenv_support/deactivate.bat @@ -0,0 +1,17 @@ +@echo off + +if defined _OLD_VIRTUAL_PROMPT ( + set PROMPT=%_OLD_VIRTUAL_PROMPT% +) +set _OLD_VIRTUAL_PROMPT= + +if defined _OLD_VIRTUAL_PYTHONHOME ( + set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% + set _OLD_VIRTUAL_PYTHONHOME= +) + +if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH% + +set _OLD_VIRTUAL_PATH= + +:END diff --git a/src/virtualenv-1.7/virtualenv_support/distribute-0.6.24.tar.gz b/src/virtualenv-1.7/virtualenv_support/distribute-0.6.24.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..654fb50f8765368b176ba349d0e6680191396fa5 Binary files /dev/null and b/src/virtualenv-1.7/virtualenv_support/distribute-0.6.24.tar.gz differ diff --git a/src/virtualenv-1.7/virtualenv_support/distutils.cfg b/src/virtualenv-1.7/virtualenv_support/distutils.cfg new file mode 100644 index 0000000000000000000000000000000000000000..1af230ec911a5d31aa8c4bed50bff2e8e1af8512 --- /dev/null +++ b/src/virtualenv-1.7/virtualenv_support/distutils.cfg @@ -0,0 +1,6 @@ +# This is a config file local to this virtualenv installation +# You may include options that will be used by all distutils commands, +# and by easy_install. For instance: +# +# [easy_install] +# find_links = http://mylocalsite diff --git a/src/virtualenv-1.6.4/virtualenv_support/pip-1.0.2.tar.gz b/src/virtualenv-1.7/virtualenv_support/pip-1.0.2.tar.gz similarity index 100% rename from src/virtualenv-1.6.4/virtualenv_support/pip-1.0.2.tar.gz rename to src/virtualenv-1.7/virtualenv_support/pip-1.0.2.tar.gz diff --git a/src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.4.egg b/src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.4.egg similarity index 100% rename from src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.4.egg rename to src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.4.egg diff --git a/src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.5.egg b/src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.5.egg similarity index 100% rename from src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.5.egg rename to src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.5.egg diff --git a/src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.6.egg b/src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.6.egg similarity index 100% rename from src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.6.egg rename to src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.6.egg diff --git a/src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.7.egg b/src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.7.egg similarity index 100% rename from src/virtualenv-1.6.4/virtualenv_support/setuptools-0.6c11-py2.7.egg rename to src/virtualenv-1.7/virtualenv_support/setuptools-0.6c11-py2.7.egg