예제 #1
0
    def testCompoundTypeItem(self):
        dt = np.dtype([("temp", np.float32), ("pressure", np.float32), ("wind", np.int16)])
        typeItem = hdf5dtype.getTypeItem(dt)
        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
        self.assertTrue('fields' in typeItem)
        fields = typeItem['fields']
        self.assertEqual(len(fields), 3)
        tempField = fields[0]
        self.assertEqual(tempField['name'], 'temp')
        self.assertTrue('type' in tempField)
        tempFieldType = tempField['type']
        self.assertEqual(tempFieldType['class'], 'H5T_FLOAT')
        self.assertEqual(tempFieldType['base'], 'H5T_IEEE_F32LE')
        self.assertEqual(typeSize, 10)

        typeItem = hdf5dtype.getTypeResponse(typeItem) # non-verbose format
        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
        self.assertTrue('fields' in typeItem)
        fields = typeItem['fields']
        self.assertEqual(len(fields), 3)
        tempField = fields[0]
        self.assertEqual(tempField['name'], 'temp')
        self.assertTrue('type' in tempField)
        tempFieldType = tempField['type']
        self.assertEqual(tempFieldType['class'], 'H5T_FLOAT')
        self.assertEqual(tempFieldType['base'], 'H5T_IEEE_F32LE')
        self.assertEqual(typeSize, 10)
예제 #2
0
    def testCompoundTypeItem(self):
        dt = np.dtype([("temp", np.float32), ("pressure", np.float32), ("wind", np.int16)])
        typeItem = hdf5dtype.getTypeItem(dt)
        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
        self.assertTrue('fields' in typeItem)
        fields = typeItem['fields']
        self.assertEqual(len(fields), 3)
        tempField = fields[0]
        self.assertEqual(tempField['name'], 'temp')
        self.assertTrue('type' in tempField)
        tempFieldType = tempField['type']
        self.assertEqual(tempFieldType['class'], 'H5T_FLOAT')
        self.assertEqual(tempFieldType['base'], 'H5T_IEEE_F32LE')
        self.assertEqual(typeSize, 10)

        typeItem = hdf5dtype.getTypeResponse(typeItem) # non-verbose format
        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
        self.assertTrue('fields' in typeItem)
        fields = typeItem['fields']
        self.assertEqual(len(fields), 3)
        tempField = fields[0]
        self.assertEqual(tempField['name'], 'temp')
        self.assertTrue('type' in tempField)
        tempFieldType = tempField['type']
        self.assertEqual(tempFieldType['class'], 'H5T_FLOAT')
        self.assertEqual(tempFieldType['base'], 'H5T_IEEE_F32LE')
        self.assertEqual(typeSize, 10)
예제 #3
0
 def testBaseFloatTypeItem(self):
     dt = np.dtype('<f8')
     typeItem = hdf5dtype.getTypeItem(dt)
     self.assertEqual(typeItem['class'], 'H5T_FLOAT')
     self.assertEqual(typeItem['base'], 'H5T_IEEE_F64LE')
     typeItem = hdf5dtype.getTypeResponse(typeItem) # non-verbose format
     self.assertEqual(typeItem['class'], 'H5T_FLOAT')
     self.assertEqual(typeItem['base'], 'H5T_IEEE_F64LE')
예제 #4
0
 def testBaseIntegerTypeItem(self):
     dt = np.dtype('<i1')
     typeItem = hdf5dtype.getTypeItem(dt)
     self.assertEqual(typeItem['class'], 'H5T_INTEGER')
     self.assertEqual(typeItem['base'], 'H5T_STD_I8LE')
     typeItem = hdf5dtype.getTypeResponse(typeItem) # non-verbose format
     self.assertEqual(typeItem['class'], 'H5T_INTEGER')
     self.assertEqual(typeItem['base'], 'H5T_STD_I8LE')
예제 #5
0
 def testBaseFloatTypeItem(self):
     dt = np.dtype('<f8')
     typeItem = hdf5dtype.getTypeItem(dt)
     self.assertEqual(typeItem['class'], 'H5T_FLOAT')
     self.assertEqual(typeItem['base'], 'H5T_IEEE_F64LE')
     typeItem = hdf5dtype.getTypeResponse(typeItem) # non-verbose format
     self.assertEqual(typeItem['class'], 'H5T_FLOAT')
     self.assertEqual(typeItem['base'], 'H5T_IEEE_F64LE')
예제 #6
0
 def testBaseIntegerTypeItem(self):
     dt = np.dtype('<i1')
     typeItem = hdf5dtype.getTypeItem(dt)
     self.assertEqual(typeItem['class'], 'H5T_INTEGER')
     self.assertEqual(typeItem['base'], 'H5T_STD_I8LE')
     typeItem = hdf5dtype.getTypeResponse(typeItem) # non-verbose format
     self.assertEqual(typeItem['class'], 'H5T_INTEGER')
     self.assertEqual(typeItem['base'], 'H5T_STD_I8LE')
예제 #7
0
 def dumpDatatype(self, uuid):
     response = {}
     item = self.db.getCommittedTypeItemByUuid(uuid)
     response['alias'] = item['alias']
     typeItem = item['type']
     response['type'] = hdf5dtype.getTypeResponse(typeItem)
     attributes = self.dumpAttributes('datatypes', uuid)
     if attributes:
         response['attributes'] = attributes
     return response
예제 #8
0
 def dumpDatatype(self, uuid):
     response = { }
     item = self.db.getCommittedTypeItemByUuid(uuid)
     response['alias'] = item['alias']
     typeItem = item['type']
     response['type'] = hdf5dtype.getTypeResponse(typeItem)
     attributes = self.dumpAttributes('datatypes', uuid)
     if attributes:
         response['attributes'] = attributes
     return response
예제 #9
0
 def dumpAttribute(self, col_name, uuid, attr_name):
     self.log.info("dumpAttribute: [" + attr_name + "]")
     item = self.db.getAttributeItem(col_name, uuid, attr_name)
     response = { 'name': attr_name }
     typeItem = item['type']
     response['type'] = hdf5dtype.getTypeResponse(typeItem)
     response['shape'] = item['shape']
     if not self.options.D:
         if 'value' not in item:
             self.log.warning("no value key in attribute: " + attr_name)
         else:
             response['value'] = item['value']   # dump values unless header -D was passed
     return response
 def dumpAttribute(self, col_name, uuid, attr_name):
     self.log.info("dumpAttribute: [" + attr_name + "]")
     item = self.db.getAttributeItem(col_name, uuid, attr_name)
     response = {'name': attr_name}
     typeItem = item['type']
     response['type'] = hdf5dtype.getTypeResponse(typeItem)
     response['shape'] = item['shape']
     if not self.options.D:
         if 'value' not in item:
             self.log.warning("no value key in attribute: " + attr_name)
         else:
             response['value'] = item['value']  # dump values unless header -D was passed
     return response
예제 #11
0
    def dumpDataset(self, uuid):
        response = {}
        self.log.info("dumpDataset: " + uuid)
        item = self.db.getDatasetItemByUuid(uuid)
        if 'alias' in item:
            alias = item['alias']
            if alias:
                self.log.info("dumpDataset alias: [" + alias[0] + "]")
            response['alias'] = item['alias']

        typeItem = item['type']
        response['type'] = hdf5dtype.getTypeResponse(typeItem)
        shapeItem = item['shape']
        shape_rsp = {}
        num_elements = 1
        shape_rsp['class'] = shapeItem['class']
        if 'dims' in shapeItem:
            shape_rsp['dims'] = shapeItem['dims']
            for dim in shapeItem['dims']:
                num_elements *= dim
        if 'maxdims' in shapeItem:
            maxdims = []
            for dim in shapeItem['maxdims']:
                if dim == 0:
                    maxdims.append('H5S_UNLIMITED')
                else:
                    maxdims.append(dim)
            shape_rsp['maxdims'] = maxdims
        response['shape'] = shape_rsp

        if 'creationProperties' in item:
            response['creationProperties'] = item['creationProperties']

        attributes = self.dumpAttributes('datasets', uuid)
        if attributes:
            response['attributes'] = attributes

        if not (self.options.D or self.options.d):
            if num_elements > 0:
                value = self.db.getDatasetValuesByUuid(uuid)
                response[
                    'value'] = value  # dump values unless header flag was passed
            else:
                response['value'] = []  # empty list
        return response
예제 #12
0
    def dumpDataset(self, uuid):
        response = { }
        self.log.info("dumpDataset: " + uuid)
        item = self.db.getDatasetItemByUuid(uuid)
        if 'alias' in item:
            alias = item['alias']
            if alias:
                self.log.info("dumpDataset alias: [" + alias[0] + "]")
            response['alias'] = item['alias']

        typeItem = item['type']
        response['type'] = hdf5dtype.getTypeResponse(typeItem)
        shapeItem = item['shape']
        shape_rsp = {}
        num_elements = 1
        shape_rsp['class'] = shapeItem['class']
        if 'dims' in shapeItem:
            shape_rsp['dims'] = shapeItem['dims']
            for dim in shapeItem['dims']:
                num_elements *= dim
        if 'maxdims' in shapeItem:
            maxdims = []
            for dim in shapeItem['maxdims']:
                if dim == 0:
                    maxdims.append('H5S_UNLIMITED')
                else:
                    maxdims.append(dim)
            shape_rsp['maxdims'] = maxdims
        response['shape'] = shape_rsp

        if 'creationProperties' in item:
            response['creationProperties'] = item['creationProperties']

        attributes = self.dumpAttributes('datasets', uuid)
        if attributes:
            response['attributes'] = attributes


        if not (self.options.D or self.options.d):
            if num_elements > 0:
                value = self.db.getDatasetValuesByUuid(uuid)
                response['value'] = value   # dump values unless header flag was passed
            else:
                response['value'] = []  # empty list
        return response