J. Nick Koston
ef8e74786f
Support extracting entities by domain from templates ( #38647 )
2020-08-09 13:44:09 +02:00
J. Nick Koston
62c664fbbd
Reduce time to reload yaml and check configuration ( #38469 )
...
* Reduce time to reload yaml and check configuration
We spend a significant amount of time compiling templates
that we have already compiled.
Use an LRU cache to avoid re-compiling templates that
we frequently use.
* pylint
* switch to WeakValueDictionary
* preen
2020-08-04 03:00:44 +02:00
Jakob Schlyter
dbcd5f4c2c
Add urlencode template filter ( #37753 )
...
* add urlencode template filter
* fix flake8
* add test to string ang integer
* better test vectors
2020-07-13 16:48:29 +02:00
Thomas Hollstegge
8f285c15d3
Listen for group member state changes when using expand
in templates ( #35398 )
...
* Re-evaluate template on group member state change
* Use named groups for entity extraction regex
This will avoid unnecessary edits of match indices if the regex is
amended in the future
* Improve test coverage
2020-05-10 10:48:56 -05:00
Paulus Schoutsen
2af984917e
Use asynctest-mock in most places ( #35109 )
...
* Use asynctest-mock in most places
* Fix broken patch in pilight
2020-05-03 11:27:19 -07:00
Mikael Svensson
ccc818266b
Fix relative_time datetime object without timezone ( #34273 )
2020-04-20 10:29:12 -07:00
Franck Nijhof
d7e9959442
String formatting improvements for tests (2) ( #33666 )
2020-04-05 00:33:07 +02:00
Ville Skyttä
5216477353
Be consistent with Home Assistant and Hass.io spelling ( #30500 )
...
* Be consistent with Home Assistant spelling
* Be consistent with Hass.io spelling
2020-01-05 14:09:17 +02:00
Ville Skyttä
fa4fa30461
Various string cleanups ( #30435 )
...
* Remove some unnecessary string concatenations
* Replace some simple str.formats with f-strings
* Replace some string concatenations with f-strings
2020-01-03 14:47:06 +01:00
Ville Skyttä
e6388e186c
Remove unnecessary string literal concatenations ( #30360 )
2020-01-02 21:17:10 +02:00
Bas Nijholt
f60125b5c9
Sort imports according to PEP8 for 'tests' ( #29791 )
2019-12-09 16:52:24 +01:00
Paulus Schoutsen
eef91f843d
Rendering complex template objects to leave non-template values alone ( #29353 )
2019-12-03 14:15:45 -08:00
Tobias Perschon
d92f48646a
Add round to half template method ( #28948 )
...
* added round to half method
Signed-off-by: Tobias Perschon <tobias@perschon.at>
* testcase for new round method
Signed-off-by: Tobias Perschon <tobias@perschon.at>
2019-11-22 10:08:41 -08:00
SteveDinn
25fd930d67
Add template filters to convert objects to and from JSON strings ( #27909 )
...
* Added filters to convert objects to and from JSON strings.
* Added extra spacing.
* Removed try/catch to get native exceptions
* Added tests.
2019-10-22 22:51:29 -07:00
Tomi Lehto
5b516fc0cd
Add arcus trigonometry functions to templates ( #25510 )
2019-08-09 11:16:47 -07:00
Paulus Schoutsen
4de97abc3a
Black
2019-07-31 12:25:30 -07:00
aschamberger
3512d05467
Add ord() to template filters ( #25398 )
...
* Add ord() to template filters
* Remove trailing whitespace
* add test
2019-07-25 15:06:51 -07:00
Penny Wood
22d9bee41a
Template: Expand method to expand groups, and closest as filter ( #23691 )
...
* Implement expand method
* Allow expand and closest to be used as filters
* Correct patch
* Addresses review comments
2019-06-22 00:32:32 -07:00
Penny Wood
5b9d01139d
render_with_collect method for template ( #23283 )
...
* Make entity_filter be a modifiable builder
* Add render_with_collect method
* Use sync render_with_collect and non-class based test case
* Refactor: Template renders to RenderInfo
* Freeze with exception too
* Finish merging test changes
* Removed unused sync interface
* Final bits of the diff
2019-05-01 10:54:25 +08:00
Erik Montnemery
407e0c58f9
Migrate tests to pytest ( #23544 )
...
* Migrate tests to pytest
* Fixup
* Use loop fixture in test_check_config
* Lint
2019-04-30 09:20:38 -07:00
Moritz Fey
f272ed3b91
Add 'method' parameter to forgiving_round method ( #21708 )
...
* Add 'method' parameter to forgiving_round method
Fixes #21707
* fix rounding behavior in round() filter
* add test cases for new rounding behaviour
2019-03-24 18:10:49 -07:00
MatthewFlamm
ed93c3b2c1
Fix pressure in dark sky and openweathermap and add pressure utility ( #21210 )
2019-03-24 18:37:31 +01:00
Phil Bruckner
935e5c67a3
Handle non-string values in JSON renderer ( #20233 )
...
Handle the case of async_render_with_possible_json_value's value argument
being something other than a string. This can happen, e.g., when using the
SQL sensor to extract a datetime column such as last_changed and also using
its value_template to convert that datetime to another format. This was
causing a TypeError from json.loads, but async_render_with_possible_json_value
was only catching ValueError's.
2019-01-20 16:46:14 -08:00
Mahasri Kalavala
c23792d1fb
Added new filters for templates ( #18125 )
...
* added additional filters
Added base64_encode, base64_decode and ordinal filters.
* added test cases
added test cases for base64_encode, base64_decode and ordinal filters.
* forgot to add filters :)
2018-12-01 10:38:10 +01:00
Neil Crosby
865ea82432
Allow jinja namespace command to work. ( #18011 )
2018-10-30 19:13:20 +01:00
Anders Melchiorsen
3de822a0e2
RFC: Static templates match no entities, not all ( #17991 )
...
* Static templates match no entities, not all
* Clean up test values
2018-10-30 12:03:27 +01:00
Paulus Schoutsen
08fe7c3ece
Pytest tests ( #17750 )
...
* Convert core tests
* Convert component tests to use pytest assert
* Lint 🤷♂️
* Fix test
* Fix 3 typos in docs
2018-10-24 12:10:05 +02:00
Markus Nigbur
670c75e844
Added resolve_state to template distance function ( #17290 )
...
_resolve_state was already used in the "closest" function, to allow for states and entity ids
2018-10-10 11:49:24 +02:00
Blake Blackshear
f13f723a04
Add bitwise operations as template helpers ( #16833 )
2018-09-26 11:57:16 +02:00
Paulus Schoutsen
d1e1b9b38a
Deprecated stuff ( #16019 )
...
* Use async with for locks
* Fix regex in template test
* Close session correctly
* Use correct current_task method
* push camera cleanup
* Lint
* Revert current_task
* Update websocket_api.py
* Mock executor_job betteR
* Fix async_create_task mock
2018-08-20 16:34:18 +02:00
Ville Skyttä
dbd0763f83
Grammar and spelling fixes ( #16065 )
2018-08-19 22:29:08 +02:00
Benedict Aas
9677bc081e
Add more math functions to templates ( #13915 )
...
We make `sin`, `cos`, `tan`, and `sqrt` functions, and the `pi`, `tau`,
and `e` constants available in templates.
2018-04-15 18:51:45 +02:00
mountainsandcode
032d6963d8
Add regex functions as templating helpers ( #13631 )
...
* Add regex functions as templating helpers
* Add regex functions as templating helpers - Style fixed
* Templating filters, third time lucky?
2018-04-04 15:34:01 +02:00
Mikael Svensson
bdb4d754ae
Adds template function state_attr to get attribute from a state ( #13378 )
...
* Adds template function state_attr to get attribute from a state
Refactored is_state_attr to use new function
Adds tests for state_attr
* Fixes line too long and test bug
* Fixes pylint error
* Fixes tests and D401 lint error
2018-03-28 00:04:18 -07:00
Anders Melchiorsen
55daea5169
Improve detection of entity names in templates ( #13432 )
...
* Improve detection of entity names in templates
* Only test variables
2018-03-25 12:51:11 +02:00
tschmidty69
48619c9d7c
Implemented event_data_template (new) ( #11057 )
...
* Implemented event_data_template
* The hound does not like my indentation
* Added passed variables to tests for event and svc template calls
* Moved recursive function to template.py
* Update template.py
* Update template.py
* Cleaned up service.py and fixed unit tests
* Blank lines
* Removed stray logger statement
* Blank lines again
2018-01-18 22:13:14 -08:00
Odin Ugedal
0668fba7bd
Add support for logarithm in templates ( #10824 )
...
* Add support for logarithm in templates
This adds a 'log' filter that takes the logarithm of the given value,
with an optional base number. The base defaults to 'e' - the natural
logarithm
* Remove usage of log10 in template filter 'log'
* Add logarithm as a global
This makes it possible to write:
'{{ log(4, 2) }}'
2017-11-27 21:29:01 -08:00
cdce8p
be5c0b2d92
Wait_template - support for 'trigger.entity_id' and data_template values ( #9807 )
...
* *Added support for use of 'trigger.entity_id' and service->data_template->script in wait_template
* * Fixed style violations
* * Fixed regular expression (_RE_GET_POSSIBLE_ENTITIES)
* * combined 'extract_entities' and 'extract_entities_with_variables'
* fixed regular expression
* * Added first test for extract_entities_with_variables
* * Added Unittests (tests/helpers/test_template.py test_extract_entities_with_variables)
* * Added Unittests (tests/helpers/test_script.py test_wait_template_variables)
* * Added Unittests (tests/components/automation/test_template.py test_wait_template_with_trigger)
* * Added Unittests (tests/components/automation/test_state.py test_wait_template_with_trigger)
* * Added Unittests (tests/components/automation/test_numeric_state.py test_wait_template_with_trigger)
* * Fixed style violations
* * Fixed style violations
* * Fixed style violations
* * Fixed style violations
* * Fixed style violations
* * Fixed style violations
* * Updated regular expression and delete whitespaces
2017-10-12 16:57:18 +02:00
BioSehnsucht
3c0d02f057
Rename input_slider to input_number and add numeric text box option ( #9494 )
...
* * Rename input_slider to input_number
* Update input_number to optionally display slider, input box, or both
* input_number support either input box or slider mode, but not both
* input_number : change service from select_value to set_value
* input_number : add test for mode setting to tests
2017-10-03 21:34:13 +02:00
Paulus Schoutsen
5629157740
Allow getting number of available states in template ( #9158 )
2017-08-27 18:33:25 +02:00
Paulus Schoutsen
b282167f26
Add state_with_unit property to state objects in templates ( #9014 )
...
* Wrap state objects in templates
* Fix tests
* Fix bugs
* Lint
* Remove invalid state warning
2017-08-17 23:19:35 -07:00
Anton Sarukhanov
f3dabe21ab
Prevent the random template filter from caching its output. Fixes #5678 ( #7716 )
2017-05-23 10:32:06 -07:00
Anders Melchiorsen
5fa8037231
Always return True/False from is_state and is_state_attr ( #7138 )
...
* Always return True/False from is_state and is_state_attr
These functions are documented to always return True/False but the
short-circuit evaluation would return None if the entity_id did not exist.
* Reword into a single statement
2017-04-16 16:36:15 -07:00
Adam Mills
efbd66bca1
Fix flaky template test ( #6768 )
2017-03-23 20:56:39 -07:00
Jose Juan Montes
4da2156ebf
Return None instead of raising ValueException from as_timestamp template function. ( #6155 )
2017-03-02 22:18:01 -08:00
Stéphane Bidoul (ACSONE)
7927a6b588
add min and max jinja filters ( #5765 )
2017-02-07 00:25:47 -08:00
Pascal Vizeli
2a139d6bc7
Add unittest for multible entities in one line ( #5759 )
2017-02-05 14:24:38 +01:00
Lewis Juggins
01a6c1c1c8
Add strptime template function ( #3950 )
2016-11-10 22:57:44 -08:00
Fabian Affolter
be272ac64a
Disable too-many-* ( #4107 )
...
* Disable too-many-* and too-few-public-methods
* Remove globally disabled pylint warnings
2016-10-30 22:18:53 +01:00
Jan Harkes
555e533f67
Added tests for the template is_defined filter
2016-10-17 03:20:07 +02:00