Output#

class maize.core.interface.Output(*args: Any, **kwargs: Any)[source]#

Bases: Port[T]

Output port to allow sending arbitrary data.

Parameters:
  • timeout – Timeout used for continuously polling the connection for sending data into a potentially full channel.

  • mode – Whether to 'link', 'move' or 'copy' (default) files.

name#

Unique port name

parent#

Parent node instance this port is part of

Raises:

PortException – If the port is used without a connected channel

__init__(timeout: float = 0.5, optional: bool = False, mode: Literal['copy', 'link', 'move'] = 'copy') None#

Methods

__init__([timeout, optional, mode])

build(name, parent)

Instantiate an interface from the description.

check(value)

Checks if a value is valid using type annotations.

close()

Closes the port.

is_connected(port)

Specifies whether the port is connected.

send(item)

Sends data through the channel.

set_channel(channel)

Set the channel associated with the port.

Attributes

active

Specifies whether the port is active or not.

connected

Specifies whether the port is connected.

path

Provides a unique path to the interface.

serialized

Provides a serialized summary of the parameter

size

Returns the approximate number of items waiting in the channel

name

parent

datatype

doc

property active: bool#

Specifies whether the port is active or not.

build(name: str, parent: Component) _TInter#

Instantiate an interface from the description.

Parameters:
  • name – Name of the interface, will typically be the attribute name of the parent object

  • parent – Parent component instance

Returns:

Copy of the current instance, with references to the name and the parent

Return type:

_TInter

check(value: T) bool#

Checks if a value is valid using type annotations.

Parameters:

value – Value to typecheck

Returns:

True if the value is valid, False otherwise

Return type:

bool

close() None#

Closes the port.

This can be detected by neighbouring nodes waiting on the port, and subsequently cause them to shut down.

Raises:

PortException – If the port is not connected

property connected: bool#

Specifies whether the port is connected.

static is_connected(port: _PortType) TypeGuard[_PortChannel[T]]#

Specifies whether the port is connected.

property path: tuple[str, ...]#

Provides a unique path to the interface.

send(item: T) None[source]#

Sends data through the channel.

Parameters:

item – Item to send through the channel

Raises:

PortException – If trying to send through an unconnected port

Examples

In the run method of the sending node:

>>> self.output.send(42)
property serialized: dict[str, Any]#

Provides a serialized summary of the parameter

set_channel(channel: Channel[T]) None#

Set the channel associated with the port. This needs to be called when connecting two ports together.

Parameters:

channel – An instantiated subclass of Channel

property size: int#

Returns the approximate number of items waiting in the channel