Пример #1
0
class Simulation(Layer):
    """
    Layer containing simulation related info.
    """
    def __init__(self, simulation=None):
        super(Simulation, self).__init__(simulation)
        self.sim_src = {}
        self.sim_obj = {}
        self.simulation = Registry()

    def add(self, sim_src, module, package=None):
        """
        """
        # import module
        mod = importlib.import_module(module, package)
        if sim_src.startswith('_'):
            err_msg = 'No "%s" attribute in "%s".' % (sim_src, mod)
            raise AttributeError(err_msg)
        self.sim_src[sim_src] = getattr(mod, sim_src)

    def open(self, sim_src, filename, path=None):
        filename = os.path.join(path, filename)
        # call constructor of sim source with filename argument
        self.sim_obj[sim_src] = self.sim_src[sim_src](filename)
        # register simulation in registry, the only reason to register an item
        # is make sure it doesn't overwrite other items
        self.simulation.register({sim_src: self.sim_obj[sim_src]})

    def load(self):
        """
        Add sim_src to layer.
        """
        for k, v in self.layer.iteritems():
            self.add(k, v['module'], v.get('package'))
            self.open(k, v['filename'], v.get('path'))
Пример #2
0
class Simulation(Layer):
    """
    Layer containing simulation related info.
    """
    def __init__(self, simulation=None):
        super(Simulation, self).__init__(simulation)
        self.sim_src = {}
        self.sim_obj = {}
        self.simulation = Registry()

    def add(self, sim_src, module, package=None):
        """
        """
        # import module
        mod = importlib.import_module(module, package)
        if sim_src.startswith('_'):
                err_msg = 'No "%s" attribute in "%s".' % (sim_src, mod)
                raise AttributeError(err_msg)
        self.sim_src[sim_src] = getattr(mod, sim_src)

    def open(self, sim_src, filename, path=None):
        filename = os.path.join(path, filename)
        # call constructor of sim source with filename argument
        self.sim_obj[sim_src] = self.sim_src[sim_src](filename)
        # register simulation in registry, the only reason to register an item
        # is make sure it doesn't overwrite other items
        self.simulation.register({sim_src: self.sim_obj[sim_src]})

    def load(self):
        """
        Add sim_src to layer.
        """
        for k, v in self.layer.iteritems():
            self.add(k, v['module'], v.get('package'))
            self.open(k, v['filename'], v.get('path'))
Пример #3
0
 def __init__(self, simulation=None):
     super(Simulation, self).__init__(simulation)
     self.sim_src = {}
     self.sim_obj = {}
     self.simulation = Registry()
Пример #4
0
 def __init__(self, simulation=None):
     super(Simulation, self).__init__(simulation)
     self.sim_src = {}
     self.sim_obj = {}
     self.simulation = Registry()