Strip specifiers in dependency version strings
authorJeremy Stanley <fungi@yuggoth.org>
Sat, 9 Oct 2021 16:57:22 +0000 (16:57 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Sat, 9 Oct 2021 16:57:22 +0000 (16:57 +0000)
When comparing installed module names with the package dependencies,
chop off the version specifiers included with the requirements
strings in order to ease matching them.

mudpy/version.py

index d99617e..aa1e3eb 100644 (file)
@@ -1,6 +1,6 @@
 """Version and diagnostic information for the mudpy engine."""
 
-# Copyright (c) 2018-2020 mudpy authors. Permission to use, copy,
+# Copyright (c) 2018-2021 mudpy authors. Permission to use, copy,
 # modify, and distribute this software is granted under terms
 # provided in the LICENSE file distributed with this software.
 
@@ -113,8 +113,16 @@ class Versions:
 
 
 def _normalize_project(project_name):
-    """Convenience function to normalize Python project names."""
+    """Strip and normalize Python project names."""
+
+    # Use lower-case names for ease of comparison
     if use_importlib:
-        return project_name.lower()
+        project_name = project_name.lower()
     else:
-        return pkg_resources.safe_name(project_name).lower()
+        project_name = pkg_resources.safe_name(project_name).lower()
+
+    # Remove any version specifiers included with requirements strings
+    for operator in ' <>=!':
+        project_name = project_name.split(operator)[0]
+
+    return project_name