> ## Documentation Index
> Fetch the complete documentation index at: https://bazel-pr-31269.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TemplateDict

An Args-like structure for use in ctx.actions.expand\_template(), which allows for deferring evaluation of values till the execution phase.

## Members

* [add](#add)
* [add\_joined](#add_joined)

## add

```
TemplateDict TemplateDict.add(key, value)
```

Add a String value

### Parameters

| Parameter | Description |
| - | - |
| `key` | [string](/versions/8.0.1/rules/lib/core/string); required  A String key |
| `value` | [string](/versions/8.0.1/rules/lib/core/string); required  A String value |

## add\_joined

```
TemplateDict TemplateDict.add_joined(key, values, *, join_with, map_each, uniquify=False, format_joined=None, allow_closure=False)
```

Add depset of values

### Parameters

| Parameter | Description |
| - | - |
| `key` | [string](/versions/8.0.1/rules/lib/core/string); required  A String key |
| `values` | [depset](/versions/8.0.1/rules/lib/builtins/depset); required  The depset whose items will be joined. |
| `join_with` | [string](/versions/8.0.1/rules/lib/core/string); required  A delimiter string used to join together the strings obtained from applying `map_each`, in the same manner as [`string.join()`](/versions/8.0.1/rules/lib/core/string#join). |
| `map_each` | callable; required  A Starlark function accepting a single argument and returning either a string, `None`, or a list of strings. This function is applied to each item of the depset specified in the `values` parameter |
| `uniquify` | [bool](/versions/8.0.1/rules/lib/core/bool); default is `False`  If true, duplicate strings derived from `values` will be omitted. Only the first occurrence of each string will remain. Usually this feature is not needed because depsets already omit duplicates, but it can be useful if `map_each` emits the same string for multiple items. |
| `format_joined` | [string](/versions/8.0.1/rules/lib/core/string); or `None`; default is `None`  An optional format string pattern applied to the joined string. The format string must have exactly one '%s' placeholder. |
| `allow_closure` | [bool](/versions/8.0.1/rules/lib/core/bool); default is `False`  If true, allows the use of closures in function parameters like `map_each`. Usually this isn't necessary and it risks retaining large analysis-phase data structures into the execution phase. |
