mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-05-15 13:40:37 +00:00
Fix requirements-txt-fixer reordering pip options like --index-url
The requirements-txt-fixer was alphabetically sorting all lines, including pip options like --index-url and --extra-index-url. This caused --extra-index-url to be sorted above --index-url, breaking pip's index resolution order since --index-url must come first. Fix by preserving the original relative order of lines that start with `--` (pip options), while still sorting regular package requirements alphabetically. Closes #612 Bahtya
This commit is contained in:
parent
d1283494cb
commit
dfac6b321e
2 changed files with 41 additions and 0 deletions
|
|
@ -45,6 +45,14 @@ class Requirement:
|
|||
elif requirement.value == b'\n':
|
||||
return False
|
||||
else:
|
||||
# if both are pip options (start with --), maintain original
|
||||
# order to avoid breaking semantic ordering
|
||||
# (e.g. --index-url must come before --extra-index-url)
|
||||
if (
|
||||
self.name.startswith(b'--') and
|
||||
requirement.name.startswith(b'--')
|
||||
):
|
||||
return False
|
||||
# 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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue