Commit Graph

70 Commits (37c55d81e38d9e3359af2d8bec7dcc51fd682721)

Author SHA1 Message Date
Sid 2cc916db6d
Replace pylint broad-except with Ruff BLE001 (#116250) 2024-05-07 14:00:27 +02:00
J. Nick Koston ca5ed274cb
Deprecate calling async_listen and async_listen_once with run_immediately (#115169) 2024-04-08 10:07:54 -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 742643936f
Migrate legacy device_tracker task creation to use eager_start (#114703)
Many of these can finish synchronously without being scheduled on the loop
2024-04-03 12:12:52 +02:00
J. Nick Koston 6371b344b9
Ensure discovery can setup legacy device tracker platforms (#114101) 2024-03-24 07:38:05 -10:00
J. Nick Koston 39c44ad5b7
Move setup of legacy device_tracker see service to legacy setup task (#114043)
* Move setup of legacy device_tracker see service to legacy setup task

device_tracker can setup synchronously now if there are no legacy
platforms that have to be import to validate the config

The see service is not useful until at least one legacy platform
is loaded so there is no reason to wait for it in the base
setup.

* collapse
2024-03-23 09:40:34 +01:00
J. Nick Koston 7b67a486bd
Migrate legacy device_tracker shutdown to use run_immediately (#113835)
A call_soon is not needed here
2024-03-19 14:07:57 -10:00
J. Nick Koston c615b52840
Refactor integration startup time to show wall clock time (#113707)
* Refactor setup time tracking to exclude time waiting on other operations

We now exclude the import time and th time waiting on
base platforms to setup from the setup times

* tweak

* tweak

* tweak

* tweak

* adjust

* fixes

* fixes

* preen

* preen

* tweak

* tweak

* adjust

* tweak

* reduce

* do not count integrtion platforms against their parent integration

* handle legacy tts platforms

* stt as well

* one more wait

* use the same pattern in all the legacy

* fix tts and stt legacy

* fix

* fix

* reduce

* preen

* entity comp does not wait for platforms

* scene blocks as well

* fix test

* test fixes

* coverage

* coverage

* coverage

* fix test

* Update tests/test_setup.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update tests/test_setup.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/setup.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* strip

* strip WAIT_PLATFORM_INTEGRATION

* strip WAIT_PLATFORM_INTEGRATION

* strip WAIT_PLATFORM_INTEGRATION

* strip WAIT_PLATFORM_INTEGRATION

* remove complexity

* Apply suggestions from code review

* no longer works that way

* fixes

* fixes

* fixes

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-18 21:45:34 -04:00
J. Nick Koston 8a144d16f5
Move legacy device_tracker setup to a tracked task (#113715)
* Move legacy device_tracker setup to a tracked task

Legacy platforms are now loaded in a tracked task which
allows anything waiting on device_tracker (such as
a config entry that uses the device_tracker
platform) to proceed.

This also allows us to remove the workaround
of adding device_tracker to
hass.config.components in its setup

* tweak

* tweak

* fix tests
2024-03-18 10:39:59 +01:00
Sid 82a60fe8ad
Enable Ruff RSE (#113695) 2024-03-18 00:40:38 +01:00
Jan-Philipp Benecke c58bba55bf
Remove deprecated `hass.components` from legacy device tracker platform (#113612) 2024-03-16 11:19:29 -10:00
Marc Mueller 0e3945ca6c
Add empty line after module docstring [d-f] (#112698) 2024-03-08 14:15:26 +01:00
J. Nick Koston 40774101d3
Avoid creating task per device when adding legacy device trackers (#111220) 2024-02-23 23:47:43 +01:00
Jan-Philipp Benecke dc17780e5b
Remove device from known_devices upon import in ping device tracker (#105009)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-12-05 18:52:22 +01:00
Erik Montnemery 84e74e4c74
Reverse component path (#104087)
* Reverse component path

* Update translations helper

* Fix

* Revert incorrect change of PLATFORM_FORMAT

* Fix use of PLATFORM_FORMAT in tts

* Fix ios
2023-12-05 08:43:58 +01:00
Erik Montnemery 95f7db1970
Move config_per_platform and extract_domain_configs to config.py (#104989) 2023-12-04 12:48:49 +01:00
Jan Bouwhuis 9962301b42
Do not notify config errors during logging (#104466) 2023-11-24 21:34:09 +01:00
Erik Montnemery 5b37096b5f
Refactor config.async_log_exception (#104034)
* Refactor config.async_log_exception

* Improve test coverage

* Make functions public
2023-11-15 19:09:49 +01:00
Jan Bouwhuis a5f8774878
Use cached_property for legacy device_tracker type (#101125) 2023-09-29 20:54:24 +02:00
Martin Hjelmare 081e4e03a7
Disable legacy device tracker no platform log (#95839) 2023-07-04 13:26:48 +02:00
epenet aa218e6f9c
Fix lingering timer in device_tracker (#90824) 2023-04-05 21:12:26 -04:00
epenet c01b1eb013
Adjust async_track_time_interval name argument (#90838)
Adjust async_track_time_interval naming
2023-04-05 10:58:02 -04:00
J. Nick Koston 5e3796c333
Prevent legacy device tracker from creating hundreds of executor jobs (#90690)
* Prevent legacy device tracker from creating hundreds of executor jobs

The legacy device tracker would create an executor job for
each set of extra state attributes and device name lookup.

For routers this meant hundreds of jobs

* Prevent legacy device tracker from creating hundreds of executor jobs

The legacy device tracker would create an executor job for
each set of extra state attributes and device name lookup.

For routers this meant hundreds of jobs

* tweak

* simplify
2023-04-04 08:55:25 -04:00
J. Nick Koston 02ef7d445d
Allow passing an optional name to async_track_time_interval (#90244)
* Allow passing an optional name to async_track_time_interval

This is the same idea as passing a name to asyncio.create_task which
makes it easier to track down bugs

* more

* short

* still cannot find it

* add a few more

* test
2023-03-25 10:11:14 -04:00
Franck Nijhof b0cee0bc46
String formatting and max line length - Part 1 (#84390)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-12-22 10:12:50 +01:00
Marc Mueller 0b97dcf0bd
Use vol.Coerce for notify SourceType enum (#77930) 2022-09-16 16:46:26 +02:00
Marc Mueller 2b1e1365fd
Add StrEnum for device_tracker `SourceType` (#75892)
Add StrEnum for device_tracker SourceType
2022-07-29 13:09:03 +02:00
Marc Mueller 003fe9220e
Add protocol types for device_tracker `async_see` and `see` (#75891) 2022-07-29 00:27:47 +02:00
epenet 50ca14538a
Cleanup deprecated async_get_registry in core (#72087) 2022-05-18 17:58:28 +02:00
epenet 4eae888546
Fix incorrect type hint in config_per_platform helper (#63890)
* Adjust base helper

* Filter type is not None in mailbox

* Filter empty platforms in device_tracker

* Filter out empty platform in notify

* Filter out empty platform in entity_component

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-11 17:28:37 +01:00
epenet 0ac9b62f97
Fix incorrect type hint in async_setup_scanner (#63833)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-10 22:47:24 +01:00
Marc Mueller 01baa20671
Fix implicit reexport [dt_util] (#63829) 2022-01-10 16:31:23 +01:00
Tobias Sauerwein 2c904c0974
Bump mypy to 0.930 (#62642)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-12-27 17:55:17 +01:00
Marc Mueller 7063c05127
Use assignment expressions 33 (#58717) 2021-10-30 16:32:41 +02:00
Marc Mueller eab235173b
Use assignment expressions 28 (#58189) 2021-10-22 14:06:04 +02:00
Marc Mueller 364767ff22
Import Callable from collections.abc (4) (#56778) 2021-09-29 16:15:36 +02:00
Marc Mueller 10bfc78365
Fix missing encoding with open() (#53593)
* Fix missing encoding with open()

* Fix tests

* Improve open - frontend
2021-07-28 09:41:45 +02:00
Ruslan Sayfutdinov b704f0e729
Add strict typing to device_tracker (#50930)
* Add strict typing to device_tracker

* Update homeassistant/components/device_tracker/legacy.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-22 09:15:15 +01:00
Ruslan Sayfutdinov 00208ff0d8
Use type safe import for device_tracker.PLATFORM_SCHEMA (#50860) 2021-05-21 13:08:40 +02:00
Ruslan Sayfutdinov 62386c8676
Enable type checks for device_tracker (#50805)
* Enable type checks for device_tracker

* Fix MQTT test
2021-05-19 09:36:26 +01:00
Marc Mueller c07646db5d
Update typing syntax (#49480)
* Update typing syntax

* Replace typing imports with ones from collections where possible

* Changes after review
2021-04-20 17:40:41 +02:00
Joakim Sørensen 9585defca0
Add device_tracker scanners to hass.config.components (#49063) 2021-04-11 13:54:43 -10:00
J. Nick Koston 12e3bc8101
Provide api to see which integrations are being loaded (#48274)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-04 22:11:44 -10:00
Franck Nijhof 855b68faa1
Remove HomeAssistantType alias from entity components - Part 1 (#48467) 2021-03-29 13:24:36 -10:00
J. Nick Koston 1fb9008488
Include platform only integrations in the manifest list api (#48269) 2021-03-29 12:51:48 +02:00
Erik Montnemery 346a724ac3
Mark base components' state_attribute @final, rename others to extra_state_attributes (#48161)
* Mark base state_attributes @final, rename others to extra_state_attributes

* Fix calendar, update tests
2021-03-21 10:38:24 +01:00
Marc Mueller 7c0734bdd5
Update typing 05 (#48038) 2021-03-17 23:43:55 +01:00
Erik Montnemery 6c084ae6ce
Update integrations a-e to override extra_state_attributes() (#47756) 2021-03-11 16:51:03 +01:00
Ville Skyttä a6358430b4
Fix deprecated asyncio.wait use with coroutines (#44981)
https://docs.python.org/3/library/asyncio-task.html#asyncio-example-wait-coroutine
2021-02-10 14:16:58 +01:00