Source code for prism.modellink._modellink

# -*- coding: utf-8 -*-

"""
ModelLink
=========
Provides the definition of the :class:`~ModelLink` abstract base class.

"""


# %% IMPORTS
# Built-in imports
import abc
import os
from os import path
from tempfile import mktemp
import warnings

# Package imports
from e13tools import InputError, ShapeError
from e13tools.utils import (convert_str_seq, docstring_substitute,
                            get_outer_frame, raise_error)
import h5py
import hickle
import numpy as np
from sortedcontainers import SortedDict as sdict, SortedSet as sset

# PRISM imports
from prism import __version__
from prism._docstrings import std_emul_i_doc
from prism._internal import (FeatureWarning, RequestWarning, check_vals,
                             getCLogger, np_array)
from prism.modellink.utils import convert_data, convert_parameters

# All declaration
__all__ = ['ModelLink']


# %% MODELLINK CLASS DEFINITION
# TODO: Allow for inter-process methods?
# Like, having a method that is called before/after construction.