Files
2026-07-13 13:05:14 +08:00

52 lines
1.3 KiB
Python

from __future__ import annotations
from typing import TYPE_CHECKING, Self
from rerun import server as _server
from .catalog import CatalogClient
if TYPE_CHECKING:
from os import PathLike
from types import TracebackType
class Server:
host = _server.Server.host
is_running = _server.Server.is_running
shutdown = _server.Server.shutdown
def __init__(
self,
*,
host: str = "0.0.0.0",
port: int | None = None,
datasets: dict[str, PathLike[str]] | None = None,
tables: dict[str, PathLike[str]] | None = None,
) -> None:
self._internal = _server.Server(
host=host,
port=port,
datasets=datasets,
tables=tables,
)
def __enter__(self) -> Self:
self._internal.__enter__()
return self
def __exit__(
self,
exc_type: type[BaseException] | None,
exc_value: BaseException | None,
traceback: TracebackType | None,
) -> None:
self._internal.__exit__(exc_type, exc_value, traceback)
def url(self) -> str:
"""Get the URL of the server to which clients can connect."""
return self._internal.url()
def client(self) -> CatalogClient:
return CatalogClient(self.url())