Provide fill-missing defaults for NodeTemplates matched by the selector. Matching is performed on declarations (node name + node class), so `SelectionTarget.obj` is always None.
(
*,
selector: Selector | None = None,
path_filter: str | None = None,
type_filter=None,
name_filter=None,
predicate: Callable[[SelectionTarget], bool] | None = None,
**defaults: Any,
)
| 95 | |
| 96 | @contextmanager |
| 97 | def template_defaults_for( |
| 98 | *, |
| 99 | selector: Selector | None = None, |
| 100 | path_filter: str | None = None, |
| 101 | type_filter=None, |
| 102 | name_filter=None, |
| 103 | predicate: Callable[[SelectionTarget], bool] | None = None, |
| 104 | **defaults: Any, |
| 105 | ): |
| 106 | """ |
| 107 | Provide fill-missing defaults for NodeTemplates matched by the selector. |
| 108 | |
| 109 | Matching is performed on declarations (node name + node class), so `SelectionTarget.obj` is always None. |
| 110 | """ |
| 111 | |
| 112 | sel = build_selector( |
| 113 | selector=selector, type_filter=type_filter, name_filter=name_filter, predicate=predicate |
| 114 | ) |
| 115 | pf = parse_path_filter(path_filter) if path_filter is not None else None |
| 116 | previous = _TEMPLATE_DEFAULTS_RULES_CVAR.get() |
| 117 | token = _TEMPLATE_DEFAULTS_RULES_CVAR.set(previous + ((sel, pf, dict(defaults)),)) |
| 118 | try: |
| 119 | yield |
| 120 | finally: |
| 121 | _TEMPLATE_DEFAULTS_RULES_CVAR.reset(token) |
| 122 | |
| 123 | |
| 124 | @contextmanager |
no test coverage detected