MCPcopy Create free account
hub / github.com/SkyworkAI/DeepResearchAgent / register

Method register

src/benchmark/context.py:243–305  ·  view source on GitHub ↗

Register a benchmark class or instance.

(self, 
                       benchmark: Union[Benchmark, Type[Benchmark]],
                       benchmark_config_dict: Optional[Dict[str, Any]] = None,
                       override: bool = False,
                       version: Optional[str] = None)

Source from the content-addressed store, hash-verified

241 return benchmark_configs
242
243 async def register(self,
244 benchmark: Union[Benchmark, Type[Benchmark]],
245 benchmark_config_dict: Optional[Dict[str, Any]] = None,
246 override: bool = False,
247 version: Optional[str] = None) -> BenchmarkConfig:
248 """Register a benchmark class or instance."""
249 try:
250 if isinstance(benchmark, Benchmark):
251 benchmark_instance = benchmark
252 benchmark_cls = type(benchmark)
253 if benchmark_config_dict:
254 raise ValueError("Extra configuration not allowed when registering benchmark instances.")
255 benchmark_config_dict = {}
256 else:
257 benchmark_cls = benchmark
258 if benchmark_config_dict is None:
259 name_key = inflection.underscore(benchmark_cls.__name__)
260 benchmark_config_dict = config.get(name_key, {})
261
262 try:
263 benchmark_instance = benchmark_cls(**benchmark_config_dict)
264 except Exception as e:
265 raise ValueError(f"Failed to instantiate benchmark {benchmark_cls.__name__}: {e}")
266
267 benchmark_name = benchmark_instance.name
268 benchmark_description = benchmark_instance.description
269
270 if not benchmark_name:
271 raise ValueError("Benchmark.name cannot be empty.")
272
273 if benchmark_name in self._benchmark_configs and not override:
274 raise ValueError(f"Benchmark '{benchmark_name}' already registered. Use override=True.")
275
276 if version is None:
277 version = await version_manager.get_version("benchmark", benchmark_name)
278
279 code = dynamic_manager.get_full_module_source(benchmark_cls)
280
281 benchmark_config = BenchmarkConfig(
282 name=benchmark_name,
283 description=benchmark_description,
284 version=version,
285 cls=benchmark_cls,
286 config=benchmark_config_dict,
287 instance=benchmark_instance if isinstance(benchmark, Benchmark) else None,
288 metadata=getattr(benchmark_instance, 'metadata', {}),
289 code=code,
290 )
291
292 self._benchmark_configs[benchmark_name] = benchmark_config
293 if benchmark_name not in self._benchmark_history_versions:
294 self._benchmark_history_versions[benchmark_name] = {}
295 self._benchmark_history_versions[benchmark_name][version] = benchmark_config
296
297 await version_manager.register_version("benchmark", benchmark_name, version)
298 await self.save_to_json()
299 await self.save_contract()
300

Callers

nothing calls this directly

Calls 9

save_to_jsonMethod · 0.95
save_contractMethod · 0.95
BenchmarkConfigClass · 0.90
register_versionMethod · 0.80
getMethod · 0.45
get_versionMethod · 0.45
infoMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected