mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-04-08 20:44:18 +00:00
Remove duplicated packages
This commit is contained in:
parent
454ade935b
commit
0d6d0a79df
2 changed files with 16 additions and 1 deletions
|
|
@ -45,6 +45,11 @@ class Requirement:
|
||||||
elif requirement.value == b'\n':
|
elif requirement.value == b'\n':
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
# if 2 requirements have the same name, the one with comments
|
||||||
|
# needs to go first (so that when removing duplicates, the one
|
||||||
|
# with comments is kept)
|
||||||
|
if self.name == requirement.name:
|
||||||
|
return bool(self.comments) > bool(requirement.comments)
|
||||||
return self.name < requirement.name
|
return self.name < requirement.name
|
||||||
|
|
||||||
def is_complete(self) -> bool:
|
def is_complete(self) -> bool:
|
||||||
|
|
@ -113,10 +118,14 @@ def fix_requirements(f: IO[bytes]) -> int:
|
||||||
if req.value != b'pkg-resources==0.0.0\n'
|
if req.value != b'pkg-resources==0.0.0\n'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# sort the requirements and remove duplicates
|
||||||
|
prev = None
|
||||||
for requirement in sorted(requirements):
|
for requirement in sorted(requirements):
|
||||||
after.extend(requirement.comments)
|
after.extend(requirement.comments)
|
||||||
assert requirement.value, requirement.value
|
assert requirement.value, requirement.value
|
||||||
after.append(requirement.value)
|
if prev is None or requirement.value != prev.value:
|
||||||
|
after.append(requirement.value)
|
||||||
|
prev = requirement
|
||||||
after.extend(rest)
|
after.extend(rest)
|
||||||
|
|
||||||
after_string = b''.join(after)
|
after_string = b''.join(after)
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,12 @@ from pre_commit_hooks.requirements_txt_fixer import Requirement
|
||||||
b'f<=2\n'
|
b'f<=2\n'
|
||||||
b'g<2\n',
|
b'g<2\n',
|
||||||
),
|
),
|
||||||
|
(b'a==1\nb==1\na==1\n', FAIL, b'a==1\nb==1\n'),
|
||||||
|
(
|
||||||
|
b'a==1\nb==1\n#comment about a\na==1\n',
|
||||||
|
FAIL,
|
||||||
|
b'#comment about a\na==1\nb==1\n',
|
||||||
|
),
|
||||||
(b'ocflib\nDjango\nPyMySQL\n', FAIL, b'Django\nocflib\nPyMySQL\n'),
|
(b'ocflib\nDjango\nPyMySQL\n', FAIL, b'Django\nocflib\nPyMySQL\n'),
|
||||||
(
|
(
|
||||||
b'-e git+ssh://git_url@tag#egg=ocflib\nDjango\nPyMySQL\n',
|
b'-e git+ssh://git_url@tag#egg=ocflib\nDjango\nPyMySQL\n',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue