finam.TimeDelayAdapter#
- class finam.TimeDelayAdapter[source]#
Bases:
Adapter,ITimeDelayAdapter,ABCBase class for adapters that delay/offset time to resolve dependency cycles.
- Attributes:
has_sourceFlag if this input instance has a source.
has_targetsFlag if this output instance has any targets.
in_infoInfo from connected source.
infoInfo: The input’s data info.
is_staticWhether the input is static
loggerLogger for this component.
logger_nameLogger name derived from source logger name and class name.
memory_limitThe memory limit for this slot
memory_locationThe memory-mapping location for this slot
metadataThe adapter’s metadata.
nameInput name.
needs_pullbool: if the adapter needs pull.
needs_pushbool: if the adapter needs push.
sourceGet the input’s source output or adapter
targetsGet target inputs and adapters for this output.
timeThe output’s time of the latest available data
uses_base_logger_nameWhether this class has a
base_logger_nameattribute.
Methods
add_target(target)Add a target input or adapter for this output.
chain(other)Chain outputs and adapters.
exchange_info([info])Exchange the data info with the input's source.
finalize()Called at the end of each run.
get_data(time, target)Get the transformed data of this adapter.
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.ping()Pings upstream to inform outputs about the number of connected inputs.
pinged(source)Called when receiving a ping from a downstream input.
pull_data(time[, target])Retrieve the data from the input's source.
push_data(data, time)Push data into the output.
push_info(info)Push data info into the output.
source_updated(time)Informs the input that a new output is available.
with_delay(time)Get the manipulated time for a given request time.
with_name(name)Renames the adapter and returns self.
- get_data(time, target)[source]#
Get the transformed data of this adapter.
Internally calls
_get_data().- Parameters:
- Returns:
Transformed data-set for the requested time.
- Return type:
- _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.- Returns:
data-set for the requested time.
- Return type:
array_like
- _pulled(time)[source]#
This method is called during pulls, with the original pull time.
Can be overwritten to store the original pull time, as in
_get_data()only the manipulated time is available.Called after
_get_data()(i.e. after the actual pull).- Parameters:
time (
datetime) – The original (requested) time of the current pull.
- _finalize()#
Called at the end of each run. Overwrite this for cleanup.
- _get_info(info)#
Exchange and get the output’s data info.
Adapters can overwrite this method to manipulate the metadata for the output.
- _source_updated(time)#
Informs the input that a new output is available.
Adapters can overwrite this method to handle incoming data.
Adapters that make use of this method to accumulate data should also overwrite
needs_pushto returnTrue.- Parameters:
time (
datetime) – Simulation time of the notification.
- add_target(target)#
Add a target input or adapter for this output.
- Parameters:
target (
IInput) – The target to add.
- chain(other)#
Chain outputs and adapters.
- exchange_info(info=None)#
Exchange the data info with the input’s source.
- finalize()#
Called at the end of each run. Calls
_finalize().
- get_info(info)[source]#
Exchange and get the output’s data info.
- Parameters:
info (
Info) – Requested data info- Returns:
Delivered data info
- Return type:
- Raises:
FinamNoDataError – Raises the error if no info is available
- has_info()#
Returns if the output has a data info.
The info is not required to be validly exchanged.
- property has_source#
Flag if this input instance has a source.
- property has_targets#
Flag if this output instance has any targets.
- property in_info#
Info from connected source.
- property is_static#
Whether the input is static
- property logger#
Logger for this component.
- property logger_name#
Logger name derived from source logger name and class name.
- property memory_limit#
The memory limit for this slot
- property memory_location#
The memory-mapping location for this slot
- property metadata#
The adapter’s metadata. Will only be called after the connect phase from
Composition.metadata.Adapters can overwrite this property to add their own specific metadata:
import finam as fm class MyAdapter(fm.Adapter): @property def metadata(self): # Get the default metadata md = super().metadata # Add your own metadata md["my_field"] = "some value" # Return the dictionary return md
- Returns:
- A
dictwith the following default metadata: name- the component’s nameclass- the component’s class
- A
- Return type:
- property name#
Input name.
- notify_targets(time)#
Notify all targets by calling their
source_updated(time)method.- Parameters:
time (
datetime) – Simulation time of the simulation.
- ping()#
Pings upstream to inform outputs about the number of connected inputs.
Must be called after linking and before the connect phase.
- pinged(source)#
Called when receiving a ping from a downstream input.
- pull_data(time, target=None)#
Retrieve the data from the input’s source.
- Parameters:
time (
datetime) – Simulation time to get the data for.target (
IInputor None) – Requesting end point of this pull. Should beNonefor normal input pulls in components. Simple adapters should forward the source inAdapter._get_data(). Push-based adapters should useselfinAdapter._source_updated().
- Returns:
Data set for the given simulation time.
- Return type:
- push_data(data, time)#
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.
- property source#
Get the input’s source output or adapter
- Returns:
The input’s source.
- Return type:
- source_updated(time)#
Informs the input that a new output is available.
- Parameters:
time (
datetime) – Simulation time of the notification.
- property targets#
Get target inputs and adapters for this output.
- Returns:
List of targets.
- Return type:
- property time#
The output’s time of the latest available data
- property uses_base_logger_name#
Whether this class has a
base_logger_nameattribute. True.
- abstractmethod with_delay(time)#
Get the manipulated time for a given request time.
- with_name(name)#
Renames the adapter and returns self.