aea.mail.base
Mail module abstract base classes.
URI Objects
class URI()
URI following RFC3986.
__
init__
| __init__(uri_raw: str) -> None
Initialize the URI.
Must follow: https://tools.ietf.org/html/rfc3986.html
Arguments:
uri_raw
: the raw form uri
Raises:
ValueError
: if uri_raw is not RFC3986 compliant
scheme
| @property
| scheme() -> str
Get the scheme.
netloc
| @property
| netloc() -> str
Get the netloc.
path
| @property
| path() -> str
Get the path.
params
| @property
| params() -> str
Get the params.
query
| @property
| query() -> str
Get the query.
fragment
| @property
| fragment() -> str
Get the fragment.
username
| @property
| username() -> Optional[str]
Get the username.
password
| @property
| password() -> Optional[str]
Get the password.
host
| @property
| host() -> Optional[str]
Get the host.
port
| @property
| port() -> Optional[int]
Get the port.
__
str__
| __str__() -> str
Get string representation.
__
eq__
| __eq__(other: Any) -> bool
Compare with another object.
EnvelopeContext Objects
class EnvelopeContext()
Contains context information of an envelope.
__
init__
| __init__(connection_id: Optional[PublicId] = None, uri: Optional[URI] = None) -> None
Initialize the envelope context.
Arguments:
connection_id
: the connection id used for routing the outgoing envelope in the multiplexer.uri
: the URI sent with the envelope.
uri
| @property
| uri() -> Optional[URI]
Get the URI.
connection_
id
| @property
| connection_id() -> Optional[PublicId]
Get the connection id to route the envelope.
connection_
id
| @connection_id.setter
| connection_id(connection_id: PublicId) -> None
Set the 'via' connection id.
__
str__
| __str__() -> str
Get the string representation.
__
eq__
| __eq__(other: Any) -> bool
Compare with another object.
AEAConnectionError Objects
class AEAConnectionError(Exception)
Exception class for connection errors.
Empty Objects
class Empty(Exception)
Exception for when the inbox is empty.
EnvelopeSerializer Objects
class EnvelopeSerializer(ABC)
Abstract class to specify the serialization layer for the envelope.
encode
| @abstractmethod
| encode(envelope: "Envelope") -> bytes
Encode the envelope.
Arguments:
envelope
: the envelope to encode
Returns:
the encoded envelope
decode
| @abstractmethod
| decode(envelope_bytes: bytes) -> "Envelope"
Decode the envelope.
Arguments:
envelope_bytes
: the encoded envelope
Returns:
the envelope
ProtobufEnvelopeSerializer Objects
class ProtobufEnvelopeSerializer(EnvelopeSerializer)
Envelope serializer using Protobuf.
encode
| encode(envelope: "Envelope") -> bytes
Encode the envelope.
Arguments:
envelope
: the envelope to encode
Returns:
the encoded envelope
decode
| decode(envelope_bytes: bytes) -> "Envelope"
Decode the envelope.
The default serializer doesn't decode the message field.
Arguments:
envelope_bytes
: the encoded envelope
Returns:
the envelope
Envelope Objects
class Envelope()
The top level message class for agent to agent communication.
__
init__
| __init__(to: Address, sender: Address, message: Union[Message, bytes], context: Optional[EnvelopeContext] = None, protocol_specification_id: Optional[PublicId] = None) -> None
Initialize a Message object.
Arguments:
to
: the address of the receiver.sender
: the address of the sender.message
: the protocol-specific message.context
: the optional envelope context.protocol_specification_id
: the protocol specification id (wire id).
to
| @property
| to() -> Address
Get address of receiver.
to
| @to.setter
| to(to: Address) -> None
Set address of receiver.
sender
| @property
| sender() -> Address
Get address of sender.
sender
| @sender.setter
| sender(sender: Address) -> None
Set address of sender.
protocol_
specification_
id
| @property
| protocol_specification_id() -> PublicId
Get protocol_specification_id.
message
| @property
| message() -> Union[Message, bytes]
Get the protocol-specific message.
message
| @message.setter
| message(message: Union[Message, bytes]) -> None
Set the protocol-specific message.
message_
bytes
| @property
| message_bytes() -> bytes
Get the protocol-specific message.
context
| @property
| context() -> Optional[EnvelopeContext]
Get the envelope context.
to_
as_
public_
id
| @property
| to_as_public_id() -> Optional[PublicId]
Get to as public id.
is_
sender_
public_
id
| @property
| is_sender_public_id() -> bool
Check if sender is a public id.
is_
to_
public_
id
| @property
| is_to_public_id() -> bool
Check if to is a public id.
is_
component_
to_
component_
message
| @property
| is_component_to_component_message() -> bool
Whether or not the message contained is component to component.
__
eq__
| __eq__(other: Any) -> bool
Compare with another object.
encode
| encode(serializer: Optional[EnvelopeSerializer] = None) -> bytes
Encode the envelope.
Arguments:
serializer
: the serializer that implements the encoding procedure.
Returns:
the encoded envelope.
decode
| @classmethod
| decode(cls, envelope_bytes: bytes, serializer: Optional[EnvelopeSerializer] = None) -> "Envelope"
Decode the envelope.
Arguments:
envelope_bytes
: the bytes to be decoded.serializer
: the serializer that implements the decoding procedure.
Returns:
the decoded envelope.
__
str__
| __str__() -> str
Get the string representation of an envelope.