def write(self, metadata=None, data=None, model_kwargs=None, **kwargs): """Write a file which corresponds to the given metadata. Args: metadata (dict or MetaDataModel): metadata of the data to save data (numpy array): data model_kwargs (dict): kwargs to pass to the selected model Returns: void """ if model_kwargs is None: model_kwargs = {} # Check metadata is valid if metadata is None: raise ValueError('Metadata must be specified') if type(metadata) is dict: if 'path' not in metadata.keys(): raise ValueError('Metadata must have path key') else: metadata = MetaDataModel(metadata) elif type(metadata) is MetaDataModel: pass else: raise ValueError('Type of metadata must be dict or MetaDataModel') metadata.save(metadata.data['path'] + metadata._file_extensions[0]) # Select a suitable model and save data self.model = self._select_model(metadata) self.model = self.model(metadata=metadata, data=data, **model_kwargs) self.model.save()
def test_metadata_model(): """Run the metadata loader test.""" path = 'test/records/json_model_test/json_test.json.json' from pydtk.models import MetaDataModel assert MetaDataModel.is_loadable(path) # load metadata = MetaDataModel() metadata.load(path) metadata.save('/tmp/test.json')