mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 22:50:18 +00:00
Reformat codes
This commit is contained in:
+2
-2
@@ -8,7 +8,7 @@ import os
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
from .__version__ import __version__
|
||||
from .__version__ import __version__ # noqa
|
||||
|
||||
|
||||
PIPENV_ROOT = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
|
||||
@@ -53,7 +53,7 @@ sys.stdout = stdout
|
||||
sys.stderr = stderr
|
||||
|
||||
from .cli import cli
|
||||
from . import resolver
|
||||
from . import resolver # noqa
|
||||
|
||||
if __name__ == "__main__":
|
||||
cli()
|
||||
|
||||
+2
-4
@@ -4,8 +4,6 @@
|
||||
Exposes a standard API that enables compatibility across python versions,
|
||||
operating systems, etc.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
@@ -132,7 +130,7 @@ def decode_output(output):
|
||||
output = output.encode(DEFAULT_ENCODING)
|
||||
except (AttributeError, UnicodeDecodeError, UnicodeEncodeError):
|
||||
if six.PY2:
|
||||
output = unicode.translate(vistir.misc.to_text(output),
|
||||
output = unicode.translate(vistir.misc.to_text(output), # noqa
|
||||
UNICODE_TO_ASCII_TRANSLATION_MAP)
|
||||
else:
|
||||
output = output.translate(UNICODE_TO_ASCII_TRANSLATION_MAP)
|
||||
@@ -147,5 +145,5 @@ def fix_utf8(text):
|
||||
text = decode_output(text)
|
||||
except UnicodeDecodeError:
|
||||
if six.PY2:
|
||||
text = unicode.translate(vistir.misc.to_text(text), UNICODE_TO_ASCII_TRANSLATION_MAP)
|
||||
text = unicode.translate(vistir.misc.to_text(text), UNICODE_TO_ASCII_TRANSLATION_MAP) # noqa
|
||||
return text
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- coding=utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
|
||||
from .command import cli
|
||||
from .command import cli # noqa
|
||||
|
||||
@@ -8,17 +8,15 @@ from click import (
|
||||
argument, echo, edit, group, option, pass_context, secho, version_option
|
||||
)
|
||||
|
||||
from ..vendor import click_completion
|
||||
from ..vendor import delegator
|
||||
from ..patched import crayons
|
||||
|
||||
from ..__version__ import __version__
|
||||
from ..patched import crayons
|
||||
from ..vendor import click_completion, delegator
|
||||
from .options import (
|
||||
CONTEXT_SETTINGS, PipenvGroup, code_option, common_options, deploy_option,
|
||||
general_options, install_options, lock_options, pass_state,
|
||||
pypi_mirror_option, python_option, requirementstxt_option,
|
||||
skip_lock_option, sync_options, system_option, three_option,
|
||||
uninstall_options, verbose_option, site_packages_option
|
||||
pypi_mirror_option, python_option, site_packages_option, skip_lock_option,
|
||||
sync_options, system_option, three_option, uninstall_options,
|
||||
verbose_option
|
||||
)
|
||||
|
||||
|
||||
|
||||
+20
-27
@@ -1,49 +1,48 @@
|
||||
# -*- coding=utf-8 -*-
|
||||
from __future__ import absolute_import, print_function
|
||||
|
||||
import io
|
||||
import json as simplejson
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import time
|
||||
import warnings
|
||||
|
||||
import click
|
||||
import six
|
||||
import urllib3.util as urllib3_util
|
||||
import vistir
|
||||
|
||||
from click_completion import init as init_completion
|
||||
import delegator
|
||||
import dotenv
|
||||
import pipfile
|
||||
import vistir
|
||||
|
||||
from click_completion import init as init_completion
|
||||
|
||||
from .patched import crayons
|
||||
from . import environments, exceptions, pep508checker, progress
|
||||
from ._compat import fix_utf8, decode_for_output
|
||||
from ._compat import decode_for_output, fix_utf8
|
||||
from .cmdparse import Script
|
||||
from .environments import (
|
||||
PIPENV_CACHE_DIR, PIPENV_COLORBLIND, PIPENV_DEFAULT_PYTHON_VERSION,
|
||||
PIPENV_DONT_USE_PYENV, PIPENV_HIDE_EMOJIS, PIPENV_MAX_SUBPROCESS,
|
||||
PIPENV_PYUP_API_KEY, PIPENV_SHELL_FANCY, PIPENV_SKIP_VALIDATION,
|
||||
PIPENV_YES, SESSION_IS_INTERACTIVE, PIP_EXISTS_ACTION, PIPENV_RESOLVE_VCS,
|
||||
is_type_checking
|
||||
PIP_EXISTS_ACTION, PIPENV_CACHE_DIR, PIPENV_COLORBLIND,
|
||||
PIPENV_DEFAULT_PYTHON_VERSION, PIPENV_DONT_USE_PYENV, PIPENV_HIDE_EMOJIS,
|
||||
PIPENV_MAX_SUBPROCESS, PIPENV_PYUP_API_KEY, PIPENV_RESOLVE_VCS,
|
||||
PIPENV_SHELL_FANCY, PIPENV_SKIP_VALIDATION, PIPENV_YES,
|
||||
SESSION_IS_INTERACTIVE, is_type_checking
|
||||
)
|
||||
from .project import Project, SourceNotFound
|
||||
from .patched import crayons
|
||||
from .project import Project
|
||||
from .utils import (
|
||||
convert_deps_to_pip, create_mirror_source, create_spinner, download_file,
|
||||
escape_cmd, escape_grouped_arguments, find_windows_executable,
|
||||
get_canonical_names, is_pinned, is_pypi_url, is_required_version, is_star,
|
||||
is_valid_url, parse_indexes, pep423_name, prepare_pip_source_args,
|
||||
proper_case, python_version, venv_resolve_deps, run_command,
|
||||
is_python_command, find_python, make_posix, interrupt_handled_subprocess,
|
||||
get_indexes_from_requirement, get_source_list, get_project_index,
|
||||
convert_deps_to_pip, create_spinner, download_file,
|
||||
escape_grouped_arguments, find_python, find_windows_executable,
|
||||
get_canonical_names, get_source_list, interrupt_handled_subprocess,
|
||||
is_pinned, is_python_command, is_required_version, is_star, is_valid_url,
|
||||
parse_indexes, pep423_name, prepare_pip_source_args, proper_case,
|
||||
python_version, run_command, venv_resolve_deps
|
||||
)
|
||||
|
||||
|
||||
if is_type_checking():
|
||||
from typing import Dict, List, Mapping, Optional, Union, Text
|
||||
from typing import Dict, List, Optional, Union, Text
|
||||
from pipenv.vendor.requirementslib.models.requirements import Requirement
|
||||
TSourceDict = Dict[Text, Union[Text, bool]]
|
||||
|
||||
@@ -711,8 +710,6 @@ def batch_install(deps_list, procs, failed_deps_queue,
|
||||
label=label
|
||||
)
|
||||
|
||||
|
||||
indexes = []
|
||||
trusted_hosts = []
|
||||
# Install these because
|
||||
for dep in deps_list_bar:
|
||||
@@ -723,9 +720,6 @@ def batch_install(deps_list, procs, failed_deps_queue,
|
||||
dep.markers = str(strip_extras_markers_from_requirement(dep.get_markers()))
|
||||
# Install the module.
|
||||
is_artifact = False
|
||||
if no_deps:
|
||||
link = getattr(dep.req, "link", None)
|
||||
is_wheel = getattr(link, "is_wheel", False) if link else False
|
||||
if dep.is_file_or_url and (dep.is_direct_url or any(
|
||||
dep.req.uri.endswith(ext) for ext in ["zip", "tar.gz"]
|
||||
)):
|
||||
@@ -1053,7 +1047,6 @@ def do_lock(
|
||||
# Resolve dev-package dependencies, with pip-tools.
|
||||
for is_dev in [True, False]:
|
||||
pipfile_section = "dev-packages" if is_dev else "packages"
|
||||
lockfile_section = "develop" if is_dev else "default"
|
||||
if project.pipfile_exists:
|
||||
packages = project.parsed_pipfile.get(pipfile_section, {})
|
||||
else:
|
||||
@@ -1355,7 +1348,7 @@ def get_requirement_line(
|
||||
return ["-e", line]
|
||||
return '-e {0}'.format(line)
|
||||
if not format_for_file:
|
||||
return [line,]
|
||||
return [line]
|
||||
return line
|
||||
return requirement.as_line(include_hashes=include_hashes, as_list=not format_for_file)
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import os
|
||||
import site
|
||||
import sys
|
||||
|
||||
from distutils.sysconfig import get_python_lib
|
||||
from sysconfig import get_paths, get_python_version
|
||||
|
||||
import itertools
|
||||
@@ -620,7 +619,7 @@ class Environment(object):
|
||||
else:
|
||||
d['required_version'] = d['installed_version']
|
||||
|
||||
get_children = lambda n: key_tree.get(n.key, [])
|
||||
get_children = lambda n: key_tree.get(n.key, []) # noqa
|
||||
|
||||
d['dependencies'] = [
|
||||
cls._get_requirements_for_package(c, key_tree, parent=node,
|
||||
@@ -805,7 +804,7 @@ class Environment(object):
|
||||
sys.path = self.sys_path
|
||||
sys.prefix = self.sys_prefix
|
||||
site.addsitedir(self.base_paths["purelib"])
|
||||
pip = self.safe_import("pip")
|
||||
pip = self.safe_import("pip") # noqa
|
||||
pip_vendor = self.safe_import("pip._vendor")
|
||||
pep517_dir = os.path.join(os.path.dirname(pip_vendor.__file__), "pep517")
|
||||
site.addsitedir(pep517_dir)
|
||||
@@ -865,7 +864,7 @@ class Environment(object):
|
||||
|
||||
def install(self, requirements):
|
||||
if not isinstance(requirements, (tuple, list)):
|
||||
requirements = [requirements,]
|
||||
requirements = [requirements]
|
||||
with self.get_finder() as finder:
|
||||
args = []
|
||||
for format_control in ('no_binary', 'only_binary'):
|
||||
@@ -925,7 +924,7 @@ class Environment(object):
|
||||
pathset.remove(auto_confirm=auto_confirm, verbose=verbose)
|
||||
try:
|
||||
yield pathset
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
if pathset is not None:
|
||||
pathset.rollback()
|
||||
else:
|
||||
|
||||
@@ -84,7 +84,7 @@ class PipenvException(ClickException):
|
||||
file = vistir.misc.get_text_stderr()
|
||||
if self.extra:
|
||||
if isinstance(self.extra, STRING_TYPES):
|
||||
self.extra = [self.extra,]
|
||||
self.extra = [self.extra]
|
||||
for extra in self.extra:
|
||||
extra = "[pipenv.exceptions.{0!s}]: {1}".format(
|
||||
self.__class__.__name__, extra
|
||||
@@ -163,14 +163,13 @@ class PipenvUsageError(UsageError):
|
||||
color = self.ctx.color
|
||||
if self.extra:
|
||||
if isinstance(self.extra, STRING_TYPES):
|
||||
self.extra = [self.extra,]
|
||||
self.extra = [self.extra]
|
||||
for extra in self.extra:
|
||||
if color:
|
||||
extra = getattr(crayons, color, "blue")(extra)
|
||||
click_echo(decode_for_output(extra, file), file=file)
|
||||
hint = ''
|
||||
if (self.cmd is not None and
|
||||
self.cmd.get_help_option(self.ctx) is not None):
|
||||
if self.cmd is not None and self.cmd.get_help_option(self.ctx) is not None:
|
||||
hint = ('Try "%s %s" for help.\n'
|
||||
% (self.ctx.command_path, self.ctx.help_option_names[0]))
|
||||
if self.ctx is not None:
|
||||
@@ -199,7 +198,7 @@ class PipenvFileError(FileError):
|
||||
file = vistir.misc.get_text_stderr()
|
||||
if self.extra:
|
||||
if isinstance(self.extra, STRING_TYPES):
|
||||
self.extra = [self.extra,]
|
||||
self.extra = [self.extra]
|
||||
for extra in self.extra:
|
||||
click_echo(decode_for_output(extra, file), file=file)
|
||||
click_echo(self.message, file=file)
|
||||
@@ -312,7 +311,7 @@ class VirtualenvCreationException(VirtualenvException):
|
||||
extra = ANSI_REMOVAL_RE.sub("", "{0}".format(extra))
|
||||
if "KeyboardInterrupt" in extra:
|
||||
extra = crayons.red("Virtualenv creation interrupted by user", bold=True)
|
||||
self.extra = extra = [extra,]
|
||||
self.extra = extra = [extra]
|
||||
VirtualenvException.__init__(self, message, extra=extra)
|
||||
|
||||
|
||||
@@ -321,9 +320,9 @@ class UninstallError(PipenvException):
|
||||
extra = [
|
||||
"{0} {1}".format(
|
||||
crayons.blue("Attempted to run command: "),
|
||||
crayons.yellow("$ {0!r}".format(command), bold=True
|
||||
crayons.yellow("$ {0!r}".format(command), bold=True)
|
||||
)
|
||||
)]
|
||||
]
|
||||
extra.extend([crayons.blue(line.strip()) for line in return_values.splitlines()])
|
||||
if isinstance(package, (tuple, list, set)):
|
||||
package = " ".join(package)
|
||||
|
||||
+10
-13
@@ -15,8 +15,6 @@ import toml
|
||||
import tomlkit
|
||||
import vistir
|
||||
|
||||
from first import first
|
||||
|
||||
import pipfile
|
||||
import pipfile.api
|
||||
|
||||
@@ -209,14 +207,12 @@ class Project(object):
|
||||
# First exclude anything that is a vcs entry either in the key or value
|
||||
if not (
|
||||
any(is_vcs(i) for i in [k, v])
|
||||
or
|
||||
# Then exclude any installable files that are not directories
|
||||
# Because pip-tools can resolve setup.py for example
|
||||
any(is_installable_file(i) for i in [k, v])
|
||||
or
|
||||
or any(is_installable_file(i) for i in [k, v])
|
||||
# Then exclude any URLs because they need to be editable also
|
||||
# Things that are excluded can only be 'shallow resolved'
|
||||
any(is_valid_url(i) for i in [k, v])
|
||||
or any(is_valid_url(i) for i in [k, v])
|
||||
):
|
||||
ps.update({k: v})
|
||||
return ps
|
||||
@@ -337,7 +333,7 @@ class Project(object):
|
||||
if not self._environment:
|
||||
prefix = self.virtualenv_location
|
||||
is_venv = is_in_virtualenv()
|
||||
sources = self.sources if self.sources else [DEFAULT_SOURCE,]
|
||||
sources = self.sources if self.sources else [DEFAULT_SOURCE]
|
||||
self._environment = Environment(
|
||||
prefix=prefix, is_venv=is_venv, sources=sources, pipfile=self.parsed_pipfile,
|
||||
project=self
|
||||
@@ -421,8 +417,10 @@ class Project(object):
|
||||
def virtualenv_location(self):
|
||||
# if VIRTUAL_ENV is set, use that.
|
||||
virtualenv_env = os.getenv("VIRTUAL_ENV")
|
||||
if ("PIPENV_ACTIVE" not in os.environ and
|
||||
not PIPENV_IGNORE_VIRTUALENVS and virtualenv_env):
|
||||
if (
|
||||
"PIPENV_ACTIVE" not in os.environ
|
||||
and not PIPENV_IGNORE_VIRTUALENVS and virtualenv_env
|
||||
):
|
||||
return virtualenv_env
|
||||
|
||||
if not self._virtualenv_location: # Use cached version, if available.
|
||||
@@ -542,7 +540,6 @@ class Project(object):
|
||||
def build_requires(self):
|
||||
return self._build_system.get("requires", ["setuptools>=40.8.0", "wheel"])
|
||||
|
||||
|
||||
@property
|
||||
def build_backend(self):
|
||||
return self._build_system.get("build-backend", get_default_pyproject_backend())
|
||||
@@ -688,7 +685,7 @@ class Project(object):
|
||||
.lstrip("\n")
|
||||
.split("\n")
|
||||
)
|
||||
sources = [DEFAULT_SOURCE,]
|
||||
sources = [DEFAULT_SOURCE]
|
||||
for i, index in enumerate(indexes):
|
||||
if not index:
|
||||
continue
|
||||
@@ -756,7 +753,7 @@ class Project(object):
|
||||
if not sources:
|
||||
sources = self.pipfile_sources
|
||||
elif not isinstance(sources, list):
|
||||
sources = [sources,]
|
||||
sources = [sources]
|
||||
lockfile_dict["_meta"]["sources"] = [
|
||||
self.populate_source(s) for s in sources
|
||||
]
|
||||
@@ -775,7 +772,7 @@ class Project(object):
|
||||
else:
|
||||
sources = [dict(source) for source in self.parsed_pipfile["source"]]
|
||||
if not isinstance(sources, list):
|
||||
sources = [sources,]
|
||||
sources = [sources]
|
||||
return {
|
||||
"hash": {"sha256": self.calculate_pipfile_hash()},
|
||||
"pipfile-spec": PIPFILE_SPEC_CURRENT,
|
||||
|
||||
@@ -516,7 +516,6 @@ class Entry(object):
|
||||
:raises: :exc:`~pipenv.exceptions.DependencyConflict` if resolution is impossible
|
||||
"""
|
||||
# ensure that we satisfy the parent dependencies of this dep
|
||||
from pipenv.vendor.packaging.specifiers import Specifier
|
||||
parent_dependencies = set()
|
||||
has_mismatch = False
|
||||
can_use_original = True
|
||||
@@ -527,7 +526,6 @@ class Entry(object):
|
||||
# parents with no requirements can't conflict
|
||||
if not p.requirements:
|
||||
continue
|
||||
needed = p.requirements.get("dependencies", [])
|
||||
entry_ref = p.get_dependency(self.name)
|
||||
required = entry_ref.get("required_version", "*")
|
||||
required = self.clean_specifier(required)
|
||||
@@ -633,7 +631,6 @@ def clean_results(results, resolver, project, dev=False):
|
||||
return results
|
||||
lockfile = project.lockfile_content
|
||||
section = "develop" if dev else "default"
|
||||
pipfile_section = "dev-packages" if dev else "packages"
|
||||
reverse_deps = project.environment.reverse_dependencies()
|
||||
new_results = [r for r in results if r["name"] not in lockfile[section]]
|
||||
for result in results:
|
||||
@@ -646,17 +643,11 @@ def clean_results(results, resolver, project, dev=False):
|
||||
|
||||
|
||||
def clean_outdated(results, resolver, project, dev=False):
|
||||
from pipenv.vendor.requirementslib.models.requirements import Requirement
|
||||
from pipenv.environments import is_verbose
|
||||
if not project.lockfile_exists:
|
||||
return results
|
||||
lockfile = project.lockfile_content
|
||||
section = "develop" if dev else "default"
|
||||
pipfile_section = "dev-packages" if dev else "packages"
|
||||
pipfile = project.parsed_pipfile[pipfile_section]
|
||||
reverse_deps = project.environment.reverse_dependencies()
|
||||
deptree = project.environment.get_package_requirements()
|
||||
overlapping_results = [r for r in results if r["name"] in lockfile[section]]
|
||||
new_results = [r for r in results if r["name"] not in lockfile[section]]
|
||||
for result in results:
|
||||
name = result.get("name")
|
||||
|
||||
+17
-21
@@ -1,46 +1,41 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import print_function
|
||||
|
||||
import contextlib
|
||||
import errno
|
||||
import logging
|
||||
import os
|
||||
import posixpath
|
||||
import re
|
||||
import signal
|
||||
import shutil
|
||||
import signal
|
||||
import stat
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
from contextlib import contextmanager
|
||||
from distutils.spawn import find_executable
|
||||
|
||||
import six
|
||||
import toml
|
||||
import tomlkit
|
||||
|
||||
from click import echo as click_echo
|
||||
from six.moves.urllib.parse import urlparse
|
||||
from .vendor.vistir.compat import ResourceWarning, lru_cache, Mapping, Sequence, Set
|
||||
from .vendor.vistir.misc import fs_str, run
|
||||
|
||||
import crayons
|
||||
import parse
|
||||
import tomlkit
|
||||
|
||||
from . import environments
|
||||
from .exceptions import (
|
||||
PipenvUsageError, RequirementError, PipenvCmdError, ResolutionFailure
|
||||
)
|
||||
from .exceptions import PipenvCmdError, PipenvUsageError, RequirementError, ResolutionFailure
|
||||
from .pep508checker import lookup
|
||||
from .vendor.packaging.markers import Marker
|
||||
from .vendor.urllib3 import util as urllib3_util
|
||||
|
||||
from .vendor.vistir.compat import Mapping, ResourceWarning, Sequence, Set, lru_cache
|
||||
from .vendor.vistir.misc import fs_str, run
|
||||
|
||||
if environments.MYPY_RUNNING:
|
||||
from typing import Tuple, Dict, Any, List, Union, Optional, Text
|
||||
from .vendor.requirementslib.models.requirements import Requirement, Line
|
||||
from .vendor.requirementslib.models.pipfile import Pipfile
|
||||
from .vendor.packaging.markers import Marker
|
||||
from .vendor.packaging.specifiers import Specifier
|
||||
from .project import Project, TSource
|
||||
|
||||
|
||||
@@ -316,7 +311,7 @@ def get_source_list(
|
||||
sources.append(get_project_index(index))
|
||||
if extra_indexes:
|
||||
if isinstance(extra_indexes, six.string_types):
|
||||
extra_indexes = [extra_indexes,]
|
||||
extra_indexes = [extra_indexes]
|
||||
for source in extra_indexes:
|
||||
extra_src = get_project_index(source)
|
||||
if not sources or extra_src["url"] != sources[0]["url"]:
|
||||
@@ -555,8 +550,8 @@ class Resolver(object):
|
||||
# but leave it on for local, installable folders on the filesystem
|
||||
if environments.PIPENV_RESOLVE_VCS or (
|
||||
req.editable or parsed_line.is_wheel or (
|
||||
req.is_file_or_url and parsed_line.is_local and
|
||||
is_installable_dir(parsed_line.path)
|
||||
req.is_file_or_url and parsed_line.is_local
|
||||
and is_installable_dir(parsed_line.path)
|
||||
)
|
||||
):
|
||||
requirements = [v for v in getattr(setup_info, "requires", {}).values()]
|
||||
@@ -920,8 +915,10 @@ class Resolver(object):
|
||||
|
||||
# We also don't want to try to hash directories as this will fail
|
||||
# as these are editable deps and are not hashable.
|
||||
if (ireq.link.scheme == "file" and
|
||||
Path(to_native_string(url_to_path(ireq.link.url))).is_dir()):
|
||||
if (
|
||||
ireq.link.scheme == "file"
|
||||
and Path(to_native_string(url_to_path(ireq.link.url))).is_dir()
|
||||
):
|
||||
return False
|
||||
return True
|
||||
|
||||
@@ -1069,7 +1066,6 @@ def actually_resolve_deps(
|
||||
req_dir=None,
|
||||
):
|
||||
from pipenv.vendor.vistir.path import create_tracked_tempdir
|
||||
from pipenv.vendor.requirementslib.models.requirements import Requirement
|
||||
|
||||
if not req_dir:
|
||||
req_dir = create_tracked_tempdir(suffix="-requirements", prefix="pipenv-")
|
||||
@@ -1889,7 +1885,7 @@ def translate_markers(pipfile_entry):
|
||||
"""
|
||||
if not isinstance(pipfile_entry, Mapping):
|
||||
raise TypeError("Entry is not a pipfile formatted mapping.")
|
||||
from .vendor.packaging.markers import Marker, default_environment
|
||||
from .vendor.packaging.markers import default_environment
|
||||
from .vendor.vistir.misc import dedup
|
||||
|
||||
allowed_marker_keys = ["markers"] + list(default_environment().keys())
|
||||
@@ -2217,8 +2213,8 @@ def is_python_command(line):
|
||||
|
||||
from pipenv.vendor.pythonfinder.utils import PYTHON_IMPLEMENTATIONS
|
||||
is_version = re.match(r'[\d\.]+', line)
|
||||
if (line.startswith("python") or is_version or
|
||||
any(line.startswith(v) for v in PYTHON_IMPLEMENTATIONS)):
|
||||
if (line.startswith("python") or is_version
|
||||
or any(line.startswith(v) for v in PYTHON_IMPLEMENTATIONS)):
|
||||
return True
|
||||
# we are less sure about this but we can guess
|
||||
if line.startswith("py"):
|
||||
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
[pytest]
|
||||
addopts = -ra -n auto
|
||||
plugins = xdist
|
||||
testpaths = tests
|
||||
; Add vendor and patched in addition to the default list of ignored dirs
|
||||
; Additionally, ignore tasks, news, test subdirectories and peeps directory
|
||||
norecursedirs =
|
||||
.* build
|
||||
dist
|
||||
CVS
|
||||
_darcs
|
||||
{arch}
|
||||
*.egg
|
||||
vendor
|
||||
patched
|
||||
news
|
||||
tasks
|
||||
docs
|
||||
tests/test_artifacts
|
||||
tests/pytest-pypi
|
||||
tests/pypi
|
||||
peeps
|
||||
filterwarnings =
|
||||
ignore::DeprecationWarning
|
||||
ignore::PendingDeprecationWarning
|
||||
@@ -4,7 +4,9 @@ license = MIT
|
||||
license_file = LICENSE
|
||||
|
||||
[flake8]
|
||||
exclude = .git,__pycache__,docs/,pipenv/vendor/,get-pipenv.py,setup.py
|
||||
exclude =
|
||||
.git,__pycache__,docs/,pipenv/vendor/,pipenv/patched,get-pipenv.py,
|
||||
.eggs/,setup.py,tests/fixtures/
|
||||
ignore =
|
||||
# The default ignore list:
|
||||
E121,E123,E126,E226,E24,E704,
|
||||
@@ -17,13 +19,14 @@ ignore =
|
||||
# E402: module level import not at top of file
|
||||
# E501: line too long
|
||||
# W503: line break before binary operator
|
||||
E402,E501,W503
|
||||
E402,E501,W503,E203
|
||||
|
||||
[isort]
|
||||
atomic=true
|
||||
lines_after_imports=2
|
||||
lines_between_types=1
|
||||
multi_line_output=5
|
||||
line_length=80
|
||||
not_skip=__init__.py
|
||||
known_first_party =
|
||||
pipenv
|
||||
@@ -36,3 +39,29 @@ follow_imports=skip
|
||||
html_report=mypyhtml
|
||||
python_version=3.6
|
||||
mypy_path=typeshed/pyi:typeshed/imports
|
||||
|
||||
[tool:pytest]
|
||||
addopts = -ra -n auto
|
||||
plugins = xdist
|
||||
testpaths = tests
|
||||
; Add vendor and patched in addition to the default list of ignored dirs
|
||||
; Additionally, ignore tasks, news, test subdirectories and peeps directory
|
||||
norecursedirs =
|
||||
.* build
|
||||
dist
|
||||
CVS
|
||||
_darcs
|
||||
{arch}
|
||||
*.egg
|
||||
vendor
|
||||
patched
|
||||
news
|
||||
tasks
|
||||
docs
|
||||
tests/test_artifacts
|
||||
tests/pytest-pypi
|
||||
tests/pypi
|
||||
peeps
|
||||
filterwarnings =
|
||||
ignore::DeprecationWarning
|
||||
ignore::PendingDeprecationWarning
|
||||
|
||||
@@ -45,6 +45,7 @@ extras = {
|
||||
"tests": ["pytest<5.0", "pytest-tap", "pytest-xdist", "flaky", "mock"],
|
||||
}
|
||||
|
||||
|
||||
# https://pypi.python.org/pypi/stdeb/0.8.5#quickstart-2-just-tell-me-the-fastest-way-to-make-a-deb
|
||||
class DebCommand(Command):
|
||||
"""Support for setup.py deb"""
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# -*- coding=utf-8 -*-
|
||||
# Copied from pip's vendoring process
|
||||
# see https://github.com/pypa/pip/blob/95bcf8c5f6394298035a7332c441868f3b0169f4/tasks/__init__.py
|
||||
import re
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
import invoke
|
||||
|
||||
@@ -3,7 +3,6 @@ import datetime
|
||||
import os
|
||||
import pathlib
|
||||
import re
|
||||
import sys
|
||||
|
||||
import invoke
|
||||
|
||||
@@ -240,8 +239,6 @@ def bump_version(ctx, dry_run=False, dev=False, pre=False, tag=None, commit=Fals
|
||||
current_version = Version.parse(__version__)
|
||||
today = datetime.date.today()
|
||||
tomorrow = today + datetime.timedelta(days=1)
|
||||
next_month = datetime.date.today().replace(month=today.month + 1, day=1)
|
||||
next_year = datetime.date.today().replace(year=today.year + 1, month=1, day=1)
|
||||
if pre and not tag:
|
||||
print('Using "pre" requires a corresponding tag.')
|
||||
return
|
||||
|
||||
@@ -41,7 +41,7 @@ LIBRARY_DIRNAMES = {
|
||||
'enum': 'backports/enum'
|
||||
}
|
||||
|
||||
PY2_DOWNLOAD = ['enum34',]
|
||||
PY2_DOWNLOAD = ['enum34']
|
||||
|
||||
# from time to time, remove the no longer needed ones
|
||||
HARDCODED_LICENSE_URLS = {
|
||||
@@ -93,7 +93,6 @@ LICENSE_RENAMES = {
|
||||
}
|
||||
|
||||
|
||||
|
||||
def drop_dir(path):
|
||||
if path.exists() and path.is_dir():
|
||||
shutil.rmtree(str(path), ignore_errors=True)
|
||||
@@ -379,7 +378,6 @@ def vendor(ctx, vendor_dir, package=None, rewrite=True):
|
||||
post_install_cleanup(ctx, vendor_dir)
|
||||
# Detect the vendored packages/modules
|
||||
vendored_libs = detect_vendored_libs(_get_vendor_dir(ctx))
|
||||
patched_libs = detect_vendored_libs(_get_patched_dir(ctx))
|
||||
log("Detected vendored libraries: %s" % ", ".join(vendored_libs))
|
||||
|
||||
# Apply pre-patches
|
||||
@@ -509,14 +507,6 @@ def download_licenses(
|
||||
new_requirements_file = fh.name
|
||||
new_requirements_file = Path(new_requirements_file)
|
||||
log(requirements)
|
||||
requirement = "-r {0}".format(new_requirements_file.as_posix())
|
||||
if package:
|
||||
if not only:
|
||||
# for packages we want to add to the requirements file
|
||||
requirement = _ensure_package_in_requirements(ctx, requirements_file, package)
|
||||
else:
|
||||
# for packages we want to get the license for by themselves
|
||||
requirement = package
|
||||
tmp_dir = vendor_dir / '__tmp__'
|
||||
# TODO: Fix this whenever it gets sorted out (see https://github.com/pypa/pip/issues/5739)
|
||||
cmd = "pip download --no-binary :all: --only-binary requests_download --no-deps"
|
||||
|
||||
@@ -2,7 +2,7 @@ import invoke
|
||||
|
||||
from pipenv._compat import TemporaryDirectory
|
||||
|
||||
from . import _get_git_root, _get_vendor_dir, log
|
||||
from . import _get_vendor_dir, log
|
||||
|
||||
|
||||
@invoke.task
|
||||
|
||||
@@ -1,30 +1,34 @@
|
||||
# -*- coding=utf-8 -*-
|
||||
from __future__ import absolute_import, print_function
|
||||
|
||||
import errno
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import signal
|
||||
import socket
|
||||
import sys
|
||||
import time
|
||||
import warnings
|
||||
|
||||
from shutil import copyfileobj, rmtree as _rmtree
|
||||
from shutil import rmtree as _rmtree
|
||||
|
||||
import pytest
|
||||
import requests
|
||||
|
||||
from pipenv.vendor.vistir.compat import ResourceWarning, fs_str, fs_encode, FileNotFoundError, PermissionError, TemporaryDirectory
|
||||
from pipenv.vendor.vistir.misc import run
|
||||
from pipenv.vendor.vistir.contextmanagers import temp_environ
|
||||
from pipenv.vendor.vistir.path import mkdir_p, create_tracked_tempdir, handle_remove_readonly
|
||||
|
||||
from pipenv._compat import Path
|
||||
from pipenv.exceptions import VirtualenvActivationException
|
||||
from pipenv.vendor import delegator, toml, tomlkit
|
||||
from pytest_pypi.app import prepare_fixtures, prepare_packages as prepare_pypi_packages
|
||||
from pipenv.vendor.vistir.compat import (
|
||||
FileNotFoundError, PermissionError, ResourceWarning, TemporaryDirectory,
|
||||
fs_encode, fs_str
|
||||
)
|
||||
from pipenv.vendor.vistir.contextmanagers import temp_environ
|
||||
from pipenv.vendor.vistir.misc import run
|
||||
from pipenv.vendor.vistir.path import (
|
||||
create_tracked_tempdir, handle_remove_readonly, mkdir_p
|
||||
)
|
||||
from pytest_pypi.app import prepare_fixtures
|
||||
from pytest_pypi.app import prepare_packages as prepare_pypi_packages
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
warnings.simplefilter("default", category=ResourceWarning)
|
||||
@@ -399,7 +403,6 @@ class _PipenvInstance(object):
|
||||
|
||||
def _rmtree_func(path, ignore_errors=True, onerror=None):
|
||||
directory = fs_encode(path)
|
||||
global _rmtree
|
||||
shutil_rmtree = _rmtree
|
||||
if onerror is None:
|
||||
onerror = handle_remove_readonly
|
||||
|
||||
@@ -223,7 +223,7 @@ def test_install_parse_error(PipenvInstance):
|
||||
[dev-packages]
|
||||
""".strip()
|
||||
f.write(contents)
|
||||
c = p.pipenv('install requests u/\\/p@r\$34b13+pkg')
|
||||
c = p.pipenv('install requests u/\\/p@r\\$34b13+pkg')
|
||||
assert c.return_code != 0
|
||||
assert 'u/\\/p@r$34b13+pkg' not in p.pipfile['packages']
|
||||
|
||||
|
||||
@@ -5,9 +5,7 @@ import os
|
||||
import pytest
|
||||
|
||||
from pipenv._compat import Path, TemporaryDirectory
|
||||
from pipenv.project import Project
|
||||
from pipenv.utils import get_windows_path, normalize_drive, temp_environ
|
||||
from pipenv.vendor import delegator
|
||||
from pipenv.utils import normalize_drive, temp_environ
|
||||
|
||||
|
||||
@pytest.mark.dotvenv
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import, print_function
|
||||
import os
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import pytest
|
||||
from flaky import flaky
|
||||
|
||||
from pipenv._compat import Path
|
||||
from pipenv.project import Project
|
||||
from pipenv.utils import mkdir_p, temp_environ
|
||||
from pipenv.vendor import delegator
|
||||
|
||||
@@ -40,7 +39,6 @@ setup(
|
||||
""".strip()
|
||||
fh.write(contents)
|
||||
line = "-e .[dev]"
|
||||
pipfile = {"testpipenv": {"path": ".", "editable": True, "extras": ["dev"]}}
|
||||
with open(os.path.join(p.path, 'Pipfile'), 'w') as fh:
|
||||
fh.write("""
|
||||
[packages]
|
||||
|
||||
@@ -659,4 +659,4 @@ six = "*"
|
||||
c = p.pipenv("lock --clear")
|
||||
assert c.return_code == 0
|
||||
assert "index" in p.lockfile["default"]["six"]
|
||||
assert p.lockfile["default"]["six"]["index"] == "custom", Path(p.lockfile_path).read_text() # p.lockfile["default"]["six"]
|
||||
assert p.lockfile["default"]["six"]["index"] == "custom", Path(p.lockfile_path).read_text() # p.lockfile["default"]["six"]
|
||||
|
||||
@@ -11,7 +11,6 @@ from pipenv.project import Project
|
||||
from pipenv.utils import temp_environ
|
||||
from pipenv.vendor.vistir.path import is_in_path
|
||||
from pipenv.vendor.delegator import run as delegator_run
|
||||
import pipenv.environments
|
||||
|
||||
|
||||
@pytest.mark.project
|
||||
|
||||
@@ -5,7 +5,6 @@ import os
|
||||
import pytest
|
||||
|
||||
from pipenv._compat import Path
|
||||
from pipenv.project import Project
|
||||
|
||||
|
||||
# This module is run only on Windows.
|
||||
|
||||
@@ -4,7 +4,6 @@ import contextlib
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from tarfile import is_tarfile
|
||||
from zipfile import is_zipfile
|
||||
|
||||
@@ -17,5 +17,6 @@ def where():
|
||||
# vendored bundle inside Requests
|
||||
return os.path.join(os.path.abspath(os.path.dirname(__file__)), 'certs', 'cacert.pem')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(where())
|
||||
|
||||
@@ -3,6 +3,7 @@ import pytest
|
||||
from .app import app as pypi_app
|
||||
from . import serve, certs
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
def pypi(request):
|
||||
server = serve.Server(application=pypi_app)
|
||||
@@ -31,6 +32,7 @@ def pypi_both(request, pypi, pypi_secure):
|
||||
def class_based_pypi(request, pypi):
|
||||
request.cls.pypi = pypi
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def class_based_pypi_secure(request, pypi_secure):
|
||||
request.cls.pypi_secure = pypi_secure
|
||||
|
||||
@@ -122,6 +122,7 @@ get_extras_links_scenarios = {
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'scenarios,expected',
|
||||
list(get_extras_links_scenarios.values()),
|
||||
|
||||
@@ -3,11 +3,7 @@ import os
|
||||
|
||||
import pytest
|
||||
|
||||
from first import first
|
||||
from mock import Mock, patch
|
||||
|
||||
import pipenv.utils
|
||||
import pythonfinder.utils
|
||||
from pipenv.exceptions import PipenvUsageError
|
||||
|
||||
|
||||
@@ -129,11 +125,8 @@ def test_convert_deps_to_pip(monkeypatch, deps, expected):
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_convert_deps_to_pip_one_way(monkeypatch, deps, expected):
|
||||
with monkeypatch.context() as m:
|
||||
import pip_shims
|
||||
# m.setattr(pip_shims.shims, "unpack_url", mock_unpack)
|
||||
assert pipenv.utils.convert_deps_to_pip(deps, r=False) == [expected.lower()]
|
||||
def test_convert_deps_to_pip_one_way(deps, expected):
|
||||
assert pipenv.utils.convert_deps_to_pip(deps, r=False) == [expected.lower()]
|
||||
|
||||
|
||||
@pytest.mark.skipif(isinstance(u"", str), reason="don't need to test if unicode is str")
|
||||
@@ -218,7 +211,7 @@ class TestUtils:
|
||||
@pytest.mark.windows
|
||||
@pytest.mark.skipif(os.name != "nt", reason="Windows test only")
|
||||
def test_windows_shellquote(self):
|
||||
test_path = "C:\Program Files\Python36\python.exe"
|
||||
test_path = r"C:\Program Files\Python36\python.exe"
|
||||
expected_path = '"C:\\\\Program Files\\\\Python36\\\\python.exe"'
|
||||
assert pipenv.utils.escape_grouped_arguments(test_path) == expected_path
|
||||
|
||||
|
||||
Reference in New Issue
Block a user