# template_keys

URL: /kida/api/utils/template_keys/
Section: utils
Description: Canonical template name normalization for cache keys and import_stack lookups.

---

> For a complete page index, fetch /kida/llms.txt.

Open LLM text
(/kida/api/utils/template_keys/index.txt)

Share with AI

Ask Claude
(https://claude.ai/new?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Futils%2Ftemplate_keys%2Findex.txt)

Ask ChatGPT
(https://chatgpt.com/?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Futils%2Ftemplate_keys%2Findex.txt)

Ask Gemini
(https://gemini.google.com/app?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Futils%2Ftemplate_keys%2Findex.txt)

Ask Copilot
(https://copilot.microsoft.com/?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Futils%2Ftemplate_keys%2Findex.txt)

Module

#
`utils.template_keys`

Canonical template name normalization for cache keys and import_stack lookups.

2Functions

## Functions

`normalize_template_name`

1

`str`

▼

Normalize template name for cache keys and import_stack lookups.

- Strip white…

`def normalize_template_name(name: str) -> str`

Normalize template name for cache keys and import_stack lookups.

- Strip whitespace

- Normalize path separators to /

- Reject .. and path traversal (raises TemplateNotFoundError)

##### Parameters

Name
Type
Description

`name`
`str`

Raw template name from {% extends %}, {% include %}, etc.

##### Returns

`str`

`resolve_template_name`

2

`str`

▼

Resolve a template name to a canonical root-relative form.

Handles ``./`` and …

`def resolve_template_name(name: str, caller: str | None = None) -> str`

Resolve a template name to a canonical root-relative form.

Handles`./` and `../`prefixes by resolving against the caller
template's directory. Falls through to`normalize_template_name`()
for absolute (root-relative) names.

##### Parameters

Name
Type
Description

`name`
`str`

Raw template name. May start with`./` or `../`for relative resolution.

`caller`
`str | None`

Logical name of the template issuing the request (e.g.`"pages/about.html"`). Required when `name`is relative.

Default:`None`

##### Returns

`str`
