rlippmann
1120246194
Deprecate relative_time() in favor of time_since() and time_until() ( #111177 )
...
* add time_since/time_until. add deprecation of relative_time
* fix merge conflicts
* Apply suggestions from code review
* Update homeassistant/helpers/template.py
* Update homeassistant/helpers/template.py
* Update homeassistant/helpers/template.py
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-24 11:13:07 +02:00
J. Nick Koston
53a179088f
Add debug mode to catch unsafe thread operations using core helpers ( #115390 )
...
* adjust
* adjust
* fixes
* one more
* test
* debug
* move to config
* cover
* Update homeassistant/core.py
* set debug from RuntimeConfig
* reduce
* fix message
* raise
* Update homeassistant/core.py
* Update homeassistant/core.py
* no flood check for raise
* cover
2024-04-24 03:36:05 +02:00
J. Nick Koston
8f1761343e
Only work out job type once when setting up dispatcher ( #116030 )
2024-04-23 22:24:36 +02:00
Sid
3799d20d43
Enable Ruff B905 ( #114197 )
2024-04-14 00:14:26 -05:00
Sid
d61db732da
Enable Ruff SLOT rules ( #115043 )
2024-04-09 18:57:27 -10:00
J. Nick Koston
f527fd0947
Improve error reporting when an integration tries to create a task in a thread ( #115307 )
2024-04-09 11:11:22 -10:00
Sid
cbbadf6256
Enable Ruff PYI036 ( #115228 )
2024-04-08 08:47:03 -10:00
Sid
025c6f5e2e
Add `__slots__` to NodeClass classes ( #115079 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-08 08:44:18 -10:00
Marc Mueller
a0e6fd6ec5
Add improved typing for event fire and listen methods ( #114906 )
...
* Add EventType implementation
* Update integrations for EventType
* Change state_changed to EventType
* Fix tests
* Remove runtime impact
* Add tests
* Move to stub file
* Apply pre-commit to stub files
* Fix ruff PYI checks
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-07 13:28:24 -10:00
Sid
8e98ba7312
Add first batch of Ruff PYI rules ( #115100 )
...
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-07 11:30:50 -10:00
J. Nick Koston
164d29d4d9
Remove prepare override in HomeAssistantQueueHandler ( #115064 )
2024-04-06 13:53:36 -10:00
Sid
0d66d298ec
Enable Ruff RET504 ( #114528 )
...
* Enable Ruff RET504
* fix test
* Use noqa instead of cast
* fix sonos RET504
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-06 11:07:37 +02:00
Marc Mueller
816ce116bf
Remove unnecessary functools.cached_property backport ( #114239 )
2024-04-04 11:24:26 +02:00
J. Nick Koston
5038a035bd
Detect blocking module imports in the event loop ( #114488 )
2024-03-30 19:51:31 -10:00
Marc Mueller
443bfee16d
Replace partial annotations ( #114177 )
2024-03-28 18:33:39 +01:00
Marc Mueller
3929273b41
Allow float for int argument type [pylint plugin] ( #114105 )
2024-03-27 11:51:27 +01:00
Marc Mueller
1d2c2d2055
Move SignalTypes to util ( #114236 )
2024-03-27 08:41:44 +01:00
Franck Nijhof
2388e2dda9
Drop Python 3.11 support ( #114220 )
2024-03-26 12:51:14 +01:00
Joost Lekkerkerker
6bb4e7d62c
Bump ruff to 0.3.4 ( #112690 )
...
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>
2024-03-26 00:02:16 +01:00
Sid
82a60fe8ad
Enable Ruff RSE ( #113695 )
2024-03-18 00:40:38 +01:00
Sid
6ee273a548
Clean up unneeded ruff noqa directives ( #113616 )
2024-03-16 09:48:37 -10:00
Joost Lekkerkerker
05172d8e4d
Improve loops and lists ( #113269 )
...
* Enable PERF
* Enable PERF rule
* Enable PERF rule
* Don't enable flag yet
2024-03-14 10:22:20 +01:00
Marc Mueller
aa16a9d707
Add empty line after module docstring (3) ( #112750 )
2024-03-08 20:38:34 +01:00
Marc Mueller
a6b842f818
Add empty line after module docstring (2) [other] ( #112738 )
2024-03-08 19:16:38 +01:00
Marc Mueller
19ab3d6daf
Add empty line after module docstring [helpers + other] ( #112707 )
2024-03-08 10:36:11 -05:00
J. Nick Koston
1fb9cfe37e
Speed up the frame helper ( #112562 )
2024-03-06 20:54:09 -10:00
fwestenberg
385b29bdf5
Add Beaufort to wind_speed ( #105795 )
...
* Add Beaufort to wind_speed
* Add Bft to UnitOfSpeed
* Update tests with Bft
* Remove check for unit
* Fix test_deprecated_constants
* Test depricated constant Beaufort
* Fix test_unit_system.py for Beaufort
* Remove _DEPRECATED_SPEED_FEET_BEAUFORT
* Remove maxsize from lru_cache
* Update test_deprecated_constants
* Update comment
* Add missing docstring
* Apply suggestions from code review
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-05 14:55:59 +01:00
Marc Mueller
16b162cd07
Fix util create_eager_task typing ( #111976 )
2024-03-01 21:04:45 +01:00
J. Nick Koston
f59268b2ee
Include filename in exception when loading a json file fails ( #111802 )
...
* Include filename in exception when loading a json file fails
* fix
2024-02-29 10:30:29 -05:00
J. Nick Koston
cfe478245f
Migrate gather_with_limited_concurrency to use create_eager_task ( #111565 )
2024-02-26 16:31:52 -10:00
J. Nick Koston
67e356904b
Add support for eager tasks ( #111425 )
...
* Add support for eager tasks
python 3.12 supports eager tasks
reading:
https://docs.python.org/3/library/asyncio-task.html#eager-task-factory
https://github.com/python/cpython/issues/97696
There are lots of places were we are unlikely to suspend, but we might
suspend so creating a task makes sense
* reduce
* revert entity
* revert
* coverage
* coverage
* coverage
* coverage
* fix test
2024-02-26 11:36:46 -05:00
J. Nick Koston
5d421e249f
YAML loader performance improvements ( #111199 )
...
* YAML loader performance improvements
- Cache the name of the loader since we call it multiple
times for every line
- Add a fast path for scalar tags since they are the
most common
* Update homeassistant/util/yaml/loader.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* remove unreachable code
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-02-23 13:37:09 -05:00
Erik Montnemery
49a99559c7
Remove lru cache size limit of TemperatureConverter ( #109726 )
2024-02-05 20:21:04 +01:00
Marc Mueller
cd0ee98dba
Use builtin TimeoutError [core + helpers] ( #109684 )
2024-02-05 12:09:54 +01:00
J. Nick Koston
582d6968b2
Avoid de/recode of bytes to string to bytes when writing json files ( #109348 )
2024-02-02 09:02:26 +01:00
J. Nick Koston
155499fafe
Load json file as binary instead of decoding to string ( #109351 )
2024-02-02 09:00:46 +01:00
J. Nick Koston
8afcd53af6
Restore support for packages being installed from urls with fragments ( #109267 )
2024-02-01 08:56:57 +01:00
Robert Resch
b409933d19
Add DurationConverter ( #108865 )
...
* Add DurationConverter
* Update withings snapshots
* Add sensor test
* Fix tests
* Update snapshots after #108902 was merged
2024-01-30 23:08:12 +01:00
Joakim Plate
cece117c93
Flow rate unit conversions and device class ( #106077 )
...
* Add volume flow rate conversions
* Add missing translations
* Adjust liter unit and add gallons per minute
* Adjust to min instead of m for minutes
* Add matching class for number
* Add some tests for number and sensor platform
* Add deprecated constants
* Add explicit list of flow rate for check
This reverts commit 105171af31
.
2024-01-30 15:01:08 +01:00
Erik Montnemery
1cb5bbf865
Fix empty files included by !include_dir_named ( #108489 )
...
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-01-20 15:12:32 +01:00
Marc Mueller
afcb7a26cd
Enable strict typing for config ( #108023 )
2024-01-18 09:20:19 +01:00
J. Nick Koston
52e90b32df
Avoid many replace calls in find_next_time_expression_time ( #108273 )
2024-01-18 08:44:40 +01:00
Pedro Lamas
6cab4486f7
Fix loading empty yaml files with include_dir_named ( #107853 )
2024-01-16 10:23:04 +01:00
Marc Mueller
a9420bf05a
Enable strict typing for ios ( #107382 )
2024-01-12 14:43:17 +01:00
J. Nick Koston
1e4d10efe1
Add caching to the distance calculation utility ( #107626 )
2024-01-08 21:51:56 -10:00
J. Nick Koston
69307374f4
Signficantly reduce executor contention during bootstrap ( #107312 )
...
* Signficantly reduce executor contention during bootstrap
At startup we have a thundering herd wanting to use the executor
to load manifiest.json. Since we know which integrations we are
about to load in each resolver step, group the manifest loads
into single executor jobs by calling async_get_integrations on
the deps of the integrations after they are resolved.
In practice this reduced the number of executor jobs
by 80% during bootstrap
* merge
* naming
* tweak
* tweak
* not enough contention to be worth it there
* refactor to avoid waiting
* refactor to avoid waiting
* tweaks
* tweaks
* tweak
* background is fine
* comment
2024-01-07 22:55:40 -05:00
J. Nick Koston
75d591593d
Remove calls to distribution and legacy zip support from package util ( #107427 )
2024-01-07 07:39:48 -10:00
Marc Mueller
43fa51b696
Enable strict typing for blueprint ( #106887 )
2024-01-02 20:48:51 +01:00
Erik Montnemery
8f9bd75a36
Enable strict typing of date_time ( #106868 )
...
* Enable strict typing of date_time
* Fix parse_datetime
* Add test
* Add comments
* Update tests/util/test_dt.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-01-02 13:57:25 +01:00
J. Nick Koston
a4f0c84457
Reduce duplicate code in json_loads ( #106859 )
2024-01-01 20:25:23 -10:00