fixes for rec.get
[sface.git] / sface / sfidata.py
index 1a326c6..f4c872c 100644 (file)
@@ -28,42 +28,26 @@ class SfiData:
 
         return names
 
+    def getRecord(self, rec_file):
+        if os.path.exists(rec_file):
+            from sfa.storage.record import Record
+            xml = open(rec_file).read()
+            rec = Record(xml=xml)
+            return rec.todict()
+        return None         
+
     def getSliceRecord(self):
         rec_file = config.getSliceRecordFile()
-        if os.path.exists(rec_file):
-            try:
-                from sfa.storage.record import SliceRecord
-                xml = open(rec_file).read()
-                rec = SliceRecord()
-                rec.load_from_string(xml)
-                return rec
-            except:
-                from sfa.storage.model import make_record
-                obj=make_record (xml=file(rec_file).read())
-                # consider as a dict for smooth transition
-                return obj.__dict__
-        return None
+        return self.getRecord(rec_file)
 
     def getUserRecord(self):
         rec_file = config.getUserRecordFile()
-        if os.path.exists(rec_file):
-            try:
-                from sfa.storage.record import SliceUser
-                xml = open(rec_file).read()
-                rec = UserRecord()
-                rec.load_from_string(xml)
-                return rec
-            except:
-                from sfa.storage.model import make_record
-                obj=make_record (xml=file(rec_file).read())
-                # consider as a dict for smooth transition
-                return obj.__dict__
-        return None
+        return self.getRecord(rec_file)
 
     def getUserSliceHrns(self):
         rec = self.getUserRecord()
         if rec:
-            slices = rec.get_field("slices")
+            slices = rec.get("slices",[])
             if (type(slices)!=list) or (len(slices)<1):
                 return []