Replies

These reply structures are built from Message received by the controller and provided back by the Controller to the end-user.

All replies statuses should be checked, either directly or by using status, is_success or through raise_for_status().

Base classes

class aiostem.reply.BaseReply[source]

Bases: ABC

Base class for all replies and sub-replies.

ADAPTER: ClassVar[TypeAdapter[Self] | None] = None

Cached adapter used while deserializing the message.

status: Annotated[int]

Reply status received.

status_text: str | None

Text associated with the reply status (if any).

classmethod adapter() TypeAdapter[Self][source]

Get a cached type adapter to deserialize a reply.

Return type:

TypeAdapter[Self]

property is_error: bool

Whether our status is an error status (greater or equal to 400).

property is_success: bool

Whether our status is a success status (=250).

raise_for_status() None[source]

Raise when the reply status is an error.

Raises:

ReplyStatusError – When is_error() is True.

Return type:

None

class aiostem.reply.Reply[source]

Bases: BaseReply

Base interface class for all replies.

classmethod from_message(message: Message) Self[source]

Build a reply structure from a received message.

Parameters:

message (Message) – The received message to build a reply from.

Return type:

Self

class aiostem.reply.ReplySimple[source]

Bases: Reply

Any simple reply with only a status and status_text.

status: Annotated[int]

Reply status received.

status_text: str | None

Text associated with the reply status (if any).

class aiostem.reply.ReplyGetMap[source]

Bases: Mapping[str, Sequence[str | None] | str | None]

A base reply class for commands returning maps of values.

Hint

This reply and all subclasses behaves as a Mapping.

These are replies for commands such as:

This class is also used for EventConfChanged.

SYNTAX: ClassVar[ReplySyntax]

Syntax to use, needs to be defined by sub-classes.

Authentication replies

class aiostem.reply.ReplyAuthenticate[source]

Bases: ReplySimple

A reply for a AUTHENTICATE command.

class aiostem.reply.ReplyAuthChallenge[source]

Bases: Reply

A reply for a AUTHCHALLENGE command.

data: ReplyDataAuthChallenge | None

Reply content when this command was successful.

Configuration replies

class aiostem.reply.ReplyGetConf[source]

Bases: Reply, ReplyGetMap

A reply for a GETCONF command.

data: Mapping[str, Sequence[str | None] | str | None]

Map of values received on this reply.

class aiostem.reply.ReplyLoadConf[source]

Bases: ReplySimple

A reply for a LOADCONF command.

class aiostem.reply.ReplyResetConf[source]

Bases: ReplySimple

A reply for a RESETCONF command.

class aiostem.reply.ReplySaveConf[source]

Bases: ReplySimple

A reply for a SAVECONF command.

class aiostem.reply.ReplySetConf[source]

Bases: ReplySimple

A reply for a SETCONF command.

Hidden services replies

class aiostem.reply.ReplyAddOnion[source]

Bases: Reply

A reply for a ADD_ONION command.

data: ReplyDataAddOnion | None

Reply for a successful command.

class aiostem.reply.ReplyDelOnion[source]

Bases: ReplySimple

A reply for a DEL_ONION command.

class aiostem.reply.ReplyHsFetch[source]

Bases: ReplySimple

A reply for a HSFETCH command.

class aiostem.reply.ReplyHsPost[source]

Bases: ReplySimple

A reply for a HSPOST command.

class aiostem.reply.ReplyOnionClientAuthAdd[source]

Bases: ReplySimple

A reply for a ONION_CLIENT_AUTH_ADD command.

class aiostem.reply.ReplyOnionClientAuthRemove[source]

Bases: ReplySimple

A reply for a ONION_CLIENT_AUTH_REMOVE command.

class aiostem.reply.ReplyOnionClientAuthView[source]

Bases: Reply

A reply for a ONION_CLIENT_AUTH_VIEW command.

data: ReplyDataOnionClientAuthView | None

Data for a successful command.

Streams and circuits

class aiostem.reply.ReplyAttachStream[source]

Bases: ReplySimple

A reply for a ATTACHSTREAM command.

class aiostem.reply.ReplyCloseCircuit[source]

Bases: ReplySimple

A reply for a CLOSECIRCUIT command.

class aiostem.reply.ReplyCloseStream[source]

Bases: ReplySimple

A reply for a CLOSESTREAM command.

class aiostem.reply.ReplyDropGuards[source]

Bases: ReplySimple

A reply for a DROPGUARDS command.

class aiostem.reply.ReplyExtendCircuit[source]

Bases: Reply

A reply for a EXTENDCIRCUIT command.

data: ReplyDataExtendCircuit | None

Received data when successful.

class aiostem.reply.ReplyRedirectStream[source]

Bases: ReplySimple

A reply for a REDIRECTSTREAM command.

class aiostem.reply.ReplySetCircuitPurpose[source]

Bases: ReplySimple

A reply for a SETCIRCUITPURPOSE command.

Other replies

class aiostem.reply.ReplyDropOwnership[source]

Bases: ReplySimple

A reply for a DROPOWNERSHIP command.

class aiostem.reply.ReplyDropTimeouts[source]

Bases: ReplySimple

A reply for a DROPTIMEOUTS command.

class aiostem.reply.ReplyGetInfo[source]

Bases: ReplyGetMap, Reply

A reply for a GETINFO command.

data: Mapping[str, Sequence[str | None] | str | None]

Map of values received on this reply.

class aiostem.reply.ReplyMapAddressItem[source]

Bases: BaseReply

Part of a reply for a MAPADDRESS command.

data: ReplyDataMapAddressItem | None

The reply data associated with this single item.

classmethod from_message_item(message: BaseMessage) Self[source]

Build a sub-reply for a MAPADDRESS reply item.

Return type:

Self

class aiostem.reply.ReplyMapAddress[source]

Bases: Reply

A reply for a MAPADDRESS command.

Note

This reply has sub-replies since each mapping request is handled independently by the server, which means that each sub-reply has its own status and a potential status text.

items: Sequence[ReplyMapAddressItem]

A list of replies, each can have its own status code.

class aiostem.reply.ReplyProtocolInfo[source]

Bases: Reply

A reply for a PROTOCOLINFO command.

data: ReplyDataProtocolInfo | None

Reply data when this command was successful.

Read the content of our the cookie file.

Raises:

FileNotFoundError – When there is no cookie file.

Returns:

bytes – The content of the cookie file.

class aiostem.reply.ReplyQuit[source]

Bases: ReplySimple

A reply for a QUIT command.

class aiostem.reply.ReplyResolve[source]

Bases: ReplySimple

A reply for a RESOLVE command.

class aiostem.reply.ReplySetEvents[source]

Bases: ReplySimple

A reply for a SETEVENTS command.

class aiostem.reply.ReplySignal[source]

Bases: ReplySimple

A reply for a SIGNAL command.

class aiostem.reply.ReplyTakeOwnership[source]

Bases: ReplySimple

A reply for a TAKEOWNERSHIP command.

class aiostem.reply.ReplyUseFeature[source]

Bases: ReplySimple

A reply for a USEFEATURE command.

Bridge replies

class aiostem.reply.ReplyPostDescriptor[source]

Bases: ReplySimple

A reply for a POSTDESCRIPTOR command.