Skip to content

Commit

Permalink
Refactor variable names for readbility
Browse files Browse the repository at this point in the history
  • Loading branch information
sbidoul committed Feb 23, 2024
1 parent a0a37c5 commit 43980cb
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 33 deletions.
14 changes: 7 additions & 7 deletions src/pip_deepfreeze/req_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

def prepare_frozen_reqs_for_upgrade(
frozen_filenames: Iterable[Path],
in_filename: Path,
constraints_path: Path,
upgrade_all: bool = False,
to_upgrade: Optional[Iterable[str]] = None,
) -> Iterator[str]:
Expand All @@ -23,12 +23,12 @@ def prepare_frozen_reqs_for_upgrade(
not in frozen requirements are added.
"""
to_upgrade_set = {canonicalize_name(r) for r in to_upgrade or []}
in_reqs = []
constraints_reqs = []
frozen_reqs = set()
# 1. emit options from in_filename, collect in_reqs
if in_filename.is_file():
# 1. emit options from constraints_path, collect in_reqs
if constraints_path.is_file():
for in_req in parse(
str(in_filename),
str(constraints_path),
recurse=True,
reqs_only=False,
strict=True,
Expand All @@ -41,7 +41,7 @@ def prepare_frozen_reqs_for_upgrade(
if not req_name:
log_error(f"Ignoring unnamed constraint {in_req.raw_line!r}.")
continue
in_reqs.append((req_name, in_req))
constraints_reqs.append((req_name, in_req))
# 2. emit frozen_reqs unless upgrade_all or it is in to_upgrade
for frozen_filename in frozen_filenames:
if frozen_filename.is_file() and not upgrade_all:
Expand All @@ -60,6 +60,6 @@ def prepare_frozen_reqs_for_upgrade(
frozen_reqs.add(req_name)
yield frozen_req.raw_line
# 3. emit in_reqs that have not been emitted as frozen reqs
for req_name, in_req in in_reqs:
for req_name, in_req in constraints_reqs:
if req_name not in frozen_reqs:
yield in_req.raw_line
8 changes: 4 additions & 4 deletions src/pip_deepfreeze/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ def sync(
) -> None:
project_name = get_project_name(python, project_root)
project_name_with_extras = make_project_name_with_extras(project_name, extras)
requirements_in = project_root / "requirements.txt.in"
constraints_path = project_root / "requirements.txt.in"
# upgrade project and its dependencies, if needed
merged_constraints_path = get_temp_path_in_dir(
dir=project_root, prefix="requirements.", suffix=".txt.df"
)
with merged_constraints_path.open(mode="w", encoding="utf-8") as constraints:
for req_line in prepare_frozen_reqs_for_upgrade(
make_requirements_paths(project_root, extras),
requirements_in,
constraints_path,
upgrade_all,
to_upgrade,
):
Expand All @@ -77,10 +77,10 @@ def sync(
with open_with_rollback(requirements_frozen_path) as f:
print("# frozen requirements generated by pip-deepfreeze", file=f)
# output pip options in main requirements only
if not extra and requirements_in.exists():
if not extra and constraints_path.exists():
# XXX can we avoid this second parse of requirements.txt.in?
for parsed_req_line in parse_req_file(
str(requirements_in),
str(constraints_path),
reqs_only=False,
recurse=True,
strict=True,
Expand Down
50 changes: 28 additions & 22 deletions tests/test_req_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,62 +45,68 @@
],
)
def test_merge(in_reqs, frozen_reqs, upgrade_all, to_upgrade, expected, tmp_path):
in_filename = tmp_path / "requirements.txt.in"
in_filename.write_text("\n".join(in_reqs))
constraints_filename = tmp_path / "requirements.txt.in"
constraints_filename.write_text("\n".join(in_reqs))
frozen_filename = tmp_path / "requirements.txt"
frozen_filename.write_text("\n".join(frozen_reqs))
assert (
set(
prepare_frozen_reqs_for_upgrade(
[frozen_filename], in_filename, upgrade_all, to_upgrade
[frozen_filename], constraints_filename, upgrade_all, to_upgrade
)
)
== expected
)


def test_merge_missing_in(tmp_path):
in_filename = tmp_path / "requirements.txt.in"
constraints_filename = tmp_path / "requirements.txt.in"
frozen_filename = tmp_path / "requirements.txt"
frozen_filename.write_text("pkga==1.0.0")
assert set(prepare_frozen_reqs_for_upgrade([frozen_filename], in_filename)) == {
"pkga==1.0.0"
}
assert set(
prepare_frozen_reqs_for_upgrade([frozen_filename], constraints_filename)
) == {"pkga==1.0.0"}


def test_merge_missing_frozen(tmp_path):
in_filename = tmp_path / "requirements.txt.in"
in_filename.write_text("pkga")
constraints_filename = tmp_path / "requirements.txt.in"
constraints_filename.write_text("pkga")
frozen_filename = tmp_path / "requirements.txt"
assert set(prepare_frozen_reqs_for_upgrade([frozen_filename], in_filename)) == {
"pkga"
}
assert set(
prepare_frozen_reqs_for_upgrade([frozen_filename], constraints_filename)
) == {"pkga"}


def test_req_merge_unnamed_in(tmp_path, capsys):
in_filename = tmp_path / "requirements.txt.in"
in_filename.write_text("-e .")
constraints_filename = tmp_path / "requirements.txt.in"
constraints_filename.write_text("-e .")
frozen_filename = tmp_path / "requirements.txt"
assert set(prepare_frozen_reqs_for_upgrade([frozen_filename], in_filename)) == set()
assert (
set(prepare_frozen_reqs_for_upgrade([frozen_filename], constraints_filename))
== set()
)
captured = capsys.readouterr()
assert "Ignoring unnamed constraint '-e .'" in captured.err


def test_req_merge_unnamed_frozen(tmp_path, capsys):
in_filename = tmp_path / "requirements.txt.in"
constraints_filename = tmp_path / "requirements.txt.in"
frozen_filename = tmp_path / "requirements.txt"
frozen_filename.write_text("-e .")
assert set(prepare_frozen_reqs_for_upgrade([frozen_filename], in_filename)) == set()
assert (
set(prepare_frozen_reqs_for_upgrade([frozen_filename], constraints_filename))
== set()
)
captured = capsys.readouterr()
assert "Ignoring unnamed frozen requirement '-e .'" in captured.err


def test_req_merge_named_editable(tmp_path):
in_filename = tmp_path / "requirements.txt.in"
in_filename.write_text(
constraints_filename = tmp_path / "requirements.txt.in"
constraints_filename.write_text(
"-e git+https://github.com/pypa/pip-test-package#egg=pip-test-package"
)
frozen_filename = tmp_path / "requirements.txt"
assert set(prepare_frozen_reqs_for_upgrade([frozen_filename], in_filename)) == set(
["-e git+https://github.com/pypa/pip-test-package#egg=pip-test-package"]
)
assert set(
prepare_frozen_reqs_for_upgrade([frozen_filename], constraints_filename)
) == set(["-e git+https://github.com/pypa/pip-test-package#egg=pip-test-package"])

0 comments on commit 43980cb

Please sign in to comment.