(self, field)
| 390 | self.expression_instance_cache = {} |
| 391 | |
| 392 | def get_expression_instance(self, field): |
| 393 | try: |
| 394 | if field in self.expression_instance_cache: |
| 395 | expression = self.expression_instance_cache[field] |
| 396 | else: |
| 397 | expression = eval(parse_field(field)) |
| 398 | self.expression_instance_cache[field] = expression |
| 399 | except NameError as e: |
| 400 | get_module_logger("data").exception( |
| 401 | "ERROR: field [%s] contains invalid operator/variable [%s]" % (str(field), str(e).split()[1]) |
| 402 | ) |
| 403 | raise |
| 404 | except SyntaxError: |
| 405 | get_module_logger("data").exception("ERROR: field [%s] contains invalid syntax" % str(field)) |
| 406 | raise |
| 407 | return expression |
| 408 | |
| 409 | @abc.abstractmethod |
| 410 | def expression(self, instrument, field, start_time=None, end_time=None, freq="day") -> pd.Series: |
no test coverage detected