* Small performance improvements to config entry setup retry
- cache some properties that never change
- avoid loader.async_get_integration when we already have it
- avoid multiple integration.domain checks
* tweaks
* Fix _async_component_dependencies
Fix bug with circular dependency detection
Fix bug with circular after_dependency detection
Simplify interface and make the code more readable
* Implement review feedback
* Pass all conflicting deps to Exception
* Change inner docstring
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
We should have been checking for the module in hass.data[DATA_COMPONENTS]
and not hass.config.components as the check was ineffective if there were
no existing integrations instances for the domain which is the case for
discovery or when the integration is ignored
* Refactor zeroconf task handling
- Avoid the need to create tasks for most callbacks
- Fixes the untracked task that could get unexpectedly GCed
* be consistant
* be consistant
* fix zeroconf tests
* runtime
* Revert "runtime"
This reverts commit 19e6b61837.
* precalc
* refactor
* tweak
* update tests
* Add JSON type definitions
* Sample use
* Keep mutable for a follo-up PR (avoid dead code)
* Use list/dict
* Remove JsonObjectType
* Remove reference to Union
* Cleanup
* Improve rest
* Rename json_dict => json_data
* Add docstring
* Add type hint to json_loads
* Add cast
* Move type alias to json helpers
* Cleanup
* Create and use json_loads_object
* Make error more explicit and add tests
* Use JsonObjectType in conversation
* Remove quotes
* Fix bluetooth integration with service_data and service_uuids
We would only dispatch a new flow when the address was seen for
the first time or the manufacturer_data appeared in a followup
advertisement. Its also possible for the service_data and
service_uuids to appear in a followup advertisement so we
need to track these as well
* improve logging to avoid overly large messages
* improve logging to avoid overly large messages
* adjust
* adjsut
* split
* coverage
* coverage
* coverage
* coverage
* fix matcher
* more coverage
* more coverage
* more coverage
* revert switchbot changes and move to seperate PR