saturnin.base.types¶
Saturnin common type definitions and constants
This module contains:
Type aliases and new types for type annotations.
Commonly used constants like platform, vendor and mime type identifiers.
Exceptions.
Sentinels.
Enums.
Dataclasses.
Types for annotations¶
- saturnin.base.types.Token = saturnin.base.types.Token¶
Message token
- saturnin.base.types.RoutingID = saturnin.base.types.RoutingID¶
Routing ID
Constants¶
- saturnin.base.types.PLATFORM_OID: Final[str] = '1.3.6.1.4.1.53446.1.1.0'¶
Platform OID (
firebird.butler.platform.saturnin)
- saturnin.base.types.PLATFORM_UID: Final[UUID] = UUID('46cd9e8a-c697-5cb5-abb5-bceac5a17075')¶
Platform UID (
uuid5()- NAMESPACE_OID)
- saturnin.base.types.VENDOR_OID: Final[str] = '1.3.6.1.4.1.53446.1.2.0'¶
Platform vendor OID (
firebird.butler.vendor.firebird)
- saturnin.base.types.VENDOR_UID: Final[UUID] = UUID('c26a6600-d579-5ec7-a9d6-5b0a8b214d3f')¶
Platform vendor UID (
uuid5()- NAMESPACE_OID)
- saturnin.base.types.MIME_TYPE_PROTO: Final[MIME] = MIME('application/x.fb.proto')¶
MIME type for protobuf messages
- saturnin.base.types.MIME_TYPE_BINARY: Final[MIME] = MIME('application/octet-stream')¶
MIME type for binary data
- saturnin.base.types.SECTION_LOCAL_ADDRESS: Final[str] = 'local_address'¶
Configuration section name for local service addresses
- saturnin.base.types.SECTION_NODE_ADDRESS: Final[str] = 'node_address'¶
Configuration section name for node service addresses
- saturnin.base.types.SECTION_NET_ADDRESS: Final[str] = 'net_address'¶
Configuration section name for network service addresses
- saturnin.base.types.SECTION_SERVICE_UID: Final[str] = 'service_uid'¶
Configuration section name for service UIDs
- saturnin.base.types.SECTION_PEER_UID: Final[str] = 'peer_uid'¶
Configuration section name for service peer UIDs
- saturnin.base.types.SECTION_BUNDLE: Final[str] = 'bundle'¶
Default configuration section name for service bundle
Exceptions¶
- exception saturnin.base.types.InvalidMessageError(*args, **kwargs)[source]¶
Bases:
ErrorA formal error was detected in a message
- exception saturnin.base.types.ChannelError(*args, **kwargs)[source]¶
Bases:
ErrorTransmission channel error
- exception saturnin.base.types.ServiceError(*args, **kwargs)[source]¶
Bases:
ErrorError raised by service
- exception saturnin.base.types.ClientError(*args, **kwargs)[source]¶
Bases:
ErrorError raised by Client
Sentinels¶
- saturnin.base.types.INVALID: Final[Sentinel] = INVALID¶
Sentinel for return values that indicates failed message processing
Enums¶
- class saturnin.base.types.Origin(value)[source]¶
Bases:
IntEnumOrigin of received message in protocol context.
- peer_role() Origin[source]¶
Returns the peer’s role, which is the logical opposite of this instance’s role.
For example, if this origin is
Origin.SERVICE(orOrigin.PROVIDER), the peer’s role returned will beOrigin.CLIENT(orOrigin.CONSUMER). If this origin isOrigin.ANYorOrigin.UNKNOWN, it returns itself.- Return type:
- ANY = 4¶
- CLIENT = 3¶
- CONSUMER = 3¶
- PROVIDER = 2¶
- SERVICE = 2¶
- UNKNOWN = 1¶
- class saturnin.base.types.SocketMode(value)[source]¶
Bases:
IntEnumZeroMQ socket mode.
- BIND = 2¶
- CONNECT = 3¶
- UNKNOWN = 1¶
- class saturnin.base.types.Direction(value)[source]¶
Bases:
IntFlagZeroMQ socket direction of transmission.
- _generate_next_value_(start, count, last_values)¶
Generate the next value when not given.
name: the name of the member start: the initial start value or None count: the number of existing members last_values: the last value assigned or None
- BOTH = 3¶
- IN = 1¶
- NONE = 0¶
- OUT = 2¶
- class saturnin.base.types.SocketType(value)[source]¶
Bases:
IntEnumZeroMQ socket type.
- DEALER = 5¶
- PAIR = 0¶
- PUB = 1¶
- PULL = 7¶
- PUSH = 8¶
- ROUTER = 6¶
- STREAM = 11¶
- SUB = 2¶
- UNKNOWN_TYPE = -1¶
- XPUB = 9¶
- XSUB = 10¶
- class saturnin.base.types.State(value)[source]¶
Bases:
IntEnumGeneral state information.
- ABORTED = 6¶
- BLOCKED = 3¶
- CREATED = 1¶
- FINISHED = 5¶
- READY = 1¶
- RUNNING = 2¶
- STOPPED = 4¶
- SUSPENDED = 4¶
- TERMINATED = 6¶
- UNKNOWN_STATE = 0¶
- WAITING = 3¶
- class saturnin.base.types.PipeSocket(value)[source]¶
Bases:
IntEnumData Pipe Socket identification.
- INPUT = 1¶
- OUTPUT = 2¶
- UNKNOWN_PIPE_SOCKET = 0¶
- class saturnin.base.types.FileOpenMode(value)[source]¶
Bases:
IntEnumFile open mode.
- APPEND = 4¶
- CREATE = 2¶
- READ = 1¶
- RENAME = 5¶
- UNKNOWN_FILE_OPEN_MODE = 0¶
- WRITE = 3¶
Dataclasses¶
- class saturnin.base.types.AgentDescriptor(uid: UUID, name: str, version: str, vendor_uid: UUID, classification: str, platform_uid: UUID = UUID('46cd9e8a-c697-5cb5-abb5-bceac5a17075'), platform_version: str = '0.8.0', supplement: TSupplement = None)[source]¶
Bases:
DistinctService or Client descriptor dataclass.
- Parameters:
uid (UUID) – Agent ID
name (str) – Agent name
version (str) – Agent version string
vendor_uid (UUID) – Vendor ID
classification (str) – Agent classification string
platform_uid (UUID) – Butler platform ID
platform_version (str) – Butler platform version string
supplement (TSupplement) – Optional list of supplemental information
- get_key() UUID[source]¶
Returns
uid(instance key). Used for instance hash computation.- Return type:
- replace(**changes) Self[source]¶
Creates a new
AgentDescriptor, replacing fields with values fromchanges.- Return type:
- supplement: TSupplement = None¶
- class saturnin.base.types.PeerDescriptor(uid: UUID, pid: int, host: str, supplement: TSupplement = None)[source]¶
Bases:
DistinctPeer descriptor.
- Parameters:
uid (UUID) – Peer ID
pid (int) – Peer process ID
host (str) – Host name
supplement (TSupplement) – Optional list of supplemental information
- classmethod from_proto(proto: Any) Self[source]¶
Creates new PeerDescriptor from
firebird.butler.PeerIdentificationprotobuf message.
- as_proto() Any[source]¶
Returns
firebird.butler.PeerIdentificationprotobuf message initialized from instance data.- Return type:
- copy() PeerDescriptor[source]¶
Returns copy of this PeerDescriptor instance.
- Return type:
- get_key() UUID[source]¶
Returns
uid(instance key). Used for instance hash computation.- Return type:
- replace(**changes) Self[source]¶
Creates a new
PeerDescriptor, replacing fields with values fromchanges.- Return type:
- supplement: TSupplement = None¶
- class saturnin.base.types.ServiceDescriptor(agent: AgentDescriptor, api: list[ButlerInterface], description: str, facilities: list[str], factory: str, config: Callable[[], Config])[source]¶
Bases:
DistinctService descriptor.
- Parameters:
agent (AgentDescriptor) – Service agent descriptor
api (list[ButlerInterface]) – Service FBSP API description or
Nonefor microservicedescription (str) – Text describing the service
facilities (list[str]) – List of Saturnin facilities that this service uses
factory (str) – Locator string for service factory (e.g. like ‘my_package.my_module:my_svc_factory_class’)
config (Callable[[], Config]) – Service configuration factory (a callable that returns a
Configobject)
- get_key() UUID[source]¶
Returns
agent.uid(instance key). Used for instance hash computation.- Return type:
- agent: AgentDescriptor¶
- api: list[ButlerInterface]¶
- class saturnin.base.types.ApplicationDescriptor(uid: UUID, name: str, version: str, vendor_uid: UUID, classification: str, description: str, cli_command: str | None = None, recipe_factory: str | None = None)[source]¶
Bases:
DistinctApplication descriptor.
- Parameters:
uid (UUID) – Application ID
name (str) – Application name
version (str) – Application version string
vendor_uid (UUID) – Vendor ID
classification (str) – Application classification string
description (str) – Text describing the application
cli_command (str | None) – Locator string for application
typercommand (e.g. like ‘my_app.cli:app_cmd’)recipe_factory (str | None) – Locator string for application recipe factory (a callable that returns string)