J. Nick Koston
13414a0a32
Pass loop to create_eager_task in loops from more coros ( #117390 )
2024-05-14 09:48:25 +09:00
Sid
ac54cdcdb4
Enable Ruff RUF010 ( #115371 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-08 23:54:49 +02:00
Marc Mueller
c50a340cbc
Use HassKey for setup and bootstrap ( #116998 )
2024-05-07 11:18:20 -05:00
Sid
2cc916db6d
Replace pylint broad-except with Ruff BLE001 ( #116250 )
2024-05-07 14:00:27 +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
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
Sid
6587ee20db
Enable Ruff TRY300 ( #114437 )
...
* Enable Ruff TRY300
* Update validation.py
* Address review comments
2024-03-30 10:37:59 +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
Jan Bouwhuis
19fa39d556
Generate ConfigValidationError message from English translations ( #113844 )
...
* Fetch ConfigValidationError message from translation cache
* Sync error logmessages with translation cache
* More sync
* Cleanup
* Remove unrelated change
* Follow up comments
* Rebase and improve contructor
* Improve name
* Rename to MULTIPLE_INTEGRATION_CONFIG_ERRORS
2024-03-25 10:39:30 +01:00
Jan Bouwhuis
a4f52cc622
Use a constant to reference `homeassistant` domain ( #113889 )
...
* Use CONF_CORE to reference `homeassistant` domain
* Just use DOMAIN
* USE DOMAIN for `homeasistant` domain in config_schema.py
* Use DOMAIN_HA as constant for homeassistant domain
* Rename CONF_CORE to DOMAIN_HA
* Rename DOMAIN_HA to HA_DOMAIN
* Use relative import
* Use direct imports
2024-03-23 19:58:39 +01:00
J. Nick Koston
7d58be1a6a
Gather loading platforms in async_process_component_config ( #113573 )
2024-03-16 10:57:10 -10:00
J. Nick Koston
4174d88ad7
Add a guard to handle unhashable platforms in config ( #113607 )
...
Someone might set the platform to [fitbit] instead of fitbit
I have not seen anyone do this, but its good to guard against
it
2024-03-16 16:19:07 -04:00
Sid
6ee273a548
Clean up unneeded ruff noqa directives ( #113616 )
2024-03-16 09:48:37 -10:00
Sid
ccd2e989c3
Enable ruff RUF005 and fix occurrences ( #113589 )
2024-03-16 07:37:20 -10:00
J. Nick Koston
eb90c9a548
Reduce bottlenecks in bootstrap by ordering the setup of integrations ( #113570 )
2024-03-15 22:38:06 -10:00
Marc Mueller
19ab3d6daf
Add empty line after module docstring [helpers + other] ( #112707 )
2024-03-08 10:36:11 -05:00
J. Nick Koston
0f69a0647c
Migrate remaining get_platform in config to async_get_platform ( #112469 )
...
This was the only remaining case where blocking I/O might have happened
in config. It was unlikely though as async_get_component should have
pre-imported the config platform
2024-03-05 23:47:11 -05:00
J. Nick Koston
7cb8a8bbc9
Migrate remaining calls in config modules to async_get_component ( #112293 )
...
* Migrate remaining calls in config modules to async_get_component
There were a few cases that were still using get_component that
could have done blocking I/O in the event loop, although it
was unlikely.
The caching check in async_get_component has been moved
up to avoid creating the future if the module is already in
the cache
* fix one more
2024-03-05 09:59:52 -05:00
J. Nick Koston
1e173e82d0
Add support for preloading platforms in the loader ( #112282 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-04 16:33:12 -10:00
J. Nick Koston
ba9733e90b
Try to preload the config platform when loading a component ( #112104 )
2024-03-03 10:23:08 -10:00
J. Nick Koston
9af12a0639
Avoid calling async_get_component twice for each component being setup ( #112096 )
...
We already have the component so we can pass it to
async_process_component_config to avoid having to
look it up again
2024-03-03 12:48:07 -05:00
J. Nick Koston
6a243d6705
Preload platform integrations to better group executor usage ( #112010 )
2024-03-02 23:03:35 -10:00
J. Nick Koston
c8cb0ff61d
Avoid trying to import platforms that do not exist ( #112028 )
...
* Avoid trying to import platforms that do not exist
* adjust
* fixes
* cleanup
* cleanup
* cleanup
* Apply suggestions from code review
* docs
* fixes
* fixes
* comment
* coverage
* coverage
* coverage
* Switch config to use async_get_component
This was another path where integrations that were marked to load in the executor
would be loaded in the loop
* Switch config to use async_get_component/async_get_platform
This was another path where integrations that were marked to load in the executor
would be loaded in the loop
* merge
* refactor
* refactor
* coverage
* preen
* preen
2024-03-02 22:14:28 -05:00
J. Nick Koston
3808e8b0bc
Switch config to use async_get_component/async_get_platform ( #112071 )
2024-03-02 13:56:25 -10:00
chammp
a5cc0ae890
Improve package schema validation ( #108125 )
...
* Add failing tests for package config validation error wrapping
* Wrap package schema validation errors in HomeAssistantError
* Fix yamllint errors
* Rework package merge validation
Ignore invalid package definitions instead of failing startup.
Output error messages with locations if possible when a package
definition has errors.
* Ruff format
* Fix linter errors
* Move package_definition_schema to module scope
* Move inner function to module level
* Merge exception handlers
Merge exception handlers for config schema validation and package merge
to avoid untested code branches
* Fix long lines and doc strings
* More minor changes to exception handler
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-02-10 20:16:20 +01:00
Erik Montnemery
88dfe8d33b
Remove unused TypeVar from config.py ( #108495 )
2024-01-20 14:39:12 -05:00
Erik Montnemery
5e79cd8715
Remove file/line annotations after config has been validated ( #107139 )
2024-01-14 11:07:39 +01:00
Robert Resch
8b08b5e8d2
Deprecate legacy_templates ( #105556 )
...
* Deprecate legacy_templates
* Improve wording
* Implement suggestion
* simplify
* Add deleting of the repair issues back
* Update homeassistant/components/homeassistant/strings.json
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Test issue removal too
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-12-22 00:42:16 +01:00
Ville Skyttä
24b1e01d71
Update Ruff to 0.1.8, avoid linter/formatter conflicts ( #106080 )
...
* Disable Ruff rules that may conflict with the formatter
* Upgrade Ruff to 0.1.8
- https://github.com/astral-sh/ruff/releases/tag/v0.1.7
- https://github.com/astral-sh/ruff/releases/tag/v0.1.8
* Format with Ruff 0.1.8
2023-12-20 23:55:09 +01:00
Erik Montnemery
5b55c7da5f
Remove logic converting empty or falsy YAML to empty dict ( #103912 )
...
* Correct logic converting empty YAML to empty dict
* Modify according to github comments
* Add load_yaml_dict helper
* Update check_config script
* Update tests
2023-12-05 18:08:11 +01:00
Erik Montnemery
3bcc6194ef
Add domain key config validation ( #104242 )
...
* Drop use of regex in helpers.extract_domain_configs
* Update test
* Revert test update
* Add domain_from_config_key helper
* Add validator
* Address review comment
* Update snapshots
* Inline domain_from_config_key in validator
2023-12-05 15:07:32 +01:00
Erik Montnemery
25bea91683
Use modern platform path when reporting platform config errors ( #104238 )
...
* Use modern platform path when reporting platform config errors
* Update tests
* Address review comment
* Explicitly pass platform domain to log helpers
* Revert overly complicated changes
* Try a simpler solution
2023-12-05 15:06:13 +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
487ff8cd7f
Rename ex to exc as name for exceptions ( #104479 )
2023-11-25 08:30:18 +01:00
Jan Bouwhuis
9962301b42
Do not notify config errors during logging ( #104466 )
2023-11-24 21:34:09 +01:00
Jan Bouwhuis
af71c2bb45
Raise and suppress stack trace when reloading yaml fails ( #102410 )
...
* Allow async_integration_yaml_config to raise
* Docstr - split check
* Implement as wrapper, return dataclass
* Fix setup error handling
* Fix reload test mock
* Move log_messages to error handler
* Remove unreachable code
* Remove config test helper
* Refactor and ensure notifications during setup
* Remove redundat error, adjust tests notifications
* Fix patch
* Apply suggestions from code review
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Follow up comments
* Add call_back decorator
* Split long lines
* Update exception abbreviations
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-11-24 17:34:45 +01:00
Erik Montnemery
80813e992d
Improve formatting of component errors ( #104081 )
...
* Improve formatting of component errors
* Update tests
2023-11-17 23:01:00 +01:00
Erik Montnemery
23ef97f774
Use relative paths in yaml syntax error messages ( #104084 )
2023-11-17 23:00:23 +01:00
Erik Montnemery
a78764f000
Improve formatting of package errors ( #104078 )
2023-11-17 14:57:37 +01:00
Erik Montnemery
b400b33b0d
Refer to domain configuration in custom validator errors ( #104065 )
2023-11-16 15:28:48 +01:00
Erik Montnemery
d8a49b14e5
Use relative paths in configuration validation error messages ( #104064 )
2023-11-16 10:56:47 +01:00
Erik Montnemery
98030a9ce1
Improve formatting of package errors ( #103976 )
2023-11-16 09:08:47 +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
Erik Montnemery
dd7670cacf
Improve errors for component configuration with missing keys ( #103982 )
2023-11-15 10:47:05 +01:00
Erik Montnemery
e87ebbef01
Improve errors for component configuration with multiple errors ( #103969 )
...
* Improve errors for component configuration with multiple errors
* Suffix with link to documentation
2023-11-14 21:50:54 +01:00
Erik Montnemery
2d39eaf0a2
Improve docstring of config.stringify_invalid ( #103965 )
2023-11-14 14:05:46 +01:00
Erik Montnemery
94a2087ba0
Improve formatting of config validation errors ( #103957 )
...
* Improve formatting of config validation errors
* Address review comments
2023-11-14 12:48:45 +01:00
Erik Montnemery
dedd3418a1
Improve print of line numbers when there are configuration errors ( #103216 )
...
* Improve print of line numbers when there are configuration errors
* Update alarm_control_panel test
2023-11-14 08:21:36 +01:00
Erik Montnemery
07af073735
Remove trailing space from configuration error messages ( #103909 )
...
* Remove trailing space from configuration error messages
* Update test
2023-11-13 15:19:37 +01:00
Erik Montnemery
6303366cf4
Tweak config._recursive_merge ( #103850 )
2023-11-12 19:06:12 +01:00