Skip to content

Commit

Permalink
Merge pull request #8601 from rouge8/use-feature-requirements-file
Browse files Browse the repository at this point in the history
  • Loading branch information
pradyunsg authored Jul 27, 2020
2 parents 895eb8c + e399b12 commit 7056132
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 5 deletions.
1 change: 1 addition & 0 deletions news/8601.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Support ``--use-feature`` in requirements files
3 changes: 2 additions & 1 deletion src/pip/_internal/operations/freeze.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@ def freeze(
'--pre',
'--trusted-host',
'--process-dependency-links',
'--extra-index-url'))):
'--extra-index-url',
'--use-feature'))):
line = line.rstrip()
if line not in emitted_options:
emitted_options.add(line)
Expand Down
15 changes: 11 additions & 4 deletions src/pip/_internal/req/req_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
cmdoptions.require_hashes,
cmdoptions.pre,
cmdoptions.trusted_host,
cmdoptions.use_new_feature,
] # type: List[Callable[..., optparse.Option]]

# options to be passed to requirements
Expand Down Expand Up @@ -224,12 +225,18 @@ def handle_option_line(
):
# type: (...) -> None

# percolate hash-checking option upward
if options and opts.require_hashes:
options.require_hashes = opts.require_hashes
if options:
# percolate options upward
if opts.require_hashes:
options.require_hashes = opts.require_hashes
if opts.features_enabled:
options.features_enabled.extend(
f for f in opts.features_enabled
if f not in options.features_enabled
)

# set finder options
elif finder:
if finder:
find_links = finder.find_links
index_urls = finder.index_urls
if opts.index_url:
Expand Down
1 change: 1 addition & 0 deletions tests/functional/test_freeze.py
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,7 @@ def test_freeze_nested_vcs(script, outer_vcs, inner_vcs):
--extra-index-url http://ignore
--find-links http://ignore
--index-url http://ignore
--use-feature 2020-resolver
""")


Expand Down
8 changes: 8 additions & 0 deletions tests/unit/test_req_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ def options(session):
isolated_mode=False,
index_url='default_url',
format_control=FormatControl(set(), set()),
features_enabled=[],
)


Expand Down Expand Up @@ -382,6 +383,13 @@ def test_set_finder_allow_all_prereleases(self, line_processor, finder):
line_processor("--pre", "file", 1, finder=finder)
assert finder.allow_all_prereleases

def test_use_feature(self, line_processor, options):
"""--use-feature can be set in requirements files."""
line_processor(
"--use-feature=2020-resolver", "filename", 1, options=options
)
assert "2020-resolver" in options.features_enabled

def test_relative_local_find_links(
self, line_processor, finder, monkeypatch, tmpdir
):
Expand Down

0 comments on commit 7056132

Please sign in to comment.