aea.mail.base

Mail module abstract base classes.

AEAConnectionError Objects

class AEAConnectionError(Exception)

Exception class for connection errors.

Empty Objects

class Empty(Exception)

Exception for when the inbox is empty.

URI Objects

class URI()

URI following RFC3986.

__init__

 | __init__(uri_raw: str)

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__()

Get string representation.

__eq__

 | __eq__(other)

Compare with another object.

EnvelopeContext Objects

class EnvelopeContext()

Extra information for the handling of an envelope.

__init__

 | __init__(connection_id: Optional[PublicId] = None, skill_id: Optional[PublicId] = None, uri: Optional[URI] = None)

Initialize the envelope context.

Arguments:

  • connection_id: the connection id used for routing the outgoing envelope in the multiplexer.
  • skill_id: the skill id used for routing the incoming envelope in the AEA.
  • uri: the URI sent with the envelope.

connection_id

 | @property
 | connection_id() -> Optional[PublicId]

Get the connection id.

skill_id

 | @property
 | skill_id() -> Optional[PublicId]

Get the skill id.

uri_raw

 | @property
 | uri_raw() -> str

Get uri in string format.

__str__

 | __str__()

Get the string representation.

__eq__

 | __eq__(other)

Compare with another object.

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.

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, protocol_id: ProtocolId, message: Union[Message, bytes], context: Optional[EnvelopeContext] = None)

Initialize a Message object.

Arguments:

  • to: the address of the receiver.
  • sender: the address of the sender.
  • protocol_id: the protocol id.
  • message: the protocol-specific message.
  • context: the optional envelope context.

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_id

 | @property
 | protocol_id() -> ProtocolId

Get protocol id.

protocol_id

 | @protocol_id.setter
 | protocol_id(protocol_id: ProtocolId) -> None

Set the protocol 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() -> EnvelopeContext

Get the envelope context.

skill_id

 | @property
 | skill_id() -> Optional[PublicId]

Get the skill id from an envelope context, if set.

Returns:

skill id

connection_id

 | @property
 | connection_id() -> Optional[PublicId]

Get the connection id from an envelope context, if set.

Returns:

connection id

is_sender_public_id

 | @property
 | is_sender_public_id()

Check if sender is a public id.

is_to_public_id

 | @property
 | is_to_public_id()

Check if to is a public id.

__eq__

 | __eq__(other)

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__()

Get the string representation of an envelope.