orangeqs.juice.service#
OrangeQS Juice Service API.
Submodules#
Package Contents#
Classes#
Base class for OrangeQS Juice services. |
|
IPython service implementation for OrangeQS Juice. |
|
Base class a remote service is built on. |
Functions#
Start an OrangeQS Juice service by its name. |
API#
- orangeqs.juice.service.start(service_name: str) None#
Start an OrangeQS Juice service by its name.
Imports the entrypoint class and starts the service.
Parameters#
service_name (str): The name of the service to start.s
- class orangeqs.juice.service.Service(service_name: str)#
Bases:
orangeqs.juice.service._task_server.TaskServerBase class for OrangeQS Juice services.
This class can be extended to create specific service implementations. It provides a common interface for starting services.
Subclasses can override
_setup_service_specifics()for their own setup, and_service_info_kwargs()to supply extra data tostore_service_info(). Both are called automatically as part of__init__.Parameters#
service_name (str): The name of the service. Will be used to load the service configuration.
- class orangeqs.juice.service.IPythonService(service_name: str, /, *, init_module: str | None = None)#
Bases:
orangeqs.juice.service._service.ServiceIPython service implementation for OrangeQS Juice.
- property loop: asyncio.AbstractEventLoop#
The event loop used by the IPython kernel.
Raises#
(RuntimeError): If the IPython kernel is using a different event loop than the one set in the constructor. This should never happen, but is there to catch any future IPython changes that cause the kernel to use a different loop.
- class orangeqs.juice.service.RemoteService(name: str, edge_url: str, api_token: str)#
Bases:
orangeqs.juice.service._task_server.TaskHandlerRegistryBase class a remote service is built on.
Parameters#
name (str, optional): The remote’s routing name; must match a config-declared remote.
edge_url (str, optional): Base WebSocket URL to reach Juice, e.g.
ws://juice.example.com:8888.api_token (str): The edge token the remote presents to Juice. Generate it on the token page of your installation (
/hub/token).
- publisher_async() orangeqs.juice.service._remote.RemotePublisherAsync#
Return a publisher that emits events onto bus via
/hub/pub.
- subscriber_async(*, queue: asyncio.Queue[orangeqs.juice.messaging.protocol.Event] | None = None) orangeqs.juice.service._remote.RemoteSubscriberAsync[orangeqs.juice.messaging.protocol.Event]#
Return a subscriber that streams bus events from
/hub/sub.
- exception orangeqs.juice.service.RemoteAcknowledgementError#
Bases:
RuntimeErrorRaised when Juice rejects the remote at connection time.