Commit Graph

850 Commits (9d241a77b78e8f49f84aa8ecc819806c15ad3027)

Author SHA1 Message Date
Sid f80cc1a247
Bump ruff to 0.6.5 (#125923) 2024-09-15 12:54:23 +02:00
Robert Resch acc046def6
Bump uv to 0.4.9 (#125726) 2024-09-11 10:41:36 +02:00
Robert Resch 7555f209b6
Use uv at runtime too (#125110) 2024-09-11 09:43:26 +02:00
Robert Resch 67dc870e52
Bump uv to 0.4.8 (#124867) 2024-09-10 15:28:17 +02:00
Sid 1db68327f9
Enable Ruff PTH for the script directory (#124441)
* Enable Ruff PTH for the script directory

* Address review comments

* Fix translations script

* Update script/hassfest/config_flow.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-06 11:33:01 +02:00
Sid f80acdada0
Bump ruff to 0.6.4 (#125385)
* Bump ruff to 0.6.4

* fix Dockerfile
2024-09-06 08:08:40 +02:00
Michael Hansen 60b0f0dc53
Add assist satellite entity component (#125351)
* Add assist_satellite

* Update homeassistant/components/assist_satellite/manifest.json

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Update homeassistant/components/assist_satellite/manifest.json

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Add platform constant

* Update Dockerfile

* Apply suggestions from code review

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

* Address comments

* Update docstring async_internal_announce

* Update CODEOWNERS

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-05 21:16:30 -04:00
Malte Franken ba7f36328d
Add diagnostics to GeoNet NZ Quakes integration (#125320)
* add diagnostics platform

* add tests

* add snapshot data

* remove from no diagnostics list
2024-09-05 11:35:36 +02:00
Malte Franken b5831344a0
Add diagnostics to GDACS integration (#125296)
* simple diagnostics

* add service status information

* remove from no diagnostics list

* wip

* cater for the case where status info is undefined

* make test work

* code reformatted

* add snapshot data

* simplify code
2024-09-05 10:53:12 +02:00
Michael Hansen 638434c103
Bump intents to 2024.9.4 (#125232) 2024-09-04 17:36:25 +03:00
Robert Resch 6cea6be4a7
Improve hassfest docker image (#125133)
* Improve hassfest docker image

* Use fixed uv version

* Use cli params instead env

* run hassfest

* Exclude pycache
2024-09-03 14:59:01 +02:00
Robert Resch 397198c6d0
Optimize hassfest image (#124855)
* Optimize hassfest docker image

* Adjust CI

* Use dynamic uv version

* Remove workaround
2024-08-30 13:09:10 +02:00
Robert Resch 45bb2cdd82
Build hassfest docker image and pushlish it on beta/stable releases (#124706) 2024-08-28 16:38:12 +02:00
Erik Montnemery c4e5d67551
Enforce new service icon schema for core integrations (#124772)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-08-28 14:14:45 +02:00
Erik Montnemery c772c4a2d5
Allow specifying icons for service sections (#124656)
* Allow specifying icons for service sections

* Improve kitchen_sink example
2024-08-28 11:15:26 +02:00
Erik Montnemery a68cd712c6
Move data entry section translations (#124648) 2024-08-26 18:45:28 +02:00
Joost Lekkerkerker 281a9f042b
Check minimum amount of integrations for a brand (#124310) 2024-08-22 21:01:48 +02:00
Cyrill Raccaud 0803ac9b0b
Add Swiss public transport fetch connections service (#114671)
* add service to fetch more connections

* improve error messages

* better errors

* wip

* fix service register

* add working tests

* improve tests

* temp availability

* test availability

* remove availability test

* change error type for coordinator update

* fix missed coverage

* convert from entity service to integration service

* cleanup changes

* add more tests for the service
2024-08-12 11:26:42 +02:00
epenet 07c7bb8b2a
Use HOMEASSISTANT_DOMAIN alias for core DOMAIN (#122760) 2024-07-29 13:35:36 +02:00
jan iversen bc7d2d2195
Remove modbus codeowner, and downgrade to quality "No score" (#122010)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-16 11:26:44 +02:00
Sid 3b95e88ff7
Bump ruff to 0.5.2 (#121946) 2024-07-15 09:00:48 +02:00
Marc Mueller 37ffe09add
Update mypy-dev to 1.12.0a1 (#121428) 2024-07-07 16:10:17 +02:00
Franck Nijhof afb184db73
Remove coveragerc (#121286) 2024-07-05 11:03:31 +02:00
Erik Montnemery 75c7ae7c69
Support in service descriptions for input sections (#116100) 2024-06-25 20:00:48 +02:00
Erik Montnemery 0545ed8082
Section support for data entry flows (#118369)
* Add expandable support for data entry form flows

* Update config_validation.py

* optional options

* Adjust

* Correct translations of data within sections

* Update homeassistant/components/kitchen_sink/config_flow.py

Co-authored-by: Robert Resch <robert@resch.dev>

* Add missing import

* Update tests/components/kitchen_sink/test_config_flow.py

Co-authored-by: Robert Resch <robert@resch.dev>

* Format code

* Match frontend when serializing

* Move section class to data_entry_flow

* Correct serializing

* Fix import in kitchen_sink

* Move and update test

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-25 11:02:00 +02:00
Robert Resch 641507a45a
Add change username endpoint (#109057) 2024-06-24 18:51:19 +02:00
Matthias Alphart 171707e8b7
Translation support for device automation extra fields (#115892)
* Translation support for device trigger extra fields

* Move extra_fields translations to backend
2024-06-12 14:10:02 +02:00
Erik Montnemery 8620bef5b0
Support shared keys starting with period in services.yaml (#118789) 2024-06-11 16:31:19 +02:00
Ruben Bokobza 35347929ca
Bump pyElectra to 1.2.1 (#118958) 2024-06-11 07:04:25 +02:00
Erik Montnemery 6c15351c18
Add support for common references in strings.json (#118783)
* Add support for common references in strings.json

* Update tests
2024-06-07 20:59:26 +02:00
tronikos 2b7685b71d
Add Google Assistant SDK diagnostics (#118513) 2024-05-30 22:13:54 -04:00
Erik Montnemery 4b95ea864f
Fix a typo in hassfest (#118482) 2024-05-30 15:46:08 +02:00
tronikos 63227f14ed
Add diagnostics to Google Generative AI (#118262)
* Add diagnostics for Google Generative AI

* Remove quality scale from manifest

* include options in diagnostics
2024-05-28 00:02:32 -04:00
tronikos 0588806922
Promote Google Generative AI to platinum quality (#118158)
* Promote Google Generative AI to platinum quality

* make exception for diagnostics
2024-05-26 17:07:31 -04:00
Matthias Alphart 344bb568f4
Add diagnostics support for Fronius (#117845)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-25 14:01:24 +02:00
epenet 6a10e89f6d
Exclude gold and platinum integrations from .coveragerc (#117563) 2024-05-24 16:10:22 +02:00
Joost Lekkerkerker 5229f0d0ef
Exclude modbus from diagnostics hassfest check (#117855) 2024-05-22 13:09:20 +02:00
Jakob Schlyter 2e68363755
Improve typing via hassfest serializer (#117382) 2024-05-22 08:22:18 +02:00
epenet 54d048fb11
Remove silver integrations from NO_DIAGNOSTICS (#117840) 2024-05-21 10:01:13 +02:00
Robert Resch 5e3483ac3c
Use uv instead of pip in development env (#113517) 2024-05-21 09:56:31 +02:00
Marc Mueller 4edee94a81
Update mypy-dev to 1.11.0a2 (#117630) 2024-05-17 13:32:20 +02:00
epenet eacbebce22
Prevent `const.py` in coverage ignore list (#117625) 2024-05-17 12:53:58 +02:00
MatthewFlamm 9aa7d3057b
Add diagnostics for nws (#117587)
* add diagnostics

* remove hassfezt exception
2024-05-16 21:26:22 +02:00
epenet 996132f3f8
Ensure gold and platinum integrations implement diagnostic (#117565) 2024-05-16 11:33:23 -04:00
puddly 380f192c93
Expose the SkyConnect integration with a firmware config/options flow (#115363)
Co-authored-by: Stefan Agner <stefan@agner.ch>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik <erik@montnemery.com>
2024-04-24 17:06:24 +02:00
Robert Resch a4829330f6
Add strict connection for cloud (#115814)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-24 09:57:38 +02:00
Volker Stolz 5e250d8a76
Augment SyntaxError raised during dependency collection with offending filename (#109204)
* Capture parsing exception when collecting dependencies and augment with offending filename.

Whereas before any syntax error in some component-file would result in an opaque SyntaxError without pointing out the file, now the result will show as:

```
  File "/usr/local/Cellar/python@3.11/3.11.7_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/pool.py", line 873, in next
    raise value
SyntaxError: Can't parse file homeassistant/components/your/file.py
```

* tweak

* D'oh, had pre-commit hook still off.

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-23 17:13:25 +02:00
Erik Montnemery 2caca7fbe3
Generate requirements per supported architecture (#115708)
* Generate requirements per supported architecture

* Don't store wheels requirements in the repo

* Dry run

* Set Python version

* Install base packages

* Fix

* Fix

* Fix

* Fix typo

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

* Genarate requirements_all_pytest.txt

* Fix hassfest

* Reenable building wheels

* Remove unneeded code

* Address review comment

* Fix lying comment

* Add tests, address review comments

* Deduplicate

* Fix file name

* Add comment

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-22 19:23:08 +02:00
Erik Montnemery 5c018f6ffc
Improve standard library violation check in hassfest (#115752)
* Improve standard library violation check in hassfest

* Improve prints

* Improve error message
2024-04-17 14:10:26 +02:00
Erik Montnemery fee1f2833d
Fix hassfest requirements check (#115744)
* Fix hassfest requirements check

* Add electrasmart to ignore list
2024-04-17 12:27:48 +02:00
Marc Mueller 881e201a15
Set platform for mypy (#115638) 2024-04-15 14:12:26 +02:00
Marc Mueller 6422bc4c19
Set follow_imports to normal [mypy] (#115521) 2024-04-15 00:26:06 +02:00
J. Nick Koston 33412dd9f6
Remove unused legacy state translations (#112023)
* Remove unused state translations

There have been replaced with entity translations
https://github.com/home-assistant/developers.home-assistant/pull/1557
https://github.com/home-assistant/core/pull/82701

* nothing does merging anymore

* useless dispatch

* remove

* remove platform code from hassfest

* preen

* Update homeassistant/helpers/translation.py

* ruff

* fix merge

* check is impossible now since we already know if translations exist or not

* keep the function for now

* remove unreachable code since we filter out `.` before now

* reduce

* reduce

* fix merge conflict (again)
2024-04-14 07:13:17 -04:00
Marc Mueller 27f6a7de43
Revert mypy_config formatting (#115518) 2024-04-13 10:48:34 +02:00
epenet bea4c52d10
Ignore coverage for aiohttp_resolver backport helper (#115177)
* Ignore coverage for aiohttp_resolver backport helper

* Adjust generate to sort core items

* Adjust validate to sort core items

* Split line

* Apply suggestion

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>

* Fix suggestion

---------

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2024-04-12 16:33:05 +02:00
Sid 9bf87329da
Enable Ruff FLY002 rule (#115112)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-12 09:04:16 +02:00
konsti cad4c3c0c2
Remove pip jemalloc config from dockerfile (#115206) 2024-04-09 15:08:55 +02:00
Paulus Schoutsen f9a7e6bb9f
Add migration logic to assist_pipeline (#115172) 2024-04-08 11:29:55 -04:00
Jan Bouwhuis 2e3cb1a767
Correct changes hassfest coverage backports (#115044) 2024-04-06 21:17:44 +02:00
Joost Lekkerkerker 57cc3495c2
Sort coveragerc again (#115017)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-06 15:51:56 +02:00
Øyvind Matheson Wergeland fdef3ece13
Fix placeholder quotes (#114974)
* When quoting placeholders, always use double quotes so Lokalise recognizes the placeholder.

* Ensure that strings does not contain placeholders in single quotes.

* Avoid redefining value

* Moved string_with_no_placeholders_in_single_quotes

* Define regex once

* Fix tests
2024-04-06 13:01:56 +02:00
Michael Hansen 1c2499b03a
Add "conversation" key to translations (#114887)
* Use translated trigger response

* Use conversation key instead
2024-04-04 14:45:27 -05:00
epenet ad3577804b
Ensure coverage entries are sorted (#114424)
* Ensure coverage entries are sorted

* Use autofix

* Adjust

* Add comment to coverage file

* test CI

* revert CI test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-01 14:12:24 +02:00
Franck Nijhof 192fad040a
Fix hassfest service icons check for custom integrations (#114389) 2024-03-28 16:20:20 +01:00
Robert Resch 4a9c592f3c
Mark core as codeowner for some folders (#114357) 2024-03-28 10:54:10 +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
Robert Resch ce48e6e574
Fix building images for nightlies (#114054) 2024-03-23 11:22:38 +01:00
Robert Resch c282172252
Use uv instead of pip on production images (#112496) 2024-03-22 16:50:07 +01:00
Joost Lekkerkerker 85e13bdb87
Require an icon for a service (#112373) 2024-03-19 08:29:29 +01: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
Jan Bouwhuis b1c636c886
Fix hassfest icons check for notify and image_processing (#113446) 2024-03-14 22:51:18 +01:00
Joost Lekkerkerker 36123717be
Allow entity platforms without entity_component in icon validation (#113422)
* Allow entity platforms without entity_component

* Rename variable

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-03-14 19:10:52 +01:00
Erik Montnemery a16ea3d7bd
Deprecate the map integration (#113215)
* Deprecate the map integration

* Revert changes in DashboardsCollection._async_load_data

* Add option to allow single word in dashboard URL

* Update tests

* Translate title

* Add icon

* Improve test coverage
2024-03-14 14:04:41 +01: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
Joost Lekkerkerker cddce0ce0d
Enable more SIM ruff rules (#113015)
* SIM101 SIM103

* SIM107 SIM109

* SIM110

* SIM112 SIM113

* SIM115

* SIM116

* Fix

* Fix

* Fix
2024-03-10 23:20:37 -04:00
Marc Mueller a6b842f818
Add empty line after module docstring (2) [other] (#112738) 2024-03-08 19:16:38 +01:00
Paulus Schoutsen f416d67d21
Remove built-in support for import_executor in manifest (#112725) 2024-03-08 12:02:32 -05:00
Marc Mueller 19ab3d6daf
Add empty line after module docstring [helpers + other] (#112707) 2024-03-08 10:36:11 -05:00
Erik Montnemery fa4c0d78e9
Restore the juicenet integration (#112578) 2024-03-07 16:41:54 +01:00
Paulus Schoutsen 4eb0f86a65
Remove 'values' from services validation (#111440)
* Remove 'values' from services validation

* Remove extra blank line
2024-02-29 02:53:03 +01:00
Erik Montnemery b336095239
Allow translating device names (#110711)
* Allow translating device names

* Don't keep a reference to translations in config entry

* Update kitchen_sink tests

* Add tests
2024-02-28 15:59:59 +01:00
J. Nick Koston 4ea1c5cc3c
Add support for importing integrations in the executor (#111336)
* Add support for pre-imports at setup time

alternative solution to #111331

* refactor

* refactor

* refactor

* mark >1.0s integrations

* no point in executor if already loaded

* no point in executor if already loaded

* cleanup

* cleanup

* two more

* one more

* analytics loads a lot more integrations

* cloud

* debug

* psutil, hardwre

* try zha

* Update homeassistant/setup.py

* await

* comments

* coverage

* coverage

* coverage

* move logic to loader

* move logic to loader

* preserve comments
2024-02-26 14:49:43 -05:00
Erik Montnemery 730fe760cf
Remove JuiceNet integration (#111477)
* Remove JuiceNet integration

* Adjust issue

* Add test

* Fix stale DOMAIN constant
2024-02-26 21:08:36 +02:00
Jan-Philipp Benecke baf84b6fba
Add `single_config_entry` manifest option (#109505)
* Allow setting if we support multiple config entries in config flow

* Move property to config flow instead of flow handler

* Move marking an integration as single instance only to manifest

* Revert line remove

* Avoid init a config flow or adding a new entry on a single instance with an entry

* Revert changes in test

* Process code review comments

* Apply code review suggestion
2024-02-26 19:00:33 +01:00
Joost Lekkerkerker 2c0b897658
Allow the helper integrations to omit icon translation field (#109648) 2024-02-04 22:57:11 +01:00
Paul Bottein 4170a447fc
Allow system and helper integrations to provide entity_component icons (#109045) 2024-01-29 19:26:55 +01:00
Franck Nijhof fa485513d5
Ensure icon translations aren't the same as the default (#108568) 2024-01-21 12:02:15 +01:00
Franck Nijhof 2b90d968b4
Fix hassfest icon schema for service only (#108494) 2024-01-20 14:39:05 -05:00
Franck Nijhof 01372024f5
Add icon translations support (#103294)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2024-01-19 16:56:56 +01:00
J. Nick Koston 298e2e2b99
Attempt to fix 32bit docker builds (#107210) 2024-01-05 08:23:04 +01:00
steffenrapp 608d52f167
Add translatable title to holiday (#106825) 2024-01-02 23:40:38 +01:00
Tudor Sandu 636e38f4b3
Trigger Home Assistant shutdown automations right before the stop event instead of during it (#91165)
Co-authored-by: Erik <erik@montnemery.com>
2023-12-05 11:24:41 -10: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 61d82ae9ab
Tweak dockerfile generation (#104717) 2023-11-29 15:20:21 +01:00
Erik Montnemery 999875d0e4
Autogenerate Dockerfile (#104669) 2023-11-29 11:26:50 +01:00
Aarni Koskela 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
Robert Resch cf9b0e804f
Deprecate legacy api auth provider (#104409)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:16:18 +01:00
Jan Bouwhuis 54cf7010cd
Add ServiceValidationError and translation support (#102592)
* Add ServiceValidationError

* Add translation support

* Extend translation support to HomeAssistantError

* Add translation support for ServiceNotFound exc

* Frontend translation & translation_key from caller

* Improve fallback message

* Set websocket_api as default translation_domain

* Add MQTT ServiceValidationError exception

* Follow up comments

* Revert removing gueard on translation_key

* Revert test changes to fix CI test

* Follow up comments

* Fix CI test

* Follow up

* Improve language

* Follow up comment
2023-11-06 15:45:04 +01:00
Allen Porter 476e867fe8
Add a Local To-do component (#102627)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-25 13:21:10 +02:00
Erik Montnemery b953f2998c
Rename the safe_mode integration to recovery_mode (#102581)
* Rename safe mode integration to recovery mode

* Update code
2023-10-24 09:11:14 +02:00
Robert Resch 0c5b963847
Add lokalise multi reference check to hassfest (#101876) 2023-10-23 10:57:19 +02:00
Marc Mueller 0b2b486754
Update mypy to 1.6.0 (#101780) 2023-10-11 13:25:11 +02:00
Raman Gupta 2ad0fd1ce1
Adjust hassfest.manifest based on config.action (#100577) 2023-09-19 17:30:38 +02:00
J. Nick Koston 035fea3ee0
Replace lambda with attrgetter in hassfest (#99662) 2023-09-05 16:40:25 +02:00
puddly 38270ee823
Create a ZHA repair when directly accessing a radio with multi-PAN firmware (#98275)
* Add the SiLabs flasher as a dependency

* Create a repair if the wrong firmware is detected on an EZSP device

* Update homeassistant/components/zha/strings.json

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Provide the ZHA config entry as a reusable fixture

* Create a separate repair when using non-Nabu Casa hardware

* Add unit tests

* Drop extraneous `config_entry.add_to_hass` added in 021def44

* Fully unit test all edge cases

* Move `socket://`-ignoring logic into repair function

* Open a repair from ZHA flows when the wrong firmware is running

* Fix existing unit tests

* Link to the flashing section in the documentation

* Reduce repair severity to `ERROR`

* Make issue persistent

* Add unit tests for new radio probing states

* Add unit tests for new config flow steps

* Handle probing failure raising an exception

* Implement review suggestions

* Address review comments

---------

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-09-01 09:05:45 -04:00
Erik Montnemery f9b2e10f72
Add new board type (#99334) 2023-08-30 16:37:13 +02:00
Erik Montnemery 7e7cb15d5b
Revert "Allows defining list of attributes excluded from history in manifest.json" (#99300)
Revert "Allows defining list of attributes excluded from history in manifest.json (#99283)"

This reverts commit 0366e14630.
2023-08-30 08:26:26 +02:00
Erik Montnemery 0366e14630
Allows defining list of attributes excluded from history in manifest.json (#99283)
* Move list of attributes excluded from history to manifest.json

* Address comments
2023-08-29 20:14:33 +02:00
Ville Skyttä 6399d74c15
Remove unnnecessary pylint configs from core (#98704) 2023-08-22 23:12:12 +02:00
Robert Resch 426fd62ee3
Adjust hassfest to require translations for core services (#98814)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-22 17:05:53 +02:00
Ville Skyttä 3094991236
Upgrade ruff to 0.0.285 (#98647) 2023-08-19 08:17:17 -04:00
Marc Mueller fb66ceb302
Update mypy to 1.5.0 (#98179) 2023-08-11 13:13:04 +02:00
amitfin d78e39d568
Fix allow_name_translation logic (#97701) 2023-08-04 12:51:04 +02:00
J. Nick Koston 282ae80cc2
Fix hassfest check for schema (#97713)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-08-03 12:55:33 -10:00
epenet 9df1805b3b
Remove myself from const and util codeowners (#97527) 2023-07-31 07:06:06 -07:00
Franck Nijhof b655b9d530
Allow for translating service examples (#97141) 2023-07-24 15:57:02 +02:00
Marc Mueller da6802b009
Drop tomli (#97064) 2023-07-22 17:04:45 -05:00
Franck Nijhof 22d0f4ff0a
Remove legacy discovery integration (#96856) 2023-07-19 07:10:07 +02:00
Franck Nijhof f25d5a157a
Fix service schema to allow for services without any fields/properties (#96346) 2023-07-11 19:33:07 +02:00
Franck Nijhof f2f9b20880
Fix hassfest services check (#96337) 2023-07-11 16:48:07 +02:00
Franck Nijhof f054de0ad5
Add support for service translations (#95984) 2023-07-11 15:52:12 +02:00
Joost Lekkerkerker af22a90b3a
Make Zodiac integration title translatable (#95816) 2023-07-10 15:49:25 +02:00
Franck Nijhof e7b00da662
Clean up unused device class translations from binary sensor (#96241) 2023-07-10 12:23:42 +02:00
Jan-Philipp Benecke 207721b421
Make generic camera integration title translatable (#95806) 2023-07-08 11:43:14 +02:00
Jan-Philipp Benecke 436cda1489
Make local calendar integration title translatable (#95805) 2023-07-04 23:35:32 -07:00
Franck Nijhof 3e85a29b86
Move overlapping pylint rules to ruff, disable mypy overlap (#94359) 2023-06-27 17:42:46 +02:00
Erik Montnemery f17773233b
Add check for integration config schema to hassfest (#93587)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-06-12 10:26:02 +02:00
epenet d26160a509
Prevent combined translations in strings.json (#91334) 2023-04-17 09:36:25 +02:00
Erik Montnemery 59511cc3f7
Make service field filter parameters exclusive (#90728) 2023-04-03 21:46:23 +02:00
Erik Montnemery b316ffff9b
Rename hassfest _validate_dependencies_exist (#90503) 2023-03-30 12:05:11 +02:00
Aarni Koskela 196f5702b8
Make hassfest.dependencies faster with multiprocessing (#81486)
* hassfest.dependencies: split to two loops

* hassfest.dependencies: use multiprocessing for import scan
2023-03-30 11:25:14 +02:00
Franck Nijhof f9919bb7cf
Add pre-defined entity name translations (#89792) 2023-03-16 21:10:20 +01:00
Erik Montnemery 9384ec18f8
Add filters to climate and light service descriptions (#86162)
* Add filters to climate and light service descriptions

* Allow specifying enums directly

* Update service descriptions

* Adjust test

* Cache entity features

* Lint

* Improve error handling, add list of known base components

* Don't allow specifying an entity feature as int
2023-03-16 15:59:51 +01:00
Franck Nijhof f32b7859b8
Restructure translations for entity components (#89702) 2023-03-16 12:16:08 +01:00
Erik Montnemery cf7e500a8e
Support translating entity names (#88242) 2023-03-12 15:55:04 +01:00
epenet 699cc6c092
Adjust docstring on hassfest generated files (#89080) 2023-03-03 11:34:20 +01:00
Paulus Schoutsen 9be3f86a4c
Check circular dependencies (#88778) 2023-02-26 20:25:29 -05:00
Joakim Sørensen 0f204d6502
Remove homeassistant_hardware after dependency from zha (#88751) 2023-02-25 12:01:01 +01:00
Bram Kragten bee79e351e
Allow translation for data entry submit button (#88499) 2023-02-20 19:52:39 +01:00
Ruslan Sayfutdinov 0d832c0a5a
Cleanup mypy ignore list feature (#88451) 2023-02-19 19:29:06 +01:00
J. Nick Koston 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
J. Nick Koston 61539686a4
Disable profiler.memory service with python 3.11 (#88136) 2023-02-15 16:20:47 +01:00
Dustin Rodrigues c7e9afcef8
Fix typo in requires-python hassfest error message (#87896) 2023-02-12 09:11:56 -06:00
Marc Mueller 67499e0204
Enable pydantic mypy plugin (#87415) 2023-02-09 13:33:10 +01:00
Erik Montnemery 0cfb937d07
Enforce sorting of manifests (#87020) 2023-02-08 21:48:58 +01:00
Marc Mueller fb4c0b4b7a
Enable error-code `redundant-self` [mypy 1.0] (#87602) 2023-02-07 14:02:38 +01:00
Marc Mueller 42008c50f3
Enable error-code `truthy-iterable` [mypy 1.0] (#87596) 2023-02-07 11:16:22 +01:00
Marc Mueller af59623601
Enable `local_partial_types` for strict typing [mypy] (#86409) 2023-02-06 20:41:39 -06:00
Paulus Schoutsen ff6e597a63
Add Matter to supported standards for brands (#87564)
* Add Matter standard to TP-Link

* --amend
2023-02-06 20:09:01 -05:00
Franck Nijhof ca1a12898c
Enable Ruff D212 (#87347) 2023-02-03 23:08:48 +01:00
Franck Nijhof 021ac84405
Add recorder platform to required test category (#86704) 2023-01-26 11:03:56 +01:00
epenet b2004e62b1
Remove ability to ignore coverage violations (#86597)
* Remove ability to ignore coverage violations

* Adjust codecov for required platforms

* Update codecov.yml
2023-01-25 14:27:16 +01:00
epenet 15ab04f97d
Prevent wilcard coverage ignore if tests exist (#86455) 2023-01-23 16:33:57 +01:00
epenet 74a76c6fe7
Don't ignore diagnostics coverage (#86440) 2023-01-23 14:55:02 +01:00
epenet ea43effcc9
Fix hassfest coverage check (#86443)
* Fix hassfest coverage check

* A-Z
2023-01-23 12:23:38 +01:00
Franck Nijhof 5102d1a5f3
Drop Python 3.9 support (#85456) 2023-01-22 20:40:33 +01:00
Jan Bouwhuis 25392655e7
Allow translating select selector options (#85531)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-01-17 16:22:19 +01:00
J. Nick Koston 65ca62c991
Ensure remote bluetooth adapters are loaded before integrations that need them (#85723) 2023-01-15 13:17:17 -10:00
Franck Nijhof 3cb56211f8
Make translations keys check hassfest more strict (#85221) 2023-01-15 17:43:34 +01:00
epenet 8fbcb93ab4
Use IntEnum for hassfest quality scale (#85817) 2023-01-14 10:19:18 +01:00
epenet e75c85f679
Downgrade integrations without code owner (#85752) 2023-01-13 10:08:15 +01:00
Franck Nijhof 139dd22ce6
Replace attrs with dataclasses in hassfest (#84475) 2022-12-23 15:46:00 +01:00
Erik Montnemery 255f35b979
Add support for translating custom attribute state (#83386)
* Add support for translating custom attribute state

* Address review comment

* Rename attribute to state_attributes, allow naming attributes
2022-12-21 10:43:49 +01:00
Franck Nijhof 80b3572627
Rename image integration to image_upload (#84063)
* Rename image integration to image_upload

* fix test
2022-12-16 08:16:38 -05:00
Erik Montnemery 8f761f44bd
Add support for translating state attributes (#77028)
* Allow defining state attributes in strings.json

* Add all climate attributes

* Remove support for custom device classes

* Address review comments
2022-12-09 08:22:29 +01:00
Joakim Sørensen 1d1b59b800
Fix hassfest serializer injecting commas in empty lists (#83052)
* No trailing comma for empty lists

* Update script/hassfest/serializer.py

Co-authored-by: Aarni Koskela <akx@iki.fi>

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Aarni Koskela <akx@iki.fi>
2022-12-01 20:26:30 +02:00
Erik Montnemery 8e617bbc1d
Add `translation_key` property to entites (#82701)
* Add translation_key attribute to entity state

* Update accuweather test

* Index entity translation keys by platform

* Store translation key in entity registry
2022-12-01 09:34:09 +01:00
Erik Montnemery b7652c78ee
Add options flow to enable multiprotocol support on sky connect (#82525) 2022-11-29 16:34:55 -05:00
Aarni Koskela 16fc2972d3
Remove more useless manifest truthiness checks in hassfest (#82914) 2022-11-29 21:57:58 +01:00
Marc Mueller 63d519c1a8
Spelling updates (#82867) 2022-11-28 16:51:43 +01:00
Aarni Koskela 69d519418e
Remove unnecessary truthiness checks for integration.manifest (#82319) 2022-11-28 15:33:14 +01:00
Aarni Koskela 97b40b5f49
Make hassfest strictly typed (#82091) 2022-11-23 19:05:31 +01:00
epenet 89c7568515
Remove duplicate code in hassfest model (#82203) 2022-11-17 09:10:37 +01:00
Erik Montnemery aaec464627
Add support for managing the silabs multiprotocol add-on (#82170)
* Add support for managing the silabs multiprotocol add-on

* Fix passing context when starting option flow

* Allow unloading a ha yellow config entry

* Fix tests

* Log data passed to ZHA option flow

* Improve ZHA migration logic

* Move tests

* Improve test coverage

* Remove dead code

* Drop automatic ZHA migration
2022-11-16 17:38:07 +01:00
Franck Nijhof 6a1bb8c421
Deprecate Python 3.9 (#82193) 2022-11-16 15:38:10 +01:00
Aarni Koskela 322cb352ac
Use functools.cache instead of global in hassfest requirements (#82124) 2022-11-16 13:13:45 +01:00
Aarni Koskela 35c1604ea7
Remove unused hassfest helper (#82123) 2022-11-15 21:26:34 +01:00
J. Nick Koston f035223599
Make sure the config_flow key is set for brands (#82038)
Fixes https://github.com/home-assistant/frontend/issues/14376
2022-11-15 18:27:59 +01:00
epenet 7d5794cfb1
Remove unused function from hassfest model (#82073)
* Remove unused function from hassfest model

* Update model.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-14 16:18:11 +01:00
epenet 55444b15a9
Add type hints to hassfest models (#82074)
* Add type hints to hassfest models

* Implement review
2022-11-14 12:41:49 +01:00
Aarni Koskela 727dcd6df6
Keep mypy.ini and strict-typing files sorted with hassfest (#81331)
hassfest: keep mypy.ini and .strict-typing sorted
2022-11-14 06:37:47 +01:00
Aarni Koskela f3e85b6492
Deduplicate blackening (#81802) 2022-11-09 16:58:20 +01:00
Marc Mueller 0c8eeaa643
Update mypy to 0.990 (#81783)
* Update mypy to 0.990

* Remove type ignore - overriding attr with property (13475)

* Remove type ignores - hasattr (13544)

* Adjust type ignore - assignment (13549)

* New error code - type-abstract (13785)

* Disable annotation-unchecked (13851)
2022-11-08 14:41:39 +01:00
Franck Nijhof 98591cd4b6
Remove hardware and fix raspberry pi brands in integrations.json (#80970) 2022-10-25 21:05:04 +02:00
Bram Kragten 36bb0bbc1a
Fix `integrations.json` creation, make `iot_standards` a list (#80945) 2022-10-25 13:43:40 +02:00
epenet 10dbef80ae
Add myself as code owner to util and const (#80664) 2022-10-22 15:07:43 +02:00
Paulus Schoutsen 76dbd017a7
Conditionally include config flow and iot_class when relevant (#80756) 2022-10-21 20:27:59 -04:00
Franck Nijhof bb287dd0ed
Integrations v2.1: Virtual integrations (#80613) 2022-10-20 23:09:06 -04:00
Franck Nijhof 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
Paulus Schoutsen e3ed4eeb76
Add Denon brand (#79230) 2022-09-28 23:09:53 +02:00
Paulus Schoutsen 62c114e849
Add Apple brand (#79227) 2022-09-28 16:21:09 -04:00
Erik Montnemery b173ae7f44
Add support for integrations v2 (#78801)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-28 11:31:48 -04:00
Erik Montnemery 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 Montnemery 27599ea0ee
Minor tweaks of hassfest and loader.py (#78929) 2022-09-22 21:54:22 -04:00
Erik Montnemery 1021c90bb8
Use black to format hassfest generated files (#78794) 2022-09-19 17:37:22 -04:00
Robert Hillis 73ba7a989b
Make Sonos typing more complete (#68072) 2022-09-05 13:12:37 -05:00
Joakim Sørensen 0caf998547
Bump awesomeversion from 22.6.0 to 22.8.0 (#77436) 2022-08-28 14:52:23 -04:00
J. Nick Koston 3938015c93
Add support for scanners that do not provide connectable devices (#77132) 2022-08-22 14:02:26 -04:00
Erik Montnemery bb74730e96
Add support for USB dongles to the hardware integration (#76795)
* Add support for USB dongles to the hardware integration

* Update hardware integrations

* Adjust tests

* Add USB discovery for SkyConnect 1.0

* Improve test coverage

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Fix frozen dataclass shizzle

* Adjust test

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-08-18 21:52:12 +02:00
Paulus Schoutsen 6e92931087
Add file selector and file upload integration (#76672) 2022-08-18 12:02:12 -04:00
Marc Mueller bac44cf473
Enable no_implicit_optional globally [mypy] (#76723) 2022-08-13 19:33:57 +02:00
Franck Nijhof f0827a20c3
Add schedule helper (#76566)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-08-11 16:14:01 +02:00
Erik Montnemery 51c3836ec2
Create Repairs based on Alerts (#75397)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-27 10:13:16 +02:00
J. Nick Koston 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
Erik Montnemery fb4aff25a2
Create issues in demo integration (#75081)
* Create issues in demo integration

* Add unfixable non-expiring issue

* Update test

* Adjust tests

* update translations

* add hassfest translation schema

* Update homeassistant/components/demo/translations/en.json

Co-authored-by: Zack Barett <zackbarett@hey.com>

* Rename Resolution Center -> Repairs

* Update homeassistant/components/demo/strings.json

Co-authored-by: Zack Barett <zackbarett@hey.com>

* Adjust hassfest to require description or fix_flow

* Update homeassistant/components/demo/repairs.py

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

* Update tests/components/demo/test_init.py

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

* Add missing translation strings

* black

* Adjust repairs imports

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Zack Barett <zackbarett@hey.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-20 14:46:06 +02:00
Franck Nijhof 39dc9aa179
Rename Resolution Center -> Repairs (#75486) 2022-07-20 12:06:52 +02:00
J. Nick Koston 91f2550bc3
Change manufacturer_data_first_byte to manufacturer_data_start (#75379) 2022-07-17 17:25:45 -05:00
epenet 911402e747
Remove cloud from mypy ignore list (#74449) 2022-07-15 10:47:30 +02:00
epenet e7ae2fada7
Remove evohome from mypy ignore list (#75175) 2022-07-14 21:40:39 +02:00
epenet 5287980f48
Remove template from mypy ignore list (#74426) 2022-07-14 21:15:37 +02:00
epenet 1725948d4a
Use instance attributes in minecraft_server (#75157)
* Remove minecraft_server from mypy ignore list

* Use new entity naming style
2022-07-14 18:06:33 +02:00
epenet e16bd1e471
Remove evohome climate from mypy ignore list (#75169)
* Remove evohome climate from mypy ignore list

* Raise error
2022-07-14 13:46:37 +02:00
epenet c260413e2a
Remove lovelace from mypy ignore list (#75167)
* Remove lovelace from mypy ignore list

* Raise error on failed config
2022-07-14 13:08:50 +02:00
epenet debd475a6d
Remove onvif from mypy ignore list (#75162) 2022-07-14 11:55:43 +02:00
epenet 51c17197c5
Remove nzbget from mypy ignore list (#75158) 2022-07-14 11:40:10 +02:00
Paulus Schoutsen 41ec8cd354
Expose supported brands via API (#75074) 2022-07-12 13:49:54 -07:00
epenet 14baaf4b67
Remove plex from mypy ignore list (#74984) 2022-07-11 20:02:44 +02:00
epenet 28a34a1f89
Remove withings from mypy ignore list (#74966) 2022-07-11 19:14:23 +02:00
epenet ba18e11308
Remove profiler from mypy ignore list (#74453) 2022-07-11 18:34:27 +02:00
epenet 7e0515b119
Remove conversation from mypy ignore list (#74991) 2022-07-11 17:47:33 +02:00
epenet 63706d2f67
Remove blueprint from mypy ignore list (#74990) 2022-07-11 17:46:32 +02:00
epenet 6ac05784a6
Remove icloud from mypy ignore list (#75007) 2022-07-11 17:33:20 +02:00
epenet fa51a39f1d
Use instance attributes in evohome (#74996) 2022-07-11 17:24:35 +02:00
epenet 73a8ae35c2
Remove izone from mypy ignore list (#75005) 2022-07-11 16:53:14 +02:00
epenet 06a4c226fd
Remove konnected from mypy ignore list (#75003) 2022-07-11 16:44:44 +02:00
epenet 5f4713a200
Remove solaredge from mypy ignore list (#74983) 2022-07-11 15:07:54 +02:00
epenet ab9950621b
Remove toon from mypy ignore list (#74968) 2022-07-11 13:40:54 +02:00
epenet 36bb34f391
Remove kostal_plenticore from mypy ignore list (#74433) 2022-07-09 23:18:53 +02:00
epenet 3922141f5c
Remove omnilogic from mypy ignore list (#74452) 2022-07-09 23:11:55 +02:00
epenet da133a7f05
Remove xbox from mypy ignore list (#74504) 2022-07-09 23:09:15 +02:00
epenet 0b1f29b2b9
Remove nilu from mypy ignore list (#74412) 2022-07-09 20:01:39 +02:00
epenet 5360e56d09
Remove xiaomi_miio from mypy ignore list (#74669) 2022-07-09 19:59:11 +02:00
epenet 0f33c08dca
Remove telegram_bot from mypy ignore list (#74661) 2022-07-09 19:52:26 +02:00
J. Nick Koston a697672944
Add bluetooth integration (#74653)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-07-08 18:55:31 -05:00
Erik Montnemery 0e3f7bc63a
Resolution center MVP (#74243)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-07 20:49:07 -07:00
epenet c6bff8ae18
Remove philips_js from mypy ignore list (#74659)
* Remove philips_js from mypy ignore list

* Use class attribute
2022-07-07 22:00:19 +02:00
epenet bd43f0393c
Remove influxdb from mypy ignore list (#74612) 2022-07-07 20:51:38 +03:00
epenet dc0c41982f
Remove meteo_france from mypy ignore list (#74613) 2022-07-07 20:50:08 +03:00
epenet 6540ba6239
Remove hassio from mypy ignore list (#74603)
* Remove hassio from mypy ignore list

* Avoid if TYPE_CHECKING
2022-07-07 15:14:36 +02:00
epenet f19c542d6d
Remove denonavr from mypy ignore list (#74580) 2022-07-07 12:14:46 +02:00
epenet 5ae593672e
Remove google_assistant from mypy ignore list (#74587) 2022-07-07 11:35:45 +02:00
epenet 5e63a44e71
Remove home_plus_control from mypy ignore list (#74448) 2022-07-06 22:45:54 +03:00
epenet 8fb9b45e42
Remove input_datetime from mypy ignore list (#74447)
* Remove input_datetime from mypy ignore list

* Use assert

* Use cast

* Use common logic for initial parsing
2022-07-06 10:26:24 +02:00
epenet a27d483009
Remove unifi from mypy ignore list (#74456)
* Remove unifi diagnostics from mypy ignore list

* Remove unifi init from mypy ignore list

* Remove unifi device tracker from mypy ignore list

* Adjust doc string

* Adjust doc string

* Remove unifi entity base from mypy ignore list

* Keep comprehension

* Remove unifi config flow from mypy ignore list

* Fix circular import
2022-07-06 10:25:53 +02:00
epenet cbe9eda0a8
Remove lyric from mypy ignore list (#74451) 2022-07-05 13:24:18 -05:00
epenet 110d9232cd
Remove melcloud from mypy ignore list (#74410) 2022-07-04 23:05:53 -07:00
epenet 560fbd1a0e
Remove lutron_caseta from mypy ignore list (#74427) 2022-07-04 14:10:26 -05:00
epenet 1536936177
Remove harmony from mypy ignore list (#74425) 2022-07-04 13:39:14 -05:00
epenet e3bd63934b
Remove gree from mypy ignore list (#74411) 2022-07-04 16:47:35 +02:00