Skip to content

Commit 475f0cc

Browse files
authored
🐛 fix requirements equality check in newer version of hatch (#100)
* 🐛 fix requirements equality check in newer version of hatch which resolves #99 * fix: better comparing requirements with dependencies * fix: typo
1 parent 9337724 commit 475f0cc

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

hatch_pip_compile/lock.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,27 @@ def compare_requirements(self, requirements: Iterable[Requirement]) -> bool:
130130
"""
131131
Compare requirements
132132
133+
For backward compatibility, we ensure sets equality by checking the
134+
size of sorted lists and comparing each item.
135+
136+
TODO: This can be reverted to
137+
```
138+
lock_requirements = self.read_header_requirements()
139+
return set(requirements) == set(lock_requirements)
140+
```
141+
when https://github.com/pypa/packaging/pull/1022 gets released.
142+
133143
Parameters
134144
----------
135145
requirements : Iterable[Requirement]
136146
List of requirements to compare against the lock file
137147
"""
138148
lock_requirements = self.read_header_requirements()
139-
return set(requirements) == set(lock_requirements)
149+
requirements_list = sorted(requirements, key=str)
150+
lock_requirements_list = sorted(lock_requirements, key=str)
151+
return len(requirements_list) == len(lock_requirements_list) and all(
152+
req == lreq for req, lreq in zip(requirements_list, lock_requirements_list)
153+
)
140154

141155
def compare_constraint_sha(self, sha: str) -> bool:
142156
"""

0 commit comments

Comments
 (0)