Esempio n. 1
0
    def save_metadata(self):
        trial_name = 'trial_{0:04d}'.format(self.trial_counter)
        file_list = [f for f in os.listdir(self.data_dir) if f.startswith(trial_name)]
        """ create a document """
        doc = odml.Document()
        """ create dataset section """
        ds = odml.Section('datasets', 'dataset')
        p = odml.Property('files', None)
        ds.append(p)
        for f in file_list:
            p.append('{0:s}/{1:s}'.format(self.data_dir, f))
        doc.append(ds)

        for t in list(self.metadata_tabs.values()):
            m = t.metadata()
            if m.type == 'recording':
                v = odml.Value(self.record_timestamp, dtype='datetime')
                m.append(odml.Property('StartTime', v))
            doc.append(m)

        for cam_name, cam in list(self.cameras.items()):
            s = odml.Section(cam_name,'hardware/camera')
        if not cam.is_raspicam():
            v = odml.Value(frames_per_second, unit="Hz")
            s.append(odml.Property('Framerate', v))
            for p, v in list(cam.get_properties().items()):
                prop = odml.Property(p, v)
                s.append(prop)
            doc.append(s)
        doc.append(self.event_list)
        print(self.event_list)

        from odml.tools.xmlparser import XMLWriter
        writer = XMLWriter(doc)
        writer.write_file('{0}/{1}.xml'.format(self.data_dir, trial_name))
    def save_metadata(self):
        trial_name = 'trial_{0:04d}'.format(self.trial_counter)
        file_list = [f for f in os.listdir(self.data_dir) if f.startswith(trial_name)]
        # create a document
        doc = odml.Document()
        # create dataset section
        ds = odml.Section('datasets', 'dataset')
        p = odml.Property('files', None)
        ds.append(p)
        for f in file_list:
            p.append('{0:s}/{1:s}'.format(self.data_dir, f))
        doc.append(ds)

        for t in self.metadata_tabs.values():
            m = t.metadata()
            if m.type == 'recording':
                m.append(odml.Property('StartTime', self.record_timestamp))
            doc.append(m)

        for cam_name, cam in self.cameras.items():
            s = odml.Section(cam_name,'hardware/camera')
            s.append(odml.Property('Framerate', frames_per_second, dtype='int', unit='Hz'))
            for p, v in cam.get_properties().items():
                prop = odml.Property(p, v)
                s.append(prop)
            doc.append(s)
        doc.append(self.event_list)

        from odml.tools.xmlparser import XMLWriter
        writer = XMLWriter(doc)
        writer.write_file('{0}/{1}.xml'.format(self.data_dir, trial_name))
Esempio n. 3
0
    def test_read_write(self):
        doc = Document("author")
        sec = Section("name", "type")
        doc.append(sec)
        sec.append(Property("strprop", "somestring"))
        sec.append(Property("txtprop", "some\ntext"))
        sec.append(Property("intprop", 200))
        sec.append(Property("floatprop", 2.00))
        sec.append(Property("datetimeprop", dt.now()))
        sec.append(Property("dateprop", dt.now().date()))
        sec.append(Property("timeprop", dt.now().time()))
        sec.append(Property("boolprop", True))
        if sys.version_info < (3, 0):
            str_doc = unicode(XMLWriter(doc))
        else:
            str_doc = str(XMLWriter(doc))
        new_doc = XMLReader().fromString(str_doc)
        new_sec = new_doc.sections[0]

        p = new_sec.properties["strprop"]
        assert (p.dtype == "string")
        if sys.version_info < (3, 0):
            assert (type(p.value[0]) == unicode)
        else:
            assert (type(p.value[0]) == str)

        p = new_sec.properties["txtprop"]
        assert (p.dtype == "text")
        if sys.version_info < (3, 0):
            assert (type(p.value[0]) == unicode)
        else:
            assert (type(p.value[0]) == str)

        p = new_sec.properties["intprop"]
        assert (p.dtype == "int")
        assert (type(p.value[0]) == int)

        p = new_sec.properties["floatprop"]
        assert (p.dtype == "float")
        assert (type(p.value[0]) == float)

        p = new_sec.properties["datetimeprop"]
        assert (p.dtype == "datetime")
        assert (type(p.value[0]) == dt)

        p = new_sec.properties["dateprop"]
        assert (p.dtype == "date")
        assert (type(p.value[0]) == date)

        p = new_sec.properties["timeprop"]
        assert (p.dtype == "time")
        assert (type(p.value[0]) == time)

        p = new_sec.properties["boolprop"]
        assert (p.dtype == "boolean")
        assert (type(p.value[0]) == bool)
Esempio n. 4
0
 def save(self, uri):
     self.document.clean()
     doc = XMLWriter(self.document)
     gf = gio.File(uri)
     try:
         data = unicode(doc)
     except Exception, e:
         self._info_bar.show_info("Save failed: %s" % e.message)
         return
Esempio n. 5
0
    def test_read_write(self):
        doc = Document("author")
        sec = Section("name", "type", parent=doc)

        sec.append(Property("strprop", "somestring"))
        sec.append(Property("txtprop", "some\ntext"))
        sec.append(Property("intprop", 200))
        sec.append(Property("floatprop", 2.00))
        sec.append(Property("datetimeprop", dt.now()))
        sec.append(Property("dateprop", dt.now().date()))
        sec.append(Property("timeprop", dt.now().time()))
        sec.append(Property("boolprop", True))

        str_doc = str(XMLWriter(doc))

        new_doc = XMLReader().from_string(str_doc)
        new_sec = new_doc.sections[0]

        prop = new_sec.properties["strprop"]
        self.assertEqual(prop.dtype, "string")
        self.assertIsInstance(prop.values[0], str)

        prop = new_sec.properties["txtprop"]
        self.assertEqual(prop.dtype, "text")
        self.assertIsInstance(prop.values[0], str)

        prop = new_sec.properties["intprop"]
        self.assertEqual(prop.dtype, "int")
        self.assertIsInstance(prop.values[0], int)

        prop = new_sec.properties["floatprop"]
        self.assertEqual(prop.dtype, "float")
        self.assertIsInstance(prop.values[0], float)

        prop = new_sec.properties["datetimeprop"]
        self.assertEqual(prop.dtype, "datetime")
        self.assertIsInstance(prop.values[0], dt)

        prop = new_sec.properties["dateprop"]
        self.assertEqual(prop.dtype, "date")
        self.assertIsInstance(prop.values[0], date)

        prop = new_sec.properties["timeprop"]
        self.assertEqual(prop.dtype, "time")
        self.assertIsInstance(prop.values[0], time)

        prop = new_sec.properties["boolprop"]
        self.assertEqual(prop.dtype, "boolean")
        self.assertIsInstance(prop.values[0], bool)
Esempio n. 6
0
    def test_read_write(self):
        doc = Document("author")
        sec = Section("name", "type")
        doc.append(sec)
        sec.append(Property("strprop", "somestring"))
        sec.append(Property("txtprop", "some\ntext"))
        sec.append(Property("intprop", 200))
        sec.append(Property("floatprop", 2.00))
        sec.append(Property("datetimeprop", dt.now()))
        sec.append(Property("dateprop", dt.now().date()))
        sec.append(Property("timeprop", dt.now().time()))
        sec.append(Property("boolprop", True))

        str_doc = unicode(XMLWriter(doc))
        new_doc = XMLReader().fromString(str_doc)
        new_sec = new_doc.sections[0]

        v = new_sec.properties["strprop"].value
        assert (v.dtype == "string")
        assert (type(v.data) == unicode)

        v = new_sec.properties["txtprop"].value
        assert (v.dtype == "text")
        assert (type(v.data) == unicode)

        v = new_sec.properties["intprop"].value
        assert (v.dtype == "int")
        assert (type(v.data) == int)

        v = new_sec.properties["floatprop"].value
        assert (v.dtype == "float")
        assert (type(v.data) == float)

        v = new_sec.properties["datetimeprop"].value
        assert (v.dtype == "datetime")
        assert (type(v.data) == dt)

        v = new_sec.properties["dateprop"].value
        assert (v.dtype == "date")
        assert (type(v.data) == date)

        v = new_sec.properties["timeprop"].value
        assert (v.dtype == "time")
        assert (type(v.data) == time)

        v = new_sec.properties["boolprop"].value
        assert (v.dtype == "boolean")
        assert (type(v.data) == bool)