|
35 | 35 | dispatch, |
36 | 36 | EMPTY, |
37 | 37 | evaluate_recursive, |
| 38 | + evaluate_recursive_strict, |
38 | 39 | flatten, |
39 | 40 | getattr_path, |
40 | 41 | Namespace, |
@@ -544,24 +545,26 @@ def icon(cls, icon, title=None, *, display_name=None, call_target=None, icon_cla |
544 | 545 | def _bind(self) -> 'Action': |
545 | 546 | return copy.copy(self) |
546 | 547 |
|
547 | | - def _evaluate_attribute(self, key, strict=False, **kwargs): |
| 548 | + def _evaluate_attribute(self, key, **kwargs): |
548 | 549 | value = getattr(self, key) |
549 | | - new_value = evaluate_recursive(value, action=self, strict=strict, **kwargs) |
| 550 | + new_value = evaluate_recursive_strict(value, action=self, **kwargs) |
550 | 551 | if new_value is not value: |
551 | 552 | setattr(self, key, new_value) |
552 | 553 |
|
553 | 554 | def _evaluate_show(self, **kwargs): |
554 | | - self._evaluate_attribute('show', strict=True, **kwargs) |
| 555 | + self._evaluate_attribute('show', **kwargs) |
555 | 556 |
|
556 | 557 | def _evaluate(self, **kwargs): |
557 | 558 | """ |
558 | 559 | Evaluates callable/lambda members. After this function is called all members will be values. |
559 | 560 | """ |
560 | | - not_evaluated_attributes = {'show'} |
| 561 | + not_evaluated_attributes = {'show', 'extra'} |
561 | 562 | evaluated_attributes = (x for x in self.get_declared('refinable_members').keys() if x not in not_evaluated_attributes) |
562 | 563 | for key in evaluated_attributes: |
563 | 564 | self._evaluate_attribute(key, **kwargs) |
564 | 565 |
|
| 566 | + self.extra = evaluate_recursive(self.extra, action=self, **kwargs) |
| 567 | + |
565 | 568 | for k, v in kwargs.items(): |
566 | 569 | setattr(self, k, v) |
567 | 570 |
|
|
0 commit comments