Skip to content

Commit 13eb511

Browse files
committed
Fix: Handle override_keys and ignore_keys in requirements
process_line() now correctly comments out packages in override_keys and ignore_keys for both requirements and constraints files. Previously, these settings only applied to constraints files (variety="c"). Now they work for requirements files (variety="r") as well. Changes: - Remove variety=="c" condition from override_keys and ignore_keys checks - Add different message for override_keys in requirements: "-> mxdev disabled (version override)" vs "-> mxdev disabled (override)" - Add tests for requirements with override_keys and ignore_keys Tests: - Added test_process_line_package_in_override_keys - Added test_process_line_package_in_ignore_keys - All 176 tests pass
1 parent 52e7d66 commit 13eb511

File tree

3 files changed

+38
-3
lines changed

3 files changed

+38
-3
lines changed

CHANGES.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## 5.0.0 (unreleased)
44

5+
- Fix: `process_line()` now correctly comments out packages in `override_keys` and `ignore_keys` for both requirements and constraints files. Previously, these settings only applied to constraints files (variety="c"). Now they work for requirements files (variety="r") as well, with the message "-> mxdev disabled (version override)" for override_keys in requirements.
6+
[jensens]
57
- **Breaking**: support for Python 3.8 and 3.9. Minimum required version is now Python 3.10.
68
[jensens]
79
- **Breaking**: Modernize type hints to use Python 3.10+ syntax (PEP 604: `X | Y` instead of `Union[X, Y]`)

src/mxdev/processing.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,12 @@ def process_line(
5858
parsed_name_lower = parsed.name.lower()
5959
if parsed_name_lower in [k.lower() for k in package_keys]:
6060
line = f"# {line.strip()} -> mxdev disabled (source)\n"
61-
if variety == "c" and parsed_name_lower in [k.lower() for k in override_keys]:
62-
line = f"# {line.strip()} -> mxdev disabled (override)\n"
63-
if variety == "c" and parsed_name_lower in [k.lower() for k in ignore_keys]:
61+
if parsed_name_lower in [k.lower() for k in override_keys]:
62+
if variety == "c":
63+
line = f"# {line.strip()} -> mxdev disabled (override)\n"
64+
else:
65+
line = f"# {line.strip()} -> mxdev disabled (version override)\n"
66+
if parsed_name_lower in [k.lower() for k in ignore_keys]:
6467
line = f"# {line.strip()} -> mxdev disabled (ignore)\n"
6568
if variety == "c":
6669
return [], [line]

tests/test_processing.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,36 @@ def test_process_line_constraint_in_ignore_keys():
6161
assert "# ignored.package==1.0.0 -> mxdev disabled (ignore)" in constraints[0]
6262

6363

64+
def test_process_line_package_in_override_keys():
65+
"""Test process_line comments out packages in override_keys."""
66+
from mxdev.processing import process_line
67+
68+
requirements, constraints = process_line(
69+
"my.package==1.0.0",
70+
package_keys=[],
71+
override_keys=["my.package"],
72+
ignore_keys=[],
73+
variety="r",
74+
)
75+
assert requirements == ["# my.package==1.0.0 -> mxdev disabled (version override)\n"]
76+
assert constraints == []
77+
78+
79+
def test_process_line_package_in_ignore_keys():
80+
"""Test process_line comments out packages in ignore_keys."""
81+
from mxdev.processing import process_line
82+
83+
requirements, constraints = process_line(
84+
"my.package==1.0.0",
85+
package_keys=[],
86+
override_keys=[],
87+
ignore_keys=["my.package"],
88+
variety="r",
89+
)
90+
assert requirements == ["# my.package==1.0.0 -> mxdev disabled (ignore)\n"]
91+
assert constraints == []
92+
93+
6494
def test_process_line_constraint():
6595
"""Test process_line with constraint variety."""
6696
from mxdev.processing import process_line

0 commit comments

Comments
 (0)