no change - prettyfied
[sfa.git] / sfa / rspecs / version_manager.py
index 5d7358f..55e29d7 100644 (file)
@@ -1,6 +1,6 @@
 import os
 from sfa.util.faults import InvalidRSpec, UnsupportedRSpecVersion
-from sfa.rspecs.baseversion import BaseVersion 
+from sfa.rspecs.version import RSpecVersion 
 from sfa.util.sfalogging import logger    
 
 class VersionManager:
@@ -8,6 +8,11 @@ class VersionManager:
         self.versions = []
         self.load_versions()
 
+    def __repr__(self):
+        return "<VersionManager with {} flavours: [{}]>"\
+            .format(len(self.versions),
+                    ", ".join( [ str(x) for x in self.versions ]))
+        
     def load_versions(self):
         path = os.path.dirname(os.path.abspath( __file__ ))
         versions_path = path + os.sep + 'versions'
@@ -28,7 +33,7 @@ class VersionManager:
         retval = None
         for version in self.versions:
             if type is None or type.lower() == version.type.lower():
-                if version_num is None or str(version_num) == version.version:
+                if version_num is None or str(float(version_num)) == str(float(version.version)):
                     if content_type is None or content_type.lower() == version.content_type.lower() \
                       or version.content_type == '*':
                         retval = version
@@ -53,8 +58,10 @@ class VersionManager:
             if num_parts > 2:
                 content_type = version_parts[2]
             retval = self._get_version(type, version_num, content_type) 
-        elif isinstance(version, BaseVersion):
+        elif isinstance(version, RSpecVersion):
             retval = version
+        elif not version:
+            retval = self.versions[0]
         else:
             raise UnsupportedRSpecVersion("No such version: %s "% str(version))