Source code for spinn_front_end_common.interface.interface_functions.placements_provenance_gatherer

from spinn_utilities.progress_bar import ProgressBar

# front end common imports
from spinn_front_end_common.interface.provenance \
    import AbstractProvidesProvenanceDataFromMachine
import logging

logger = logging.getLogger(__name__)


[docs]class PlacementsProvenanceGatherer(object): __slots__ = [] def __call__( self, transceiver, placements, has_ran, provenance_data_objects=None): """ :param transceiver: the SpiNNMan interface object :param placements: The placements of the vertices :param has_ran: token that states that the simulation has ran """ if not has_ran: logger.warning("{} skipped as nothing has run " "".format(self.__class__.__name__)) return list() if provenance_data_objects is not None: prov_items = provenance_data_objects else: prov_items = list() progress = ProgressBar( placements.n_placements, "Getting provenance data") # retrieve provenance data from any cores that provide data for placement in progress.over(placements.placements): if isinstance(placement.vertex, AbstractProvidesProvenanceDataFromMachine): # get data prov_items.extend( placement.vertex.get_provenance_data_from_machine( transceiver, placement)) return prov_items