in submitit/auto/auto.py [0:0]
def __init__(self, folder: Union[str, Path], cluster: Optional[str] = None, **kwargs: Any) -> None:
self.cluster = cluster or self.which()
executors = plugins.get_executors()
if self.cluster not in executors:
raise ValueError(f"AutoExecutor doesn't know any executor named {self.cluster}")
_convert_deprecated_args(kwargs, self._ctor_deprecated_args)
err = "Extra arguments must be prefixed by executor named, received unknown arg"
err_ex_list = f"Known executors: {', '.join(executors)}."
for name in kwargs:
assert "_" in name, f"{err} '{name}'. {err_ex_list}"
prefix = name.split("_")[0]
assert (
prefix in executors
), f"{err} '{name}', and '{prefix}' executor is also unknown. {err_ex_list}"
self._executor = flexible_init(executors[self.cluster], folder, **kwargs)
valid = self._valid_parameters()
self._deprecated_args = {
arg: f"{ex_name}_{arg}"
for ex_name, ex in executors.items()
for arg in ex._valid_parameters()
if arg not in valid
}
super().__init__(self._executor.folder, self._executor.parameters)