MCPcopy
hub / github.com/apache/caldera / load_plugins

Method load_plugins

app/service/app_svc.py:117–141  ·  view source on GitHub ↗
(self, plugins)

Source from the content-addressed store, hash-verified

115 self.loop.create_task(op.run(self.get_services()))
116
117 async def load_plugins(self, plugins):
118 def trim(p):
119 if p.startswith('.'):
120 return False
121 return True
122
123 async def load(p):
124 plugin = Plugin(name=p)
125 if plugin.load_plugin():
126 await self.get_service('data_svc').store(plugin)
127 self._loaded_plugins.append(plugin)
128
129 if plugin.name in self.get_config('plugins') or plugin.name == 'magma':
130 await plugin.enable(self.get_services())
131 self.log.info('Enabled plugin: %s' % plugin.name)
132
133 for plug in filter(trim, plugins):
134 if not os.path.isdir('plugins/%s' % plug) or not os.path.isfile('plugins/%s/hook.py' % plug):
135 self.log.error('Problem locating the "%s" plugin. Ensure code base was cloned recursively.' % plug)
136 exit(0)
137 asyncio.get_event_loop().create_task(load(plug))
138
139 templates = ['plugins/%s/templates' % p.lower() for p in self.get_config('plugins')]
140 templates.append('plugins/magma/dist')
141 aiohttp_jinja2.setup(self.application, loader=jinja2.FileSystemLoader(templates))
142
143 async def retrieve_compiled_file(self, name, platform, location=''):
144 _, path = await self._services.get('file_svc').find_file_path('%s-%s' % (name, platform), location=location)

Callers 2

initializeFunction · 0.95
run_tasksFunction · 0.45

Calls 2

loadFunction · 0.50
get_configMethod · 0.45

Tested by 1

initializeFunction · 0.76