Spaces:
Running
Running
Download src/tools/registry.py from timfromhcs/FlyBrain-Lab: direct link, hf CLI and curl.
- Browser
- Download file 1.04 kB
-
https://huggingface.co/spaces/timfromhcs/FlyBrain-Lab/resolve/main/src/tools/registry.py
- Command line
-
hf download hf://spaces/timfromhcs/FlyBrain-Lab/src/tools/registry.py
-
curl -L -o registry.py https://huggingface.co/spaces/timfromhcs/FlyBrain-Lab/resolve/main/src/tools/registry.py
1.04 kB
| from typing import Dict, List, Any, Optional | |
| from src.tools.base import ToolConnector | |
| class ToolRegistry: | |
| def __init__(self): | |
| self._connectors: Dict[str, ToolConnector] = {} | |
| def register(self, connector: ToolConnector): | |
| self._connectors[connector.name] = connector | |
| def get(self, name: str) -> Optional[ToolConnector]: | |
| return self._connectors.get(name) | |
| def list_tools(self) -> List[Dict[str, Any]]: | |
| return [ | |
| { | |
| "name": c.name, | |
| "description": c.description, | |
| "input_schema": c.input_schema, | |
| "output_schema": c.output_schema, | |
| "execution_count": len(c.execution_history) | |
| } | |
| for c in self._connectors.values() | |
| ] | |
| def execute(self, tool_name: str, params: Dict[str, Any]) -> Dict[str, Any]: | |
| connector = self.get(tool_name) | |
| if not connector: | |
| raise KeyError(f"Tool connector '{tool_name}' not registered!") | |
| return connector.run(params) | |