Rename custom_jinja to custom_templates (#90473)
Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
cf0550f5c2
commit
5bc9545b81
8 changed files with 27 additions and 27 deletions
|
@ -245,7 +245,7 @@ async def load_registries(hass: core.HomeAssistant) -> None:
|
||||||
entity_registry.async_load(hass),
|
entity_registry.async_load(hass),
|
||||||
issue_registry.async_load(hass),
|
issue_registry.async_load(hass),
|
||||||
hass.async_add_executor_job(_cache_uname_processor),
|
hass.async_add_executor_job(_cache_uname_processor),
|
||||||
template.async_load_custom_jinja(hass),
|
template.async_load_custom_templates(hass),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ from homeassistant.helpers.service import (
|
||||||
async_extract_referenced_entity_ids,
|
async_extract_referenced_entity_ids,
|
||||||
async_register_admin_service,
|
async_register_admin_service,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.template import async_load_custom_jinja
|
from homeassistant.helpers.template import async_load_custom_templates
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
|
|
||||||
ATTR_ENTRY_ID = "entry_id"
|
ATTR_ENTRY_ID = "entry_id"
|
||||||
|
@ -39,7 +39,7 @@ _LOGGER = logging.getLogger(__name__)
|
||||||
DOMAIN = ha.DOMAIN
|
DOMAIN = ha.DOMAIN
|
||||||
SERVICE_RELOAD_CORE_CONFIG = "reload_core_config"
|
SERVICE_RELOAD_CORE_CONFIG = "reload_core_config"
|
||||||
SERVICE_RELOAD_CONFIG_ENTRY = "reload_config_entry"
|
SERVICE_RELOAD_CONFIG_ENTRY = "reload_config_entry"
|
||||||
SERVICE_RELOAD_CUSTOM_JINJA = "reload_custom_jinja"
|
SERVICE_RELOAD_CUSTOM_TEMPLATES = "reload_custom_templates"
|
||||||
SERVICE_CHECK_CONFIG = "check_config"
|
SERVICE_CHECK_CONFIG = "check_config"
|
||||||
SERVICE_UPDATE_ENTITY = "update_entity"
|
SERVICE_UPDATE_ENTITY = "update_entity"
|
||||||
SERVICE_SET_LOCATION = "set_location"
|
SERVICE_SET_LOCATION = "set_location"
|
||||||
|
@ -260,12 +260,12 @@ async def async_setup(hass: ha.HomeAssistant, config: ConfigType) -> bool: # no
|
||||||
vol.Schema({ATTR_LATITUDE: cv.latitude, ATTR_LONGITUDE: cv.longitude}),
|
vol.Schema({ATTR_LATITUDE: cv.latitude, ATTR_LONGITUDE: cv.longitude}),
|
||||||
)
|
)
|
||||||
|
|
||||||
async def async_handle_reload_jinja(call: ha.ServiceCall) -> None:
|
async def async_handle_reload_templates(call: ha.ServiceCall) -> None:
|
||||||
"""Service handler to reload custom Jinja."""
|
"""Service handler to reload custom Jinja."""
|
||||||
await async_load_custom_jinja(hass)
|
await async_load_custom_templates(hass)
|
||||||
|
|
||||||
async_register_admin_service(
|
async_register_admin_service(
|
||||||
hass, ha.DOMAIN, SERVICE_RELOAD_CUSTOM_JINJA, async_handle_reload_jinja
|
hass, ha.DOMAIN, SERVICE_RELOAD_CUSTOM_TEMPLATES, async_handle_reload_templates
|
||||||
)
|
)
|
||||||
|
|
||||||
async def async_handle_reload_config_entry(call: ha.ServiceCall) -> None:
|
async def async_handle_reload_config_entry(call: ha.ServiceCall) -> None:
|
||||||
|
@ -300,7 +300,7 @@ async def async_setup(hass: ha.HomeAssistant, config: ConfigType) -> bool: # no
|
||||||
Additionally, it also calls the `homeasssitant.reload_core_config`
|
Additionally, it also calls the `homeasssitant.reload_core_config`
|
||||||
service, as that reloads the core YAML configuration, the
|
service, as that reloads the core YAML configuration, the
|
||||||
`frontend.reload_themes` service that reloads the themes, and the
|
`frontend.reload_themes` service that reloads the themes, and the
|
||||||
`homeassistant.reload_custom_jinja` service that reloads any custom
|
`homeassistant.reload_custom_templates` service that reloads any custom
|
||||||
jinja into memory.
|
jinja into memory.
|
||||||
|
|
||||||
We only do so, if there are no configuration errors.
|
We only do so, if there are no configuration errors.
|
||||||
|
@ -330,7 +330,7 @@ async def async_setup(hass: ha.HomeAssistant, config: ConfigType) -> bool: # no
|
||||||
for domain, service in (
|
for domain, service in (
|
||||||
(ha.DOMAIN, SERVICE_RELOAD_CORE_CONFIG),
|
(ha.DOMAIN, SERVICE_RELOAD_CORE_CONFIG),
|
||||||
("frontend", "reload_themes"),
|
("frontend", "reload_themes"),
|
||||||
(ha.DOMAIN, SERVICE_RELOAD_CUSTOM_JINJA),
|
(ha.DOMAIN, SERVICE_RELOAD_CUSTOM_TEMPLATES),
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -59,10 +59,10 @@ update_entity:
|
||||||
target:
|
target:
|
||||||
entity: {}
|
entity: {}
|
||||||
|
|
||||||
reload_custom_jinja:
|
reload_custom_templates:
|
||||||
name: Reload custom Jinja2 templates
|
name: Reload custom Jinja2 templates
|
||||||
description: >-
|
description: >-
|
||||||
Reload Jinja2 templates found in the custom_jinja folder in your config.
|
Reload Jinja2 templates found in the custom_templates folder in your config.
|
||||||
New values will be applied on the next render of the template.
|
New values will be applied on the next render of the template.
|
||||||
|
|
||||||
reload_config_entry:
|
reload_config_entry:
|
||||||
|
|
|
@ -124,7 +124,7 @@ template_cv: ContextVar[tuple[str, str] | None] = ContextVar(
|
||||||
CACHED_TEMPLATE_STATES = 512
|
CACHED_TEMPLATE_STATES = 512
|
||||||
EVAL_CACHE_SIZE = 512
|
EVAL_CACHE_SIZE = 512
|
||||||
|
|
||||||
MAX_CUSTOM_JINJA_SIZE = 5 * 1024 * 1024
|
MAX_CUSTOM_TEMPLATE_SIZE = 5 * 1024 * 1024
|
||||||
|
|
||||||
|
|
||||||
@bind_hass
|
@bind_hass
|
||||||
|
@ -2084,18 +2084,18 @@ class LoggingUndefined(jinja2.Undefined):
|
||||||
return super().__bool__()
|
return super().__bool__()
|
||||||
|
|
||||||
|
|
||||||
async def async_load_custom_jinja(hass: HomeAssistant) -> None:
|
async def async_load_custom_templates(hass: HomeAssistant) -> None:
|
||||||
"""Load all custom jinja files under 5MiB into memory."""
|
"""Load all custom jinja files under 5MiB into memory."""
|
||||||
return await hass.async_add_executor_job(_load_custom_jinja, hass)
|
return await hass.async_add_executor_job(_load_custom_templates, hass)
|
||||||
|
|
||||||
|
|
||||||
def _load_custom_jinja(hass: HomeAssistant) -> None:
|
def _load_custom_templates(hass: HomeAssistant) -> None:
|
||||||
result = {}
|
result = {}
|
||||||
jinja_path = hass.config.path("custom_jinja")
|
jinja_path = hass.config.path("custom_templates")
|
||||||
all_files = [
|
all_files = [
|
||||||
item
|
item
|
||||||
for item in pathlib.Path(jinja_path).rglob("*.jinja")
|
for item in pathlib.Path(jinja_path).rglob("*.jinja")
|
||||||
if item.is_file() and item.stat().st_size <= MAX_CUSTOM_JINJA_SIZE
|
if item.is_file() and item.stat().st_size <= MAX_CUSTOM_TEMPLATE_SIZE
|
||||||
]
|
]
|
||||||
for file in all_files:
|
for file in all_files:
|
||||||
content = file.read_text()
|
content = file.read_text()
|
||||||
|
|
|
@ -14,7 +14,7 @@ from homeassistant.components.homeassistant import (
|
||||||
SERVICE_CHECK_CONFIG,
|
SERVICE_CHECK_CONFIG,
|
||||||
SERVICE_RELOAD_ALL,
|
SERVICE_RELOAD_ALL,
|
||||||
SERVICE_RELOAD_CORE_CONFIG,
|
SERVICE_RELOAD_CORE_CONFIG,
|
||||||
SERVICE_RELOAD_CUSTOM_JINJA,
|
SERVICE_RELOAD_CUSTOM_TEMPLATES,
|
||||||
SERVICE_SET_LOCATION,
|
SERVICE_SET_LOCATION,
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
|
@ -576,19 +576,19 @@ async def test_save_persistent_states(hass: HomeAssistant) -> None:
|
||||||
assert mock_save.called
|
assert mock_save.called
|
||||||
|
|
||||||
|
|
||||||
async def test_reload_custom_jinja(hass: HomeAssistant) -> None:
|
async def test_reload_custom_templates(hass: HomeAssistant) -> None:
|
||||||
"""Test we can call reload_custom_jinja."""
|
"""Test we can call reload_custom_templates."""
|
||||||
await async_setup_component(hass, "homeassistant", {})
|
await async_setup_component(hass, "homeassistant", {})
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.homeassistant.async_load_custom_jinja",
|
"homeassistant.components.homeassistant.async_load_custom_templates",
|
||||||
return_value=None,
|
return_value=None,
|
||||||
) as mock_load_custom_jinja:
|
) as mock_load_custom_templates:
|
||||||
await hass.services.async_call(
|
await hass.services.async_call(
|
||||||
"homeassistant",
|
"homeassistant",
|
||||||
SERVICE_RELOAD_CUSTOM_JINJA,
|
SERVICE_RELOAD_CUSTOM_TEMPLATES,
|
||||||
blocking=True,
|
blocking=True,
|
||||||
)
|
)
|
||||||
assert mock_load_custom_jinja.called
|
assert mock_load_custom_templates.called
|
||||||
|
|
||||||
|
|
||||||
async def test_reload_all(
|
async def test_reload_all(
|
||||||
|
@ -602,7 +602,7 @@ async def test_reload_all(
|
||||||
notify = async_mock_service(hass, "notify", "reload")
|
notify = async_mock_service(hass, "notify", "reload")
|
||||||
core_config = async_mock_service(hass, "homeassistant", "reload_core_config")
|
core_config = async_mock_service(hass, "homeassistant", "reload_core_config")
|
||||||
themes = async_mock_service(hass, "frontend", "reload_themes")
|
themes = async_mock_service(hass, "frontend", "reload_themes")
|
||||||
jinja = async_mock_service(hass, "homeassistant", "reload_custom_jinja")
|
jinja = async_mock_service(hass, "homeassistant", "reload_custom_templates")
|
||||||
|
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.config.async_check_ha_config_file",
|
"homeassistant.config.async_check_ha_config_file",
|
||||||
|
|
|
@ -245,8 +245,8 @@ def test_iterating_domain_states(hass: HomeAssistant) -> None:
|
||||||
|
|
||||||
|
|
||||||
async def test_import(hass: HomeAssistant) -> None:
|
async def test_import(hass: HomeAssistant) -> None:
|
||||||
"""Test that imports work from the config/custom_jinja folder."""
|
"""Test that imports work from the config/custom_templates folder."""
|
||||||
await template.async_load_custom_jinja(hass)
|
await template.async_load_custom_templates(hass)
|
||||||
assert "test.jinja" in template._get_hass_loader(hass).sources
|
assert "test.jinja" in template._get_hass_loader(hass).sources
|
||||||
assert "inner/inner_test.jinja" in template._get_hass_loader(hass).sources
|
assert "inner/inner_test.jinja" in template._get_hass_loader(hass).sources
|
||||||
assert (
|
assert (
|
||||||
|
@ -283,7 +283,7 @@ async def test_import(hass: HomeAssistant) -> None:
|
||||||
|
|
||||||
async def test_import_change(hass: HomeAssistant) -> None:
|
async def test_import_change(hass: HomeAssistant) -> None:
|
||||||
"""Test that a change in HassLoader results in updated imports."""
|
"""Test that a change in HassLoader results in updated imports."""
|
||||||
await template.async_load_custom_jinja(hass)
|
await template.async_load_custom_templates(hass)
|
||||||
to_test = template.Template(
|
to_test = template.Template(
|
||||||
"""
|
"""
|
||||||
{% import 'test.jinja' as t %}
|
{% import 'test.jinja' as t %}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue