poly_lithic.src.interfaces packageπŸ”—

SubmodulesπŸ”—

Module contentsπŸ”—

Interfaces module.

class poly_lithic.src.interfaces.BaseInterface(config)[source]πŸ”—

Bases: ABC

abstractmethod monitor(name, handler, **kwargs)[source]πŸ”—
abstractmethod get(name, **kwargs)[source]πŸ”—
abstractmethod put(name, value, **kwargs)[source]πŸ”—
abstractmethod put_many(data, **kwargs)[source]πŸ”—
abstractmethod get_many(data, **kwargs)[source]πŸ”—
abstractmethod get_outputs()[source]πŸ”—

Get a list of outputs that we should publish to

Return type:

list[str]

abstractmethod get_inputs()[source]πŸ”—

Get a list of inputs that we should publish to

Return type:

list[str]

class poly_lithic.src.interfaces.BaseDataInterface(config, **kwargs)[source]πŸ”—

Bases: ABC

abstractmethod load(**kwargs)[source]πŸ”—
abstractmethod save(data, **kwargs)[source]πŸ”—
class poly_lithic.src.interfaces.h5dfInterface(config)[source]πŸ”—

Bases: BaseDataInterface

load(**kwargs)[source]πŸ”—
save(data, **kwargs)[source]πŸ”—
monitor(handler, **kwargs)[source]πŸ”—
class poly_lithic.src.interfaces.SimplePVAInterface(config)[source]πŸ”—

Bases: BaseInterface

monitor(handler, **kwargs)[source]πŸ”—
get(name, **kwargs)[source]πŸ”—
put(name, value, **kwargs)[source]πŸ”—
put_many(data, **kwargs)[source]πŸ”—
get_many(data, **kwargs)[source]πŸ”—
close()[source]πŸ”—
get_outputs()[source]πŸ”—

Get a list of outputs that we should publish to

get_inputs()[source]πŸ”—

Get a list of inputs that we should publish to

class poly_lithic.src.interfaces.SimplePVAInterfaceServer(config)[source]πŸ”—

Bases: SimplePVAInterface

Simple PVA integfcae with a server rather than just a client, this will host the PVs provided in the config

close()[source]πŸ”—
put(name, value, **kwargs)[source]πŸ”—
get(name, **kwargs)[source]πŸ”—
put_many(data, **kwargs)[source]πŸ”—
get_many(data, **kwargs)[source]πŸ”—
class poly_lithic.src.interfaces.K2EGInterface(config)[source]πŸ”—

Bases: BaseInterface

monitor(handler, **kwargs)[source]πŸ”—
get(name, **kwargs)[source]πŸ”—
put(name, value, **kwargs)[source]πŸ”—
put_many(data, **kwargs)[source]πŸ”—
get_many(data, **kwargs)[source]πŸ”—
close()[source]πŸ”—
get_inputs()[source]πŸ”—

Get a list of inputs that we should publish to

get_outputs()[source]πŸ”—

Get a list of outputs that we should publish to

class poly_lithic.src.interfaces.SimpleFastAPIInterfaceServer(config)[source]πŸ”—

Bases: BaseInterface

HTTP interface backed by FastAPI with an in-memory job queue.

Registered as "fastapi_server" so it can be referenced in the YAML config as type: "interface.fastapi_server".

Parameters:

config (dict)

get(name, **kwargs)[source]πŸ”—
Return type:

tuple[str, dict]

Parameters:

name (str)

put(name, value, **kwargs)[source]πŸ”—
Return type:

None

Parameters:
  • name (str)

  • value (Any)

get_many(data, **kwargs)[source]πŸ”—

Dual-return method.

  • consume_jobs=True with queued jobs β†’ dequeue all, mark running, return a list of dicts (one per job with input snapshots).

  • Otherwise β†’ return a single dict mapping requested names to values.

Return type:

dict | list[dict]

put_many(data, **kwargs)[source]πŸ”—

Write multiple variables.

If any struct’s metadata contains a trace.job_id matching a running job, that job is transitioned to completed.

Return type:

None

Parameters:

data (dict)

get_inputs()[source]πŸ”—

Get a list of inputs that we should publish to

Return type:

list[str]

get_outputs()[source]πŸ”—

Get a list of outputs that we should publish to

Return type:

list[str]

monitor(handler, **kwargs)[source]πŸ”—

Register a single monitor callback. Returns True.

Return type:

bool

close()[source]πŸ”—

Shutdown the embedded uvicorn server (if running).