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.
"""Version and diagnostic information for the mudpy engine."""
"""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.
# modify, and distribute this software is granted under terms
# provided in the LICENSE file distributed with this software.
def _normalize_project(project_name):
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
- return project_name.lower()
+ project_name = project_name.lower()
- 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