Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
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')