finam.IOutput#

class finam.IOutput[source]#

Bases: ABC

Interface for output slots.

Attributes:
info

Info: The output’s data info.

is_static

Whether the output is static

memory_limit

The memory limit for this slot

memory_location

The memory-mapping location for this slot

name

Output name.

needs_pull

bool: if the output needs pull.

needs_push

bool: if the output needs push.

targets

Get target inputs and adapters for this output.

time

The output’s time of the latest available data

Methods

add_target(target)

Add a target input or adapter for this output.

chain(other)

Chain outputs and adapters.

finalize()

Finalize the output

get_data(time, target)

Get the output's data-set for the given time.

get_info(info)

Exchange and get the output's data info.

has_info()

Returns if the output has a data info.

notify_targets(time)

Notify all targets by calling their source_updated(time) method.

pinged(source)

Called when receiving a ping from a downstream input.

push_data(data, time)

Push data into the output.

push_info(info)

Push data info into the output.

abstract property name#

Output name.

abstract property time#

The output’s time of the latest available data

abstract property is_static#

Whether the output is static

abstract property info#

The output’s data info.

Raises:

FinamNoDataError – Raises the error if infos were not yet exchanged

Type:

Info

abstract property needs_pull#

if the output needs pull.

Type:

bool

abstract property needs_push#

if the output needs push.

Type:

bool

abstract property memory_limit#

The memory limit for this slot

abstract property memory_location#

The memory-mapping location for this slot

abstract has_info()[source]#

Returns if the output has a data info.

The info is not required to be validly exchanged.

abstract add_target(target)[source]#

Add a target input or adapter for this output.

Parameters:

target (IInput) – The target to add.

abstract property targets#

Get target inputs and adapters for this output.

Returns:

List of targets.

Return type:

list

abstract pinged(source)[source]#

Called when receiving a ping from a downstream input.

Parameters:

source (IInput) – Pinging target end point

abstract push_data(data, time)[source]#

Push data into the output.

Should notify targets, and can handle the provided date.

Parameters:
  • data (array_like) – Data set to push.

  • time (datetime) – Simulation time of the data set.

abstract push_info(info)[source]#

Push data info into the output.

Parameters:

info (Info) – Delivered data info

abstract notify_targets(time)[source]#

Notify all targets by calling their source_updated(time) method.

Parameters:

time (datetime) – Simulation time of the simulation.

abstract get_data(time, target)[source]#

Get the output’s data-set for the given time.

Parameters:
  • time (datetime) – Simulation time to get the data for.

  • target (IInput) – Requesting end point of this pull

Returns:

data-set for the requested time.

Return type:

pint.Quantity

Raises:

FinamNoDataError – Raises the error if no data is available

abstract get_info(info)[source]#

Exchange and get the output’s data info.

Parameters:

info (Info) – Requested data info

Returns:

Delivered data info

Return type:

dict

Raises:

FinamNoDataError – Raises the error if no info is available

abstract chain(other)[source]#

Chain outputs and adapters.

Parameters:

other (IInput or IAdapter) – The adapter or input to add as target to this output.

Returns:

The last element of the chain.

Return type:

IOutput

abstract finalize()[source]#

Finalize the output