Source code for crappy.blocks.generator_path.path

# coding: utf-8

from time import time


[docs]class Path(object): """Parent class for all paths.""" def __init__(self, time, cmd): self.t0 = time self.cmd = cmd def get_cmd(self, data): return self.cmd
[docs] def parse_condition(self, condition): """This method turns a string into a function that returns a bool. It is meant to check if a skip condition is reached. The following syntax is supported: - ``myvar>myvalue`` - ``myvar<myvalue`` - ``delay=mydelay`` Note: `myvar` must be the label of an input value, `myvalue` should be a :obj:`float`. This will return :obj:`True` when the data under the label `myvar` is larger/smaller than `myvalue`. The condition will turn :obj:`True` after `mydelay` seconds. Any other syntax will return :obj:`True`. """ if not isinstance(condition, str): if condition is None or not condition: return lambda _: False # For never ending conditions return condition if '<' in condition: var, val = condition.split('<') return lambda data: any([i < float(val) for i in data[var]]) elif '>' in condition: var, val = condition.split('>') return lambda data: any([i > float(val) for i in data[var]]) elif condition.startswith('delay'): val = float(condition.split('=')[1]) return lambda data: time() - self.t0 > val else: return lambda data: True