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[str] = MIME('application/x.fb.proto')¶
MIME type for protobuf messages
- saturnin.base.types.MIME_TYPE_BINARY: Final[str] = 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:
Error
A formal error was detected in a message
- exception saturnin.base.types.ChannelError(*args, **kwargs)[source]¶
Bases:
Error
Transmission channel error
- exception saturnin.base.types.ServiceError(*args, **kwargs)[source]¶
Bases:
Error
Error raised by service
- exception saturnin.base.types.ClientError(*args, **kwargs)[source]¶
Bases:
Error
Error raised by Client
Sentinels¶
- saturnin.base.types.INVALID: Final[Sentinel] = Sentinel('INVALID')¶
Sentinel for return values that indicates failed message processing
Enums¶
- class saturnin.base.types.Origin(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntEnum
Origin of received message in protocol context.
- peer_role() Origin [source]¶
Returns peer’s role, i.e. complementary to current (CLIENT/SERVICE, PROVIDER/CONSULER) value.
Note: Returns current value if it’s
ANY
orUNKNOWN
.- Return type:
- ANY = 4¶
- CLIENT = 3¶
- CONSUMER = 3¶
- PROVIDER = 2¶
- SERVICE = 2¶
- UNKNOWN = 1¶
- class saturnin.base.types.SocketMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntEnum
ZeroMQ socket mode.
- BIND = 2¶
- CONNECT = 3¶
- UNKNOWN = 1¶
- class saturnin.base.types.Direction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntFlag
ZeroMQ socket direction of transmission.
- BOTH = 3¶
- IN = 1¶
- NONE = 0¶
- OUT = 2¶
- class saturnin.base.types.SocketType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntEnum
ZeroMQ 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, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntEnum
General 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, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntEnum
Data Pipe Socket identification.
- INPUT = 1¶
- OUTPUT = 2¶
- UNKNOWN_PIPE_SOCKET = 0¶
- class saturnin.base.types.FileOpenMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
IntEnum
File 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:
Distinct
Service or Client descriptor dataclass.
Note
Because this is a
dataclass
, the class variables are those attributes that have default value. Other attributes are created in constructor.- 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
- copy() AgentDescriptor [source]¶
Returns copy of this AgentDescriptor instance.
- Return type:
- get_key() Any [source]¶
Returns
uid
(instance key). Used for instance hash computation.- Return type:
- replace(**changes) AgentDescriptor [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:
Distinct
Peer descriptor.
- Parameters:
- as_proto() Any [source]¶
Returns
firebird.butler.PeerIdentification
protobuf message initialized from instance data.- Return type:
- copy() PeerDescriptor [source]¶
Returns copy of this PeerDescriptor instance.
- Return type:
- classmethod from_proto(proto: Any) PeerDescriptor [source]¶
Creates new PeerDescriptor from
firebird.butler.PeerIdentification
protobuf message.- Parameters:
proto (Any) –
- Return type:
- get_key() Any [source]¶
Returns
uid
(instance key). Used for instance hash computation.- Return type:
- replace(**changes) PeerDescriptor [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:
Distinct
Service descriptor.
- Parameters:
agent (AgentDescriptor) – Service agent descriptor
api (List[ButlerInterface]) – Service FBSP API description or
None
for microservicedescription (str) – Text describing the service
facilities (List[str]) – List of Saturnin facilities that this service uses
factory (str) – Locator string for service factory
config (Callable[[], Config]) – Service configuration factory
- get_key() Any [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, factory: str, config: str)[source]¶
Bases:
Distinct
Application 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
factory (str) – Locator string for application
typer
commandconfig (str) – Locator string for application configuration factory