Source code for dsgrid.layerstack

import os

from layerstack.layer import ModelLayerBase

from dsgrid import DSGridValueError
from dsgrid.dataformat.datafile import Datafile

layer_library_dir = os.path.join(os.path.dirname(__file__),'layers')

[docs]class DSGridDatafileLayer(ModelLayerBase):
[docs] @classmethod def new_filepath(cls, model, suffix, out_filepath=None): result = out_filepath if result is None: filename, ext = os.path.splitext(os.path.basename(model.filepath)) result = os.path.join(os.path.dirname(model.filepath),filename + '_' + suffix + ext) return result
@classmethod def _check_model_type(cls, model): """ Checks model to ensure that it is a dsgrid.dataformat.datafile.Datafile. Raises a DSGridValueError if model is not of that type. Parameters ---------- model : dsgrid.dataformat.datafile.Datafile Datafile to be operated on Returns ------- None """ if not isinstance(model,Datafile): raise DSGridValueError('Expecting a {}, but got a {}'.format(Datafile,type(model))) @classmethod def _load_model(cls, model_path): """ Load dsgrid.dataformat.datafile.Datafile from model_path. Parameters ---------- model_path : 'str' Path to dsgrid.dataformat.datafile.Datafile Returns ------- dsgrid.dataformat.datafile.Datafile Datafile to be operated on """ return Datafile.load(model_path) @classmethod def _save_model(cls, model, model_path): """ Save model from cli. Derived classes must implement this method if they support saving the model out to disk. Parameters ---------- model model to be saved to disk model_path : 'str' Path to save model to """ cls._check_model_type(model) model.save(model_path)