basestring -> StringType
[sfa.git] / sfa / rspecs / version_manager.py
index 4e60bac..e0a604e 100644 (file)
@@ -1,13 +1,21 @@
+from __future__ import print_function
+
 import os
 from sfa.util.faults import InvalidRSpec, UnsupportedRSpecVersion
 from sfa.rspecs.version import RSpecVersion 
 from sfa.util.sfalogging import logger    
+from sfa.util.py23 import StringType
 
 class VersionManager:
     def __init__(self):
         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'
@@ -42,7 +50,7 @@ class VersionManager:
         retval = None
         if isinstance(version, dict):
             retval =  self._get_version(version.get('type'), version.get('version'), version.get('content_type'))
-        elif isinstance(version, basestring):
+        elif isinstance(version, StringType):
             version_parts = version.split(' ')     
             num_parts = len(version_parts)
             type = version_parts[0]
@@ -71,23 +79,24 @@ class VersionManager:
             raise InvalidRSpec("Unkwnown RSpec schema: %s" % schema)
         return retval
 
-def show_by_string(string):
-    try:
-        print v.get_version(string)
-    except Exception,e:
-        print e
-def show_by_schema(string):
-    try:
-        print v.get_version_by_schema(string)
-    except Exception,e:
-        print e
+    def show_by_string(self, string):
+        try:
+            print(self.get_version(string))
+        except Exception as e:
+            print(e)
+
+    def show_by_schema(self, string):
+        try:
+            print(self.get_version_by_schema(string))
+        except Exception as e:
+            print(e)
 
 if __name__ == '__main__':
-    v = VersionManager()
-    print v.versions
-    show_by_string('sfa 1') 
-    show_by_string('protogeni 2') 
-    show_by_string('protogeni 2 advertisement') 
-    show_by_schema('http://www.protogeni.net/resources/rspec/2/ad.xsd') 
-    show_by_schema('http://sorch.netmode.ntua.gr/ws/RSpec/ad.xsd')
+    manager = VersionManager()
+    print(manager)
+    manager.show_by_string('sfa 1') 
+    manager.show_by_string('protogeni 2') 
+    manager.show_by_string('protogeni 2 advertisement') 
+    manager.show_by_schema('http://www.protogeni.net/resources/rspec/2/ad.xsd') 
+    manager.show_by_schema('http://sorch.netmode.ntua.gr/ws/RSpec/ad.xsd')