Skip to content

Commit

Permalink
Rename is_direct to user_supplied
Browse files Browse the repository at this point in the history
  • Loading branch information
sbidoul committed May 15, 2020
1 parent 5ff9065 commit f08ce86
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 17 deletions.
8 changes: 4 additions & 4 deletions src/pip/_internal/cli/req_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,15 +310,15 @@ def get_requirements(
parsed_req,
isolated=options.isolated_mode,
)
req_to_add.is_direct = False
req_to_add.user_supplied = False
requirements.append(req_to_add)

for req in args:
req_to_add = install_req_from_line(
req, None, isolated=options.isolated_mode,
use_pep517=options.use_pep517,
)
req_to_add.is_direct = True
req_to_add.user_supplied = True
requirements.append(req_to_add)

for req in options.editables:
Expand All @@ -327,7 +327,7 @@ def get_requirements(
isolated=options.isolated_mode,
use_pep517=options.use_pep517,
)
req_to_add.is_direct = True
req_to_add.user_supplied = True
requirements.append(req_to_add)

# NOTE: options.require_hashes may be set if --require-hashes is True
Expand All @@ -340,7 +340,7 @@ def get_requirements(
isolated=options.isolated_mode,
use_pep517=options.use_pep517
)
req_to_add.is_direct = True
req_to_add.user_supplied = True
requirements.append(req_to_add)

# If any requirement has hash options, enable hash checking.
Expand Down
7 changes: 5 additions & 2 deletions src/pip/_internal/req/req_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,10 @@ def __init__(
self.hash_options = hash_options if hash_options else {}
# Set to True after successful preparation of this requirement
self.prepared = False
self.is_direct = False
# User supplied requirement are explicitly requested for installation
# by the user via CLI arguments or requirements files, as opposed to,
# e.g. dependencies, extras or constraints.
self.user_supplied = False

# Set by the legacy resolver when the requirement has been downloaded
# TODO: This introduces a strong coupling between the resolver and the
Expand Down Expand Up @@ -809,7 +812,7 @@ def install(
pycompile=pycompile,
warn_script_location=warn_script_location,
direct_url=direct_url,
requested=self.is_direct,
requested=self.user_supplied,
)
self.install_succeeded = True
return
Expand Down
6 changes: 3 additions & 3 deletions src/pip/_internal/req/req_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ def add_requirement(
)

# This next bit is really a sanity check.
assert not install_req.is_direct or parent_req_name is None, (
assert not install_req.user_supplied or parent_req_name is None, (
"a direct req shouldn't have a parent"
)

Expand Down Expand Up @@ -168,8 +168,8 @@ def add_requirement(
existing_req.constraint = False
# If we're now installing a top level requirement, mark the existing
# object as top level.
if install_req.is_direct:
existing_req.is_direct = True
if install_req.user_supplied:
existing_req.user_supplied = True
existing_req.extras = tuple(sorted(
set(existing_req.extras) | set(install_req.extras)
))
Expand Down
4 changes: 2 additions & 2 deletions src/pip/_internal/resolution/legacy/resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ def _is_upgrade_allowed(self, req):
return True
else:
assert self.upgrade_strategy == "only-if-needed"
return req.is_direct or req.constraint
return req.user_supplied or req.constraint

def _set_req_to_reinstall(self, req):
# type: (InstallRequirement) -> None
Expand Down Expand Up @@ -419,7 +419,7 @@ def add_req(subreq, extras_requested):
# 'unnamed' requirements will get added here
# 'unnamed' requirements can only come from being directly
# provided by the user.
assert req_to_install.is_direct
assert req_to_install.user_supplied
requirement_set.add_requirement(
req_to_install, parent_req_name=None,
)
Expand Down
2 changes: 1 addition & 1 deletion src/pip/_internal/resolution/resolvelib/resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def resolve(self, root_reqs, check_supported_wheels):
else:
constraints[name] = req.specifier
else:
if req.is_direct and req.name:
if req.user_supplied and req.name:
user_requested.add(canonicalize_name(req.name))
requirements.append(
self.factory.make_requirement_from_install_req(req)
Expand Down
10 changes: 5 additions & 5 deletions tests/unit/test_req.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def get_processed_req_from_line(line, fname='file', lineno=1):
parsed_req = handle_requirement_line(parsed_line)
assert parsed_req is not None
req = install_req_from_parsed_requirement(parsed_req)
req.is_direct = True
req.user_supplied = True
return req


Expand Down Expand Up @@ -109,7 +109,7 @@ def test_no_reuse_existing_build_dir(self, data):
pass
reqset = RequirementSet()
req = install_req_from_line('simple')
req.is_direct = True
req.user_supplied = True
reqset.add_requirement(req)
finder = make_test_finder(find_links=[data.find_links])
with self._basic_resolver(finder) as resolver:
Expand All @@ -133,7 +133,7 @@ def test_environment_marker_extras(self, data):
req = install_req_from_editable(
data.packages.joinpath("LocalEnvironMarker")
)
req.is_direct = True
req.user_supplied = True
reqset.add_requirement(req)
finder = make_test_finder(find_links=[data.find_links])
with self._basic_resolver(finder) as resolver:
Expand Down Expand Up @@ -626,10 +626,10 @@ def test_exclusive_environment_markers():
"""Make sure RequirementSet accepts several excluding env markers"""
eq36 = install_req_from_line(
"Django>=1.6.10,<1.7 ; python_version == '3.6'")
eq36.is_direct = True
eq36.user_supplied = True
ne36 = install_req_from_line(
"Django>=1.6.10,<1.8 ; python_version != '3.6'")
ne36.is_direct = True
ne36.user_supplied = True

req_set = RequirementSet()
req_set.add_requirement(eq36)
Expand Down

0 comments on commit f08ce86

Please sign in to comment.