Spaces:
Build error
Build error
from openhands.runtime.base import Runtime | |
from openhands.runtime.impl.cli.cli_runtime import CLIRuntime | |
from openhands.runtime.impl.daytona.daytona_runtime import DaytonaRuntime | |
from openhands.runtime.impl.docker.docker_runtime import ( | |
DockerRuntime, | |
) | |
from openhands.runtime.impl.e2b.e2b_runtime import E2BRuntime | |
from openhands.runtime.impl.local.local_runtime import LocalRuntime | |
from openhands.runtime.impl.modal.modal_runtime import ModalRuntime | |
from openhands.runtime.impl.remote.remote_runtime import RemoteRuntime | |
from openhands.runtime.impl.runloop.runloop_runtime import RunloopRuntime | |
from openhands.utils.import_utils import get_impl | |
# mypy: disable-error-code="type-abstract" | |
_DEFAULT_RUNTIME_CLASSES: dict[str, type[Runtime]] = { | |
'eventstream': DockerRuntime, | |
'docker': DockerRuntime, | |
'e2b': E2BRuntime, | |
'remote': RemoteRuntime, | |
'modal': ModalRuntime, | |
'runloop': RunloopRuntime, | |
'local': LocalRuntime, | |
'daytona': DaytonaRuntime, | |
'cli': CLIRuntime, | |
} | |
def get_runtime_cls(name: str) -> type[Runtime]: | |
""" | |
If name is one of the predefined runtime names (e.g. 'docker'), return its class. | |
Otherwise attempt to resolve name as subclass of Runtime and return it. | |
Raise on invalid selections. | |
""" | |
if name in _DEFAULT_RUNTIME_CLASSES: | |
return _DEFAULT_RUNTIME_CLASSES[name] | |
try: | |
return get_impl(Runtime, name) | |
except Exception as e: | |
known_keys = _DEFAULT_RUNTIME_CLASSES.keys() | |
raise ValueError( | |
f'Runtime {name} not supported, known are: {known_keys}' | |
) from e | |
__all__ = [ | |
'Runtime', | |
'E2BRuntime', | |
'RemoteRuntime', | |
'ModalRuntime', | |
'RunloopRuntime', | |
'DockerRuntime', | |
'DaytonaRuntime', | |
'CLIRuntime', | |
'get_runtime_cls', | |
] | |