def flush_pipeline(func):
""" For inputs: adds 'x.get_delay()' dummy samples, to flush out pipeline values
For outputs: removes the first 'x.get_delay()' samples, as these are initial pipeline values"""
@wraps(func)
def flush_pipeline_wrap(self, *args, **kwargs):
delay = 0
with suppress(AttributeError): # no get_delay()
delay = self.model._delay
if delay == 0:
return func(self, *args, **kwargs)
args = list(args)
for i in range(delay):
args.append(args[0])
ret = func(self, *args, **kwargs)
ret = ret[delay:]
return ret
return flush_pipeline_wrap
评论列表
文章目录