Source code for swh.scheduler
# Copyright (C) 2018-2024 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from swh.scheduler.interface import SchedulerInterface
[docs]
def get_scheduler(cls: str, **kwargs) -> SchedulerInterface:
"""
Get a scheduler object of class `cls` with arguments `**kwargs`.
Args:
cls: scheduler's class
kwargs: arguments to pass to the class' constructor
Returns:
an instance of swh.scheduler.
Raises:
ValueError if passed an unknown storage class.
"""
from swh.core.config import get_swh_backend_module
_, BackendClass = get_swh_backend_module("scheduler", cls)
assert BackendClass is not None
return BackendClass(**kwargs)