finam.Output#

class finam.Output(name=None, info=None, static=False, **info_kwargs)[source]#

Bases: IOutput, Loggable

Default output implementation.

Attributes:
has_targets

Flag if this output instance has any targets.

info

Info: The input’s data info.

is_static

Whether the output is static

logger

Logger for this component.

logger_name

Logger name derived from base logger name and class name.

memory_limit

The memory limit for this slot

memory_location

The memory-mapping location for this slot

name

Input 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

uses_base_logger_name

Whether this class has a base_logger_name attribute.

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.

property name#

Input name.

property time#

The output’s time of the latest available data

property is_static#

Whether the output is static

property info#

The input’s data info.

Type:

Info

property needs_pull#

if the output needs pull.

Type:

bool

property needs_push#

if the output needs push.

Type:

bool

property memory_limit#

The memory limit for this slot

property memory_location#

The memory-mapping location for this slot

has_info()[source]#

Returns if the output has a data info.

The info is not required to be validly exchanged.

add_target(target)[source]#

Add a target input or adapter for this output.

Parameters:

target (IInput) – The target to add.

property targets#

Get target inputs and adapters for this output.

Returns:

List of targets.

Return type:

list

pinged(source)[source]#

Called when receiving a ping from a downstream input.

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.

push_info(info)[source]#

Push data info into the output.

Parameters:

info (Info) – Delivered data info

notify_targets(time)[source]#

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

Parameters:

time (datetime) – Simulation time of the simulation.

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 or None) – 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

finalize()[source]#

Finalize the output

get_info(info)[source]#

Exchange and get the output’s data info.

For internal use. To get the info in a component, use property info.

Parameters:

info (Info) – Requested data info

Returns:

Delivered data info

Return type:

dict

Raises:

FinamNoDataError – Raises the error if no info is available

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

property has_targets#

Flag if this output instance has any targets.

property logger_name#

Logger name derived from base logger name and class name.

property uses_base_logger_name#

Whether this class has a base_logger_name attribute. True.

property logger#

Logger for this component.