* Template domain blueprints
* Default blueprint for templates
* Some linting
* Template entity updates
* Load and use blueprints in config
* Added missing mapping methods for templates
* Linting
* Added tests
* Wrong schema type
* Hassfest errors
* More linting issues
* Refactor based on desired schema
In the [architecture discussion](https://github.com/home-assistant/architecture/discussions/1027), the template blueprint instance did not specify the platform (e.g. `binary_sensor`), but the initial implementation assumed that schema.
* Create default template blueprints on first run
* Moved TemplateConfig definition
This is to avoid circular references
* Corrected methods to find templates based on blueprints
* Corrected missing entity config information
* Added tests
* Don't use hass.data
Address comments https://github.com/home-assistant/core/pull/126971/#discussion_r1780097187
* Prevent creating blueprints during testing
* Combine 2 ifs
Address comment https://github.com/home-assistant/core/pull/126971/#discussion_r1780160870
* Improve test coverage
* Prevent template component from dirtying test env
* Remove useless hard-coded validation
* Improve code coverage to 100%
* Address review comments
* Moved helpers in helpers.py
As per comment https://github.com/home-assistant/core/pull/126971#discussion_r1786539889
* Fix blueprint source URL
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* added calories to energy class
* changes
* temporarily solving the problem with conversion accuracy
* add tests
* added calories to energy class
* changes
* add tests
* Update homeassistant/util/unit_conversion.py
Co-authored-by: Robert Resch <robert@resch.dev>
* Update homeassistant/util/unit_conversion.py
Co-authored-by: Robert Resch <robert@resch.dev>
* apply suggestions
* Update homeassistant/util/unit_conversion.py
---------
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add config flow to select platform in Template
* Remove device id duplicate in schema
* Add config flow for number platform in Template
* Remove mode
* Fix consider-using-tuple pylint warnings in component tests
* Apply su
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
---------
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
* Add code_format to template locks
* Replace code_format with code_format_template
* Add test case for template eval to None
* Apply suggestion to not call super()
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add more negative tests
* Handle template render errors
* Better error message
* Add custom test lock config for code format
* Add type hints from upstream
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Remove deprecated forecast attribute from WeatherEntity
* Fix some
* Ruff
* ipma
* buienradar
* some more
* Some more
* More and more
* strings
* attr_forecast
* Fix nws
* Fix
* remove from coverage
* Remove recorder test
* Review comments
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Refactor rate limit helper to track time in seconds
Currently we created datetime and timedelta objects to enforce the
rate limit. When the rate limit was being hit hard, this got expensive.
We now use floats everywhere instead as they are much cheaper which
is important when we are running up against a rate limit, which is
by definition a hot path
The rate limit helper is currently only used for templates and
we do not have any code in the code base that directly passes
in a rate limit so the impact to custom components is expected
to be negligible if any
* misesd two