parallelism

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
This commit is contained in:
2018-03-11 15:09:33 -04:00
parent 473ebbf0ad
commit 02ff466860
3 changed files with 18 additions and 5 deletions
+5 -1
View File
@@ -47,7 +47,7 @@ from .environments import (
PYENV_INSTALLED, PIPENV_YES, PIPENV_DONT_LOAD_ENV,
PIPENV_DEFAULT_PYTHON_VERSION, PIPENV_MAX_SUBPROCESS,
PIPENV_DONT_USE_PYENV, SESSION_IS_INTERACTIVE, PIPENV_USE_SYSTEM,
PIPENV_DOTENV_LOCATION, PIPENV_SHELL
PIPENV_DOTENV_LOCATION, PIPENV_SHELL, PIPENV_PYTHON
)
# Backport required for earlier versions of Python.
@@ -427,6 +427,10 @@ def find_a_system_python(python):
def ensure_python(three=None, python=None):
# Support for the PIPENV_PYTHON environment variable.
if PIPENV_PYTHON and python is False and three is None:
python = PIPENV_PYTHON
def abort():
click.echo(
'You can specify specific versions of Python with:\n {0}'.format(
+3
View File
@@ -10,6 +10,9 @@ os.environ.pop('__PYVENV_LAUNCHER__', None)
# Shell compatibility mode, for mis-configured shells.
PIPENV_SHELL_FANCY = bool(os.environ.get('PIPENV_SHELL_FANCY'))
# Support for both Python 2 and Python 3 at the same time.
PIPENV_PYTHON = os.environ.get('PIPENV_PYTHON')
# Create the virtualenv in the project, instead of with pew.
PIPENV_VENV_IN_PROJECT = bool(os.environ.get('PIPENV_VENV_IN_PROJECT')) or os.path.isdir('.venv')
+10 -4
View File
@@ -16,7 +16,7 @@ from pip import ConfigOptionParser
from .utils import (
mkdir_p, convert_deps_from_pip, pep423_name, recase_file,
find_requirements, is_file, is_vcs, python_version, cleanup_toml,
is_installable_file, is_valid_url, normalize_drive
is_installable_file, is_valid_url, normalize_drive, python_version
)
from .environments import (
PIPENV_MAX_DEPTH,
@@ -24,7 +24,8 @@ from .environments import (
PIPENV_VENV_IN_PROJECT,
PIPENV_VIRTUALENV,
PIPENV_NO_INHERIT,
PIPENV_TEST_INDEX
PIPENV_TEST_INDEX,
PIPENV_PYTHON
)
if PIPENV_PIPFILE:
@@ -37,7 +38,7 @@ if PIPENV_PIPFILE:
class Project(object):
"""docstring for Project"""
def __init__(self, which=None, chdir=True):
def __init__(self, which=None, python_version=None, chdir=True):
super(Project, self).__init__()
self._name = None
self._virtualenv_location = None
@@ -47,6 +48,7 @@ class Project(object):
self._requirements_location = None
self._original_dir = os.path.abspath(os.curdir)
self.which = which
self.python_version = python_version
# Hack to skip this during pipenv run, or -r.
if ('run' not in sys.argv) and chdir:
@@ -161,7 +163,11 @@ class Project(object):
# If the pipfile was located at '/home/user/MY_PROJECT/Pipfile',
# the name of its virtualenv will be 'my-project-wyUfYPqE'
return sanitized + '-' + encoded_hash
if PIPENV_PYTHON:
return sanitized + '-' + encoded_hash + '-' + PIPENV_PYTHON
else:
return sanitized + '-' + encoded_hash
@property
def virtualenv_location(self):