# --------------------------------------------------------------------------------------
# Copyright 2016, Benedikt J. Daurer, Filipe R.N.C. Maia, Max F. Hantke, Carl Nettelblad
# Hummingbird is distributed under the terms of the Simplified BSD License.
# -------------------------------------------------------------------------
import collections
import datetime
import ipc
import numpy as np
from backend import EventTranslator
processingTimes = collections.deque([], 100)
[docs]def printProcessingRate():
"""Prints processing rate to screen"""
processingTimes.appendleft(datetime.datetime.now())
if(len(processingTimes) < 2):
return
dt = processingTimes[0] - processingTimes[-1]
proc_rate = np.array((len(processingTimes)-1)/dt.total_seconds())
ipc.mpi.sum("processingRate", proc_rate)
proc_rate = proc_rate[()]
if(ipc.mpi.is_main_worker()):
print 'Processing Rate %.2f Hz' % proc_rate
[docs]def printKeys(evt, group=None):
"""prints available keys of Hummingbird events"""
if isinstance(evt, EventTranslator) and group is None:
print "The event has the following keys: ", evt.keys()
elif isinstance(evt, EventTranslator) and group:
print "The dict of %s records has the following keys: " %(group), evt[group].keys()
else:
print evt.keys()
[docs]def printNativeKeys(evt):
"""prints available keys of Native event"""
print evt.native_keys()