Source code for pyicat_plus.client.bliss
import os
from typing import Optional
from blissdata.beacon.files import read_config
from .main import IcatClient
[docs]
def get_icat_client(
timeout: Optional[float] = None,
) -> IcatClient:
beacon_host = os.environ.setdefault("BEACON_HOST", "id00:25000")
url = f"beacon://{beacon_host}/__init__.yml"
config = read_config(url).get("icat_servers")
if not config:
raise RuntimeError(
f"Beacon host {beacon_host} does not provide ICAT configuration"
)
return IcatClient(
metadata_urls=config["metadata_urls"],
elogbook_url=config["elogbook_url"],
elogbook_token=config["elogbook_token"],
feedback_timeout=timeout,
add_files_urls=config["metadata_urls"],
)