import logging
import os
from abc import ABC, abstractmethod
[docs]class Model(ABC):
def __init__(self, filename):
self.logger = logging.getLogger(__name__)
self.filename = filename
self.name = os.path.basename(filename)
self.logger.info("Model created with stan file %s" % self.filename)
@abstractmethod
[docs] def get_init(self, **kwargs):
raise NotImplementedError()
@abstractmethod
[docs] def get_name(self):
raise NotImplementedError()
@abstractmethod
[docs] def get_data(self, simulation, cosmology_index):
raise NotImplementedError()
@abstractmethod
[docs] def get_parameters(self):
raise NotImplementedError()
[docs] def get_stan_file(self):
return self.filename
[docs] def correct_chain(self, dictionary, simulation, data):
return dictionary
@abstractmethod
[docs] def get_labels(self):
raise NotImplementedError()
[docs] def get_init_wrapped(self, **kwargs):
def init():
return self.get_init(**kwargs)
return init
@abstractmethod
[docs] def get_cosmo_params(self):
raise NotImplementedError()