[Checkins] SVN: grok/trunk/utilities/merge-versions.py In utilities/merge-versions.py, use pkg_resources.parse_version instead of

Maurits van Rees m.van.rees at zestsoftware.nl
Thu Apr 16 19:18:44 EDT 2009


Log message for revision 99222:
  In utilities/merge-versions.py, use pkg_resources.parse_version instead of
  distutils.version.Loose/StrictVersion.  That makes the code easier.
  And it reports less changes, as e.g. 3.4 and 3.4.0 are considered to be the same.

Changed:
  U   grok/trunk/utilities/merge-versions.py

-=-
Modified: grok/trunk/utilities/merge-versions.py
===================================================================
--- grok/trunk/utilities/merge-versions.py	2009-04-16 19:38:16 UTC (rev 99221)
+++ grok/trunk/utilities/merge-versions.py	2009-04-16 23:18:43 UTC (rev 99222)
@@ -21,8 +21,7 @@
 
 """
 
-from distutils.version import LooseVersion
-from distutils.version import StrictVersion
+from pkg_resources import parse_version
 
 
 def make_versions(filename):
@@ -35,11 +34,11 @@
             package = split_line[0]
             if package == 'extends':
                 continue
-            try:
-                version = StrictVersion(split_line[1])
-            except ValueError:
-                version = LooseVersion(split_line[1])
-            versions[package] = version
+            original = split_line[1]
+            parsed = parse_version(original)
+            # Store both the original and the parsed version.
+            versions[package] = dict(
+                original=original, parsed=parsed)
     return versions
 
 
@@ -48,32 +47,14 @@
 grok_versions = make_versions('versions.cfg')
 kgs_versions = make_versions('versions.kgs')
 
-warnings = 0
 print "[versions]"
 for package, grok_version in sorted(grok_versions.items()):
     if package not in kgs_versions:
         # Extra package needed by Grok
-        print "%s = %s" % (package, grok_version)
+        print "%s = %s" % (package, grok_version['original'])
     else:
         kgs_version = kgs_versions[package]
-        if isinstance(grok_version, LooseVersion) or \
-                isinstance(kgs_version, LooseVersion):
-            # Loose versions cannot reliably be compared...
-            if isinstance(grok_version, LooseVersion) and \
-                isinstance(kgs_version, LooseVersion) and \
-                grok_version == kgs_version:
-                # ... unless they are both loose versions and exactly
-                # the same.
-                print "%s = %s" % (package, kgs_version)
-            else:
-                warnings += 1
-                print "#WARNING: package %s has a loose version number." % package
-                print "#GROK: %s = %s" % (package, grok_version)
-                print "#ZOPE: %s = %s" % (package, kgs_version)
-        elif grok_version > kgs_version:
-            print "%s = %s" % (package, grok_version)
-        elif grok_version <= kgs_version:
-            print "%s = %s" % (package, kgs_version)
-
-if warnings > 0:
-    print "#There were warnings; manual work needed; please check."
+        if grok_version['parsed'] > kgs_version['parsed']:
+            print "%s = %s" % (package, grok_version['original'])
+        else:
+            print "%s = %s" % (package, kgs_version['original'])



More information about the Checkins mailing list