def __init__(self, root_dir=None): self._root_dir = root_dir or \ os.path.join(os.path.expanduser('~'), '.arest') models_dir = os.path.join(self._root_dir, 'models') resource_dir = os.path.join(self._root_dir, 'resources') plugins_dir = os.path.join(self._root_dir, 'plugins') self._create_paths(models_dir, resource_dir, plugins_dir) # Create a model storage self._model_storage = aria_.application_model_storage( api=sql_mapi.SQLAlchemyModelAPI, initiator_kwargs={'base_dir': models_dir} ) self._resource_storage = aria_.application_resource_storage( api=filesystem_rapi.FileSystemResourceAPI, api_kwargs={'directory': resource_dir} ) self._plugin_manager = plugin.PluginManager( model=self._model_storage, plugins_dir=plugins_dir ) self._core = aria_core.Core( model_storage=self.model, resource_storage=self.resource, plugin_manager=self._plugin_manager )
def plugin_manager(model, plugins_dir): return plugin.PluginManager(model=model, plugins_dir=plugins_dir)
def plugin_manager(self): if self._plugin_manager is None: self._plugin_manager = plugin.PluginManager( self.model, self._tmpdir) return self._plugin_manager