Paulus Schoutsen
24546dfdf9
Catch all exceptions on import component/platform ( #64930 )
2022-01-25 20:39:32 -08:00
Marc Mueller
12757a8cd2
Update typing - collections.abc (1) ( #63933 )
...
* Update typing - collections.abc (1)
* Additional typing updates
2022-01-12 07:56:35 +01:00
Marc Mueller
240c9979c7
Move `disallow-any-generics` to mypy.ini ( #63917 )
2022-01-11 13:33:25 -08:00
Marc Mueller
d3b7bd25ef
Update typing (1) ( #63922 )
2022-01-11 21:26:03 +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
Ruslan Sayfutdinov
55f4962c06
Fix pylint plugin which checks relative imports ( #62693 )
2021-12-23 11:14:47 -08:00
J. Nick Koston
615872a5d1
Align zeroconf matching with ZeroconfServiceInfo ( #62133 )
2021-12-19 02:09:21 -06:00
Paulus Schoutsen
cd3e51b3e7
Ensure domain is correct format ( #58429 )
2021-10-25 15:56:07 -07:00
Marc Mueller
238b488642
Use assignment expressions 03 ( #57710 )
2021-10-17 20:08:11 +02:00
Ruslan Sayfutdinov
a9ed4fa405
Bump awesomeversion to 21.8.1 ( #55817 )
2021-09-11 11:40:46 -07:00
J. Nick Koston
0403ea715e
Add known devices to USB Vendor / Product IDs ( #54986 )
...
Co-authored-by: kpine <keith.pine@gmail.com>
2021-08-21 21:56:49 +02:00
J. Nick Koston
dc74a52f58
Add support for USB discovery ( #54904 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-08-20 14:04:18 -05:00
Daniel Hjelseth Høyer
fbad453c89
Pylint 2.9.3 ( #52972 )
...
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-07-14 21:44:57 -07:00
Joakim Sørensen
5d6b6deed4
Move version validation to resolver ( #51311 )
2021-05-31 15:32:03 -07:00
Ruslan Sayfutdinov
391b2f8ccd
Add missing return type in Core constructors ( #50884 )
2021-05-20 18:53:29 +03:00
J. Nick Koston
a43561e3e6
Ensure startup can proceed if async_get_integration raises ( #50799 )
...
* Ensure startup can proceed if async_get_integration raises
There were cases where the event would never get set and
startup would deadlock because the second attempt to load
the integration would block forever
* pylint
* reorder
2021-05-17 17:32:05 -05:00
Joakim Sørensen
2f10f59717
Block custom integrations with missing or invalid version ( #49916 )
2021-05-17 15:48:41 +02:00
Joakim Sørensen
9d3b5cd0de
Change log severity from warn to error for custom integration version ( #49726 )
2021-04-26 15:04:39 -07:00
J. Nick Koston
3164eef059
Limit executor jobs during custom_components load to match non-custom behavior ( #49451 )
2021-04-20 09:16:17 -07:00
Franck Nijhof
055cdc64c0
Add support for IoT class in manifest ( #46935 )
2021-04-15 10:21:38 +02:00
Joakim Sørensen
52974e1f64
Add target version to log about missing version ( #48520 )
...
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-03-31 01:08:59 +02:00
Franck Nijhof
6932cf9534
Use contextlib.suppress where possible ( #48189 )
2021-03-23 14:36:43 +01:00
Marc Mueller
4cb7718192
Update typing 16 ( #48087 )
2021-03-18 22:58:19 +01:00
Marc Mueller
e55702d635
Update typing 01 ( #48013 )
2021-03-17 17:34:55 +01:00
shbatm
5df46b60e8
Fix flip-flopped substitutions in Custom Version Type Warning message. ( #46768 )
2021-02-19 03:00:14 +01:00
Franck Nijhof
9b7c39d20b
Postponed evaluation of annotations in core ( #46434 )
...
* Postponed evaluation of annotations in core
* Remove unneeded future
2021-02-12 10:58:20 +01:00
Joakim Sørensen
56b8e82a69
Bump awesomeversion from 21.2.0 to 21.2.2 ( #45993 )
2021-02-04 16:45:59 +01:00
Joakim Sørensen
06e6005fbb
Add warning to custom integrations without version ( #45919 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-02-04 09:59:41 +01:00
Ville Skyttä
2ffdc4694a
Remove misleading "for" from custom integration warning message ( #45811 )
2021-02-01 08:36:06 +01:00
Ville Skyttä
94dbcc9d2b
Generics and other type hint improvements ( #45250 )
2021-01-18 22:23:25 +01:00
J. Nick Koston
da677f7d5a
Add support for discovery via DHCP ( #45087 )
...
* Add support for discovery via DHCP
* additional tesla ouis
* merge tests
* dhcp test
* merge requirements test
* dhcp test
* dhcp discovery
* dhcp discovery
* pylint
* pylint
* pylint
* fix
* Add matching tests
* 100% cover
* cleanup
* fix codespell
* Update exception handling
* remove unneeded comment
* fix options handling exception
* fix options handling exception
2021-01-14 09:09:08 +01:00
Ville Skyttä
317ed418dd
Use singleton enum for "not set" sentinels ( #41990 )
...
* Use singleton enum for "not set" sentinel
https://www.python.org/dev/peps/pep-0484/#support-for-singleton-types-in-unions
* Remove unused variable
2020-12-19 12:46:27 +01:00
J. Nick Koston
94bf55e29b
Limit concurrency of async_get_integration to avoid creating extra threads ( #43085 )
...
* Limit concurrency of async_get_integration to avoid creating extra threads
Since async_get_integration is waiting on the disk most of the time
it would end up creating many new threads because the disk could
not deliver the data in time.
* pylint
2020-11-10 21:34:54 -10:00
Paulus Schoutsen
440570244d
Don't swallow all errors when checking for config validator platform ( #42058 )
2020-10-19 17:09:57 +02:00
Erik Montnemery
343e5d64b8
Add MQTT integration discovery ( #41332 )
...
* Add MQTT integration discovery
* Add script/hassfest/mqtt.py
* Unsubscribe if config entry exists
* Add homeassistant/generated/mqtt.py
* Fix bad loop
* Improve tests
* Improve tests
* Apply suggestions from code review
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
* Prevent initiating multiple config flows
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
2020-10-07 18:30:51 +02:00
J. Nick Koston
9389a7c9be
Limit zeroconf discovery to name/macaddress when provided ( #39877 )
...
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-09-11 12:19:21 +02:00
Paulus Schoutsen
2a9da208d4
Allow disabling integrations in manifest, block uuid package being installed and disable ezviz ( #38444 )
2020-08-26 10:20:14 +02:00
J. Nick Koston
d0d0403664
Add zeroconf/homekit/ssdp discovery support for custom components ( #38466 )
...
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-08-05 15:50:56 +02:00
Paulus Schoutsen
5642027ffb
Improve after_dependencies handling ( #36898 )
2020-06-19 17:24:33 -07:00
Paulus Schoutsen
8f3c84b349
Mark config dependency of frontend ( #36587 )
2020-06-09 23:27:47 -07:00
Franck Nijhof
4395fe9298
Remove logo & icon from manifest ( #35410 )
2020-05-10 11:10:44 -04:00
Ville Skyttä
b4404b071f
Pylint cleanups ( #35409 )
...
* Avoid some outer name redefinitions
* Remove unneeded directives
* Narrow directive scope
* Don't disable redefined-variable-type
2020-05-09 14:08:40 +03:00
Franck Nijhof
9983c43697
Add issue_tracker property to manifest ( #35153 )
2020-05-05 11:00:00 -07:00
Paulus Schoutsen
9f1bffe3be
Add command to get integration manifests ( #34262 )
...
* Add command to get integration manifests
* Add is_built_in value to manifest
* Update APIs
2020-04-15 13:36:16 -07:00
springstan
b2af1de273
Improve string formatting v9 ( #34050 )
...
* Improve string formatting v9
* Address review comments
2020-04-12 17:18:09 +02:00
springstan
fca90a8ddc
Improve string formatting v5 ( #33697 )
...
* Improve string formatting v5
* Address review comments
2020-04-05 17:48:55 +02:00
Franck Nijhof
b9b1cee403
Enable pylint import-outside-toplevel ( #33631 )
2020-04-04 17:07:36 +02:00
Ville Skyttä
e86919a997
Type hint improvements ( #32793 )
2020-03-14 11:39:28 +01:00
Dave T
df86668dfc
Correct grammatical error in CUSTOM_WARNING ( #32569 )
2020-03-09 09:40:08 +01:00
Paulus Schoutsen
beee1298c5
Extend safe mode ( #31927 )
...
* Extend safe mode
* Add safe mode boolean to config JSON output and default Lovelace
* Add safe mode to frontend
* Update accent color
2020-02-18 11:52:38 -08:00
Franck Nijhof
0173c61fee
Spelling: Config(uration) ( #31782 )
2020-02-13 08:27:00 -08:00
Franck Nijhof
c0bc4bb550
Add logo & icon support to Manifest ( #31131 )
...
* Add logo & icon support to Manifest
* Add URL validation
2020-01-24 14:36:22 -08:00
Franck Nijhof
e18426051b
Add Integration Quality Scale to manifest ( #30547 )
2020-01-07 17:21:56 +01:00
Ville Skyttä
e6388e186c
Remove unnecessary string literal concatenations ( #30360 )
2020-01-02 21:17:10 +02:00
Franck Nijhof
0439d6964c
Fix persistent setup error notification content ( #29995 )
...
* Fix persistent setup error notification content
* Use documentation from manifest, enriched error messages
* Fix issue caught by mypy
2019-12-16 20:16:23 +01:00
Paulus Schoutsen
27244e29c4
Install discovery requirements if used ( #29795 )
...
* Install discovery requirements if used
* Update loader.py
* Fix types
2019-12-10 09:24:49 +01:00
Bas Nijholt
67c56c860d
Sort imports according to PEP8 for 'homeassistant' folder ( #29789 )
...
Components are already done
2019-12-09 16:42:10 +01:00
Ville Skyttä
99c7608fb4
Lint config cleanups ( #28864 )
...
* Remove bunch of unneeded lint exclusions
* Use symbolic names instead of identifiers in pylint disables
* Tighten scope of some pylint disables
2019-11-25 22:40:08 -08:00
Ville Skyttä
d88ca0f5cb
Lint exclusions ( #28655 )
...
* Remove malformed pylint disable markers
* Remove some unused imports
* Remove some unneeded lint exclusions
* Remove more unneeded lint exclusions
* Add specific codes to all noqa's
2019-11-16 10:22:07 +01:00
Franck Nijhof
04ab20846a
Bump black to 19.10b0 ( #28310 )
2019-10-28 23:32:34 -07:00
Erik Montnemery
e57e7e8449
Improve validation of device trigger config ( #26910 )
...
* Improve validation of device trigger config
* Remove action and condition checks
* Move config validation to own file
* Fix tests
* Fixes
* Fixes
* Small tweak
2019-09-27 17:48:48 +02:00
Ville Skyttä
33e1b44b3a
Use PEP 526 type annotations, add some type hints ( #26464 )
...
* Add some more type hints to helpers.event
* Change most type comments to variable types
* Remove some superfluous type hints
2019-09-07 09:48:58 +03:00
Franck Nijhof
2f0eb07624
Migrate legacy typehints in core to PEP-526 ( #26403 )
...
* Migrate legacy typehints in core to PEP-526
* Fix one type
2019-09-03 20:36:04 -07:00
Franck Nijhof
decf13b948
Use literal string interpolation in core (f-strings) ( #26166 )
2019-08-23 09:53:33 -07:00
Paulus Schoutsen
4de97abc3a
Black
2019-07-31 12:25:30 -07:00
Ville Skyttä
17d754dbbf
Optional and Union simplifications ( #25365 )
2019-07-21 10:59:51 -07:00
nierob
979f801488
Avoid creating temporary lists ( #25317 )
...
That gives nano performance improvements as *() is slightly faster
then *[].
2019-07-19 13:36:18 -07:00
Joakim Plate
2fbbcafaed
Support config flow on custom components ( #24946 )
...
* Support populating list of flows from custom components
* Re-allow custom component config flows
* Add tests for custom component retrieval
* Don't crash view if no handler exist
* Use get_custom_components instead fo resolve_from_root
* Switch to using an event instead of lock
* Leave list of integrations as set
* The returned list is not guaranteed to be ordered
Backend uses a set to represent them.
2019-07-09 01:19:37 +02:00
Franck Nijhof
31f569ada9
Batch of Component(s) -> Integration(s) ( #24972 )
2019-07-05 15:24:26 -07:00
Paulus Schoutsen
319ac23736
Warn when user tries run custom config flow ( #24657 )
2019-06-20 13:22:12 -07:00
Paulus Schoutsen
72bbe2203e
Dont cache integrations that are not found ( #23316 )
2019-04-22 22:06:58 -07:00
Paulus Schoutsen
77244eab1e
Fix empty components ( #23177 )
2019-04-17 19:17:13 -07:00
Paulus Schoutsen
10e8f4f70a
Add support for after_dependencies ( #23148 )
...
* Add support for after_dependencies
* Remove assert false"
* Fix types
2019-04-16 13:40:21 -07:00
Paulus Schoutsen
8b86bf7dd2
Load integrations only once ( #23132 )
2019-04-15 20:38:24 -07:00
Paulus Schoutsen
6a2da9f9a5
load cleanups ( #23112 )
...
* load cleanups
* Remove unused methods
* Allow importing requirements at the top of a file
* Fix test
* Lint
* Install reqs ASAP when loading platforms
2019-04-15 16:45:46 -07:00
Paulus Schoutsen
b0d893afc9
Remove loader.get_component ( #23111 )
...
* Remove get_component
* Lint
2019-04-14 22:31:01 -07:00
Paulus Schoutsen
d722f4d64a
Further integration load cleanups ( #23104 )
...
* Further integration load cleanups
* Fix tests
* Unflake MQTT vacuum command test
2019-04-14 19:07:05 -07:00
Paulus Schoutsen
6b0180f753
Fix demo ( #23087 )
...
* Fix demo
* Fix types
* Fix all the things
* Fix type
* Fix test
* Lint
2019-04-14 16:59:06 -07:00
Paulus Schoutsen
3368e30279
Migrate packages and check config ( #23082 )
...
* Migrate packages and check config
* Fix typing
* Fix check config script
2019-04-14 07:23:01 -07:00
Paulus Schoutsen
f7d4c48199
Convert service helper to use async_get_integration ( #23023 )
...
* Convert service helper to use async_get_integration
* Fix tests
2019-04-12 10:09:17 -07:00
Rohan Kapoor
6ba9ccf052
Load requirements and dependencies from manifests. Fallback to current `REQUIREMENTS` and `DEPENDENCIES` ( #22717 )
...
* Load dependencies from manifests. Fallback to current DEPENDENCIES
* Fix typing
* Ignore typing correctly
* Split out dependency processing to a new method
* Fix tests
* Only pull from manifest if dependencies is non empty
* Inline temporary function
* Fix light tests [skip ci]
* Fix tests/common
* Fix some mqtt tests [skip ci]
* Fix tests and component manifests which have only one platform
* Fix rflink tests
* Fix more tests and manifests
* Readability over shorthand format
* Fix demo/notify tests
* Load dependencies from manifests. Fallback to current DEPENDENCIES
* Load requirements from manifests. Fallback to current REQUIREMENTS
* Fix typing
* Ignore typing correctly
* Split out dependency processing to a new method
* Only pull from manifest if dependencies is non empty
* Inline temporary function
* Fix tests and component manifests which have only one platform
* Fix rflink tests
* Readability over shorthand format
* Clean up requirements
* Use integration to resolve deps/reqs
* Lint
* Lint
* revert a change
* Revert a test change
* Fix types
* Fix types
* Add back cache for load component
* Fix test_component_not_found
* Move light.test and device_tracker.test into test package instead with manifest to fix tests
* Fix broken device_tracker tests
* Add docstrings to __init__
* Fix all of the light tests that I broke earlier
* Embed the test.switch platform to fix other tests
* Embed and fix the test.imagimage_processing platform
* Fix tests for nx584
* Add dependencies from platform file's DEPENDENCIES
* Try to setup component when entity_platform is setting up
Fix tests in helpers folder
* Rewrite test_setup
* Simplify
* Lint
* Disable demo component if running in test
Temp workaround to unblock CI tests
* Skip demo tests
* Fix config entry test
* Fix repeat test
* Clarify doc
* One extra guard
* Fix import
* Lint
* Workaround google tts
2019-04-11 01:26:36 -07:00
Paulus Schoutsen
e48ef7f441
Fix broken platform components ( #22943 )
...
* Fix broken platform components
* Lint
2019-04-09 15:42:44 -07:00
Paulus Schoutsen
cac00f5b26
Test for circular dependencies using manifests ( #22908 )
...
* Integration dependencies
* Lint
* Lint
* Fix one test
* Lint
* Fix load custom component integration
Fix async issue
Add circular dependency detection in manifest validation
* Fix test
* Address review comment
* Apply suggestions from code review
Co-Authored-By: balloob <paulus@home-assistant.io>
2019-04-09 09:30:32 -07:00
Paulus Schoutsen
cc886821bc
Fix platform warnings ( #22551 )
2019-03-29 17:04:59 -07:00
Jason Hu
8d86722c0e
Fix dev branch ( #22493 )
2019-03-28 11:09:12 +01:00
Paulus Schoutsen
a69080ba73
Print error instead of warning for custom platforms in legacy format ( #22486 )
...
* Legacy platform format prints error
* Enforce no partial overlays
2019-03-27 20:52:28 -07:00
Fabian Affolter
3f29e91367
Remove index ( #21304 )
...
* Remove index
* Remove emnumerate
2019-02-22 14:11:07 +01:00
Paulus Schoutsen
ac502980a2
Do not warn for internally loaded components ( #21287 )
2019-02-21 14:57:38 -08:00
Paulus Schoutsen
2435456248
Prevent partial custom component overlays ( #21070 )
...
* Prevent partial custom component overlays
* Fix tests
2019-02-21 09:41:36 +01:00
Paulus Schoutsen
a9672b0d52
Load as many components in parallel as possible ( #20806 )
...
* Load as many components in parallel as possible
* Lint
2019-02-07 22:56:40 +01:00
Paulus Schoutsen
16159cc3d0
Update platform loading path ( #20807 )
...
* Warn when platform loaded from an entity component folder
* Fix tests
2019-02-07 13:33:12 -08:00
Paulus Schoutsen
a8f22287ca
Allow embedded platforms ( #19948 )
...
* Allow embedded platforms
* Fix test
2019-01-11 11:30:22 -08:00
Matthias Urlichs
9472529d43
Doc fix: a circular dependency does not raise an error. ( #18298 )
...
This is easier to handle than raising an exception: a circular
dependency causes multiple error entries in the log, which is what we
want.
This is harder to achieve with an exception. Since there is only one
user of this code, I choose to fix the documentation -- instead of
adding a lot of mostly-useless exception handling.
Closes : #13147
2018-11-08 12:59:58 +01:00
Ville Skyttä
ee696643cd
Isort preparations ( #16555 )
...
* Don't treat typing as an "in-between" module for import order
That was a < 3.5 era thing.
* Tighten scope of some pylint unused-import disables
To avoid isort moving a top level one around, undesirably broadening its
scope.
2018-09-11 11:21:48 +02:00
Ville Skyttä
eee9b50b70
Upgrade pylint to 2.0.1 ( #15683 )
...
* Upgrade pylint to 2.0.1
* Pylint 2 bad-whitespace fix
* Pylint 2 possibly-unused-variable fixes
* Pylint 2 try-except-raise fixes
* Disable pylint fixme for todoist for now
https://github.com/PyCQA/pylint/pull/2320
* Disable pylint 2 useless-return for now
https://github.com/PyCQA/pylint/issues/2300
* Disable pylint 2 invalid-name for type variables for now
https://github.com/PyCQA/pylint/issues/1290
* Disable pylint 2 not-an-iterable for now
https://github.com/PyCQA/pylint/issues/2311
* Pylint 2 unsubscriptable-object workarounds
* Disable intentional pylint 2 assignment-from-nones
* Disable pylint 2 unsupported-membership-test apparent false positives
* Disable pylint 2 assignment-from-no-return apparent false positives
* Disable pylint 2 comparison-with-callable false positives
https://github.com/PyCQA/pylint/issues/2306
2018-07-26 08:55:42 +02:00
Andrey
140a874917
Add typing to homeassistant/*.py and homeassistant/util/ ( #15569 )
...
* Add typing to homeassistant/*.py and homeassistant/util/
* Fix wrong merge
* Restore iterable in OrderedSet
* Fix tests
2018-07-23 10:24:39 +02:00
Ville Skyttä
2781796d9c
Remove some unused imports ( #15529 )
2018-07-18 10:46:14 +02:00
Andrey
e60f9ca392
More typing ( #15449 )
...
## Description:
More typing improvements.
Switch to using `mypy.ini` for flexibility
Add `warn_return_any` check except in `homeassistant.util.yaml` that does typing hacks. Fix some type annotations as resulting from this check and ignore others were fixing is hard.
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
2018-07-13 20:14:45 +03:00
Andrey
c2fe0d0120
Make typing checks more strict ( #14429 )
...
## Description:
Make typing checks more strict: add `--strict-optional` flag that forbids implicit None return type. This flag will become default in the next version of mypy (0.600)
Add `homeassistant/util/` to checked dirs.
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
2018-07-13 13:24:51 +03:00
Andrey
02238b6412
Add python 3.7 to travis and tox ( #14523 )
...
* Add python 3.7 to travis and tox
* Use pyyaml from github
* Don't version constraints
* Fix version tag
* Change to new pyyaml release
* Python 3.7 requires xenial
* Fix namespace detection
* Use correct RegEx type
* Update pexpect to 4.6
* Use correct validation for dictionaries
* Disable Py37 incompatible packages
* Upgrade all pexpect to 4.6
* Add explicit None as default param
2018-07-07 10:48:02 -04:00