requirements fixer output is similar to pip freeze
diff --git a/pre_commit_hooks/requirements_txt_fixer.py b/pre_commit_hooks/requirements_txt_fixer.py
index bf7f75d..c64b0a2 100644
--- a/pre_commit_hooks/requirements_txt_fixer.py
+++ b/pre_commit_hooks/requirements_txt_fixer.py
@@ -10,6 +10,19 @@
self.value = None
self.comments = []
+ @property
+ def name(self):
+ if self.value is None:
+ return
+
+ if self.value == b'\n':
+ return
+
+ if self.value.startswith(b'-e '):
+ return self.value.lower().partition(b'=')[-1]
+
+ return self.value.lower().partition(b'==')[0]
+
def __lt__(self, requirement):
# \n means top of file comment, so always return True,
# otherwise just do a string comparison with value.
@@ -18,10 +31,7 @@
elif requirement.value == b'\n':
return False
else:
- return (
- self.value.lower().partition(b'==') <
- requirement.value.lower().partition(b'==')
- )
+ return self.name < requirement.name
def fix_requirements(f):