MCPcopy Create free account
hub / github.com/Dizzy-K/AutoPT / _build_tools

Function _build_tools

config/loader.py:202–229  ·  view source on GitHub ↗
(raw: Mapping[str, Any])

Source from the content-addressed store, hash-verified

200
201
202def _build_tools(raw: Mapping[str, Any]) -> ToolsConfig:
203 tools_data = _as_mapping(raw.get("tools"))
204 scanner_data = _as_mapping(tools_data.get("scanner"))
205 scanner_runtime_data = scanner_data
206
207 # Accept the old provider/providers layout for compatibility, but prefer
208 # the flat scanner config in public-facing docs and templates.
209 if "providers" in scanner_data or "provider" in scanner_data:
210 scanner_provider_name = str(scanner_data.get("provider", "xray")).strip() or "xray"
211 scanner_runtime_data = _as_mapping(_as_mapping(scanner_data.get("providers")).get(scanner_provider_name))
212 if not scanner_runtime_data:
213 scanner_runtime_data = scanner_data
214
215 scanner_provider_config = _build_command_tool_provider(
216 scanner_runtime_data,
217 default_executable="xray",
218 )
219
220 return ToolsConfig(
221 terminal=TerminalToolConfig(provider=str(_as_mapping(tools_data.get("terminal")).get("provider", "ssh"))),
222 web=WebToolConfig(provider=str(_as_mapping(tools_data.get("web")).get("provider", "urllib"))),
223 scanner=ScannerToolConfig(
224 executable=scanner_provider_config.executable,
225 extra_args=scanner_provider_config.extra_args,
226 env=scanner_provider_config.env,
227 working_directory=scanner_provider_config.working_directory,
228 ),
229 )
230
231
232def _build_paths(data: Mapping[str, Any]) -> PathsConfig:

Callers 1

load_app_configFunction · 0.85

Calls 6

_as_mappingFunction · 0.85
ToolsConfigClass · 0.85
TerminalToolConfigClass · 0.85
WebToolConfigClass · 0.85
ScannerToolConfigClass · 0.85

Tested by

no test coverage detected