| 470 | |
| 471 | |
| 472 | class ConditionEvaluator: |
| 473 | def evaluate(self, condition, parameters): |
| 474 | statuses = [] |
| 475 | if not isinstance(condition, list): |
| 476 | condition = [condition] |
| 477 | for single in condition: |
| 478 | statuses.append(self._check_single_condition(single, parameters)) |
| 479 | return all(statuses) |
| 480 | |
| 481 | def _check_single_condition(self, single, parameters): |
| 482 | varname = single['variable'] |
| 483 | if 'equals' in single: |
| 484 | expected = single['equals'] |
| 485 | return parameters.get(varname) == expected |
| 486 | return False |
| 487 | |
| 488 | |
| 489 | class DataTypeConverter: |