[docs]defregister_cli(func:Callable|None=None,/,**kwargs)->Callable:"""Register a CLI command. Example: .. literalinclude:: /../examples/standalone_cli.py Args: func (Callable | None): The CLI function to register. If None, returns a decorator. Returns: Callable: The registered CLI function or a decorator if `func` is None. """defwrapper(func:Callable)->Callable:kwargs.setdefault("name",func.__name__)hydra_store(builds(_sanitize_type_hints(func)),**kwargs)returnfunciffuncisNone:returnwrapperreturnwrapper(func)
[docs]defrun_cli(func:Callable,/,**kwargs)->None:"""Run a CLI command. Args: func (Callable): The CLI command to run. """kwargs.setdefault("config_path",None)kwargs.setdefault("config_name",func.__name__)kwargs.setdefault("version_base","1.3")classZenWrapper(zen.wrapper.Zen):definstantiate(self,__c:Any)->Any:"""Overrides the default instantiation behavior to recursively convert to objects."""__c=zen.instantiate(__c,_target_wrapper_=self._instantiation_wrapper,_recursive_=True,_convert_="object",)return__czen.zen(func,ZenWrapper=ZenWrapper).hydra_main(**kwargs)