MCPcopy Create free account
hub / github.com/IQEngine/IQEngine / run

Function run

plugins/src/plugins_api.py:54–75  ·  view source on GitHub ↗
(plugin_name, plugin: Plugin)

Source from the content-addressed store, hash-verified

52
53@app.post("/plugins/{plugin_name}")
54async def run(plugin_name, plugin: Plugin):
55 plugin_definition = await get_core_plugin_definition(plugin_name)
56 try:
57 validate_samples(plugin.samples_b64, plugin.samples_cloud)
58
59 if plugin.samples_b64:
60 samples = get_from_samples_b64(plugin.samples_b64[0])
61 custom_params = get_custom_params(plugin, plugin.samples_b64[0])
62 else:
63 samples = await get_from_samples_cloud(plugin.samples_cloud[0])
64 custom_params = get_custom_params(plugin, plugin.samples_cloud[0])
65 # Extract samples
66
67 plugin_instance = plugin_definition(**custom_params) # a way to provide params as a single dict
68
69 return plugin_instance.run(samples) # all python plugins should have a run method that takes in the samples
70
71 except ValueError as e:
72 raise fastapi.HTTPException(status_code=400, detail="Invalid parameters: " + str(e))
73 except Exception as e:
74 logging.error(e)
75 raise fastapi.HTTPException(status_code=500, detail="Unknown error in plugins_api")
76
77
78async def get_core_plugin_definition(plugin_name: str):

Callers

nothing calls this directly

Calls 6

validate_samplesFunction · 0.90
get_from_samples_b64Function · 0.90
get_custom_paramsFunction · 0.90
get_from_samples_cloudFunction · 0.90
runMethod · 0.45

Tested by

no test coverage detected