Commit Graph
189 Commits
Author SHA1 Message Date
706add4a57 Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
Erik MontnemeryandGitHub 50e11a7a37 Tweak loader.resolve_dependencies (#103851) 2023-11-12 17:27:32 +01:00
Erik MontnemeryandGitHub 97cc05d0b4 Make it possible to restart core in safe mode (#102606) 2023-10-24 14:47:58 +02:00
Erik MontnemeryandGitHub c481fdb7d0 Rename safe mode to recovery mode (#102580) 2023-10-23 20:33:08 +02:00
Erik MontnemeryandGitHub 17779c5f0c Add loader.async_suggest_report_issue and loader.async_get_issue_tracker (#101336)
* Add loader.async_suggest_report_issue and loader.async_get_issue_tracker

* Update tests

* Add tests

* Address review comments

* Address review comments
2023-10-04 13:40:33 +02:00
e1771ae01e Fix circular dependancy detection (#100458)
* 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>
2023-09-28 08:05:00 +02:00
J. Nick KostonandGitHub e5ebba0753 Fix module check in _async_get_flow_handler (#99509)
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
2023-09-04 14:19:10 -04:00
Erik MontnemeryandGitHub 7643820e59 Add loader.async_get_loaded_integration (#99440)
* Add loader.async_get_loaded_integration

* Decorate async_get_loaded_integration with @callback
2023-09-04 14:12:33 +02:00
Ville SkyttäandGitHub 6399d74c15 Remove unnnecessary pylint configs from core (#98704) 2023-08-22 23:12:12 +02:00
Erik MontnemeryandGitHub 91faa53843 Don't allow hass.config.config_dir to be None (#98442) 2023-08-16 13:00:14 +02:00
Erik MontnemeryandGitHub 3b9d6f2dde Add setup function to the component loader (#98148)
* Add setup function to the component loader

* Update test

* Setup the loader in safe mode and in check_config script
2023-08-15 10:59:42 +02:00
Erik MontnemeryandGitHub f809ce9033 Update bind_hass docstring to discourage its use (#96933) 2023-07-20 13:34:24 +02:00
J. Nick KostonandGitHub 53fe74e055 Reduce overhead to fetch integrations (#93767)
We call this path over and over during startup and most
of the time the integration is already loaded. We want
that case to be the short path
2023-05-29 20:58:51 -04:00
d5a0824924 Use futures instead of asyncio.Event for async_get_integrations (#93060)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-05-14 14:42:04 -05:00
rlippmannandGitHub 3a72054f93 Make dataclasses in HA core slotted (#91208) 2023-04-11 07:58:28 -10:00
epenetandGitHub 611d4135fd Add ComponentProtocol to improve type checking (#90586) 2023-03-31 14:19:58 -04:00
epenetandGitHub ba23816a0c Inverse json import logic (#88099)
* Fix helpers and util

* Adjust components

* Move back errors

* Add report

* mypy

* mypy

* Assert deprecation messages

* Move test_json_loads_object

* Adjust tests

* Fix rebase

* Adjust pylint plugin

* Fix plugin

* Adjust references

* Adjust backup tests
2023-02-16 11:37:57 +01:00
J. Nick KostonandGitHub c83ea297b5 Refactor zeroconf task handling (#88204)
* 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
2023-02-15 21:44:11 -05:00
epenetandGitHub a202588fd2 Add return type to json_loads (#85672)
* 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
2023-02-07 17:21:55 +01:00
Franck NijhofandGitHub ca1a12898c Enable Ruff D212 (#87347) 2023-02-03 23:08:48 +01:00
Franck NijhofandGitHub 79b52a2b41 Stricter pylint message control (#86154) 2023-01-20 13:47:55 +01:00
Franck NijhofandGitHub 64c2340fab Core code styling improvements (#85963) 2023-01-15 23:00:51 +01:00
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
Bram KragtenandGitHub 9ed31bb8df fix integration descriptions (#81008) 2022-10-26 12:39:23 +02:00
Franck NijhofandGitHub bb287dd0ed Integrations v2.1: Virtual integrations (#80613) 2022-10-20 23:09:06 -04:00
Paulus SchoutsenandGitHub 5cb8749ae3 Fix custom components not working with integration descriptions (#80686) 2022-10-20 13:25:24 -04:00
c4bbc439a5 Integrations v2.1: Differentiating hubs, devices and services (#80524)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-10-19 12:41:43 +02:00
b173ae7f44 Add support for integrations v2 (#78801)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-28 11:31:48 -04:00
Erik MontnemeryandGitHub cce23683f1 Add additional integration_type options for integration manifests (#79193)
* Add additional integration_type options for integration manifests

* Rename integration_type internal to system
2022-09-28 14:17:39 +02:00
Erik MontnemeryandGitHub 27599ea0ee Minor tweaks of hassfest and loader.py (#78929) 2022-09-22 21:54:22 -04:00
Joakim SørensenandGitHub 0caf998547 Bump awesomeversion from 22.6.0 to 22.8.0 (#77436) 2022-08-28 14:52:23 -04:00
J. Nick KostonandGitHub c76dec138a Discover new bluetooth adapters when they are plugged in (#77006) 2022-08-22 15:45:08 -10:00
J. Nick KostonandGitHub 3938015c93 Add support for scanners that do not provide connectable devices (#77132) 2022-08-22 14:02:26 -04:00
J. Nick KostonandGitHub bbb9443b00 Fix bluetooth integration matching with service_data_uuids and service_uuids (#75687)
* 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
2022-07-24 16:39:53 -05:00
J. Nick KostonandGitHub 91f2550bc3 Change manufacturer_data_first_byte to manufacturer_data_start (#75379) 2022-07-17 17:25:45 -05:00
J. Nick KostonandGitHub 61cc9f5288 Consolidate executor jobs when loading integration manifests (#75176) 2022-07-14 13:06:08 -07:00
a697672944 Add bluetooth integration (#74653)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-07-08 18:55:31 -05:00
J. Nick KostonandGitHub cb46bb5bfa Revert "Partially revert "Switch loader to use json helper (#73872)" (#74077)" (#74087) 2022-06-28 09:34:56 +02:00
Franck NijhofandGitHub 21b842cf9c Partially revert "Switch loader to use json helper (#73872)" (#74077) 2022-06-28 00:48:18 +02:00
J. Nick KostonandGitHub 164eba7e5d Switch loader to use json helper (#73872) 2022-06-22 21:57:38 -05:00
Raman GuptaandGitHub ae01ec02e2 Allow custom integrations to support application_credentials platform (#71129) 2022-05-01 16:26:22 -07:00
Paulus SchoutsenandGitHub 3213091b8d Add integration type (#68349) 2022-03-20 20:38:13 -07:00
Marc MuellerandGitHub be7ef6115c Make TypeVars private (1) (#68205) 2022-03-17 18:52:38 +01:00
J. Nick KostonandGitHub 076fe97110 Strict typing for dhcp (#67361) 2022-02-28 18:49:44 -10:00
Marc MuellerandGitHub 8d2fb72cc3 Add type ignore error codes [core] (#66773) 2022-02-17 23:09:22 -08:00
J. Nick KostonandGitHub f069a37f7d Allow integrations to request dhcp discovery flows for registered devices (#66528) 2022-02-15 11:02:52 -06:00
J. Nick KostonandGitHub 5b755b74fb Add loggers to integration manifest.json (#65083) 2022-01-28 13:37:53 -08:00
Paulus SchoutsenandGitHub 24546dfdf9 Catch all exceptions on import component/platform (#64930) 2022-01-25 20:39:32 -08:00
Marc MuellerandGitHub 12757a8cd2 Update typing - collections.abc (1) (#63933)
* Update typing - collections.abc (1)

* Additional typing updates
2022-01-12 07:56:35 +01:00
Marc MuellerandGitHub 240c9979c7 Move disallow-any-generics to mypy.ini (#63917) 2022-01-11 13:33:25 -08:00