Commit Graph
112 Commits
Author SHA1 Message Date
Abílio CostaandGitHub dc6269f52d Add override decorator to remaining homeassistant dir files (#174488) 2026-06-22 21:56:03 +02:00
eae809abd1 Fix line length violations in core and helpers (#170534)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-14 16:31:01 -04:00
epenetandGitHub 7169d52010 Remove import annotations from core (#169547) 2026-04-30 20:34:43 +02:00
Marc MuellerandGitHub 67156d159f Truncate password before sending it to bcrypt (#155950) 2025-11-07 21:26:32 +01:00
epenetandGitHub b7a344fd65 Standardize homeassistant imports in core and base platforms (#136730)
Standardize homeassistant imports in core
2025-01-28 13:11:48 -05:00
Marc MuellerandGitHub 46b17b539c Use new syntax for TypeVar defaults (#135780) 2025-01-17 09:12:52 +01:00
Franck NijhofandGitHub 60bdc13c94 Drop Python 3.12 support (#135589) 2025-01-14 16:23:15 +01:00
Marc MuellerandGitHub 32c1b519ad Improve auth generic typing (#133061) 2024-12-12 20:14:56 +01:00
Erik MontnemeryandGitHub d6ee10a543 Make FlowHandler.context a typed dict (#126291)
* Make FlowHandler.context a typed dict

* Adjust typing

* Adjust typing

* Avoid calling ConfigFlowContext constructor in hot path
2024-10-08 12:18:45 +02:00
Robert ReschandGitHub a0b604f98c Improve add user error messages (#120909) 2024-07-01 18:27:40 +02:00
Robert ReschandGitHub 9f4bf6f11a Create repair when HA auth provider is running in legacy mode (#119975) 2024-06-26 09:00:33 +02:00
Robert ReschandGitHub 641507a45a Add change username endpoint (#109057) 2024-06-24 18:51:19 +02:00
Robert ReschandGitHub bae008b0e2 Remove legacy_api_password auth provider (#119976) 2024-06-19 22:46:30 +02:00
Marc MuellerandGitHub 87bb7ced79 Use PEP 695 for simple type aliases (#117633) 2024-05-17 14:42:21 +02:00
Marc MuellerandGitHub 8f614fb06d Use HassKey for helpers (2) (#117013) 2024-05-07 11:24:13 -05:00
J. Nick KostonandGitHub 4341b21a61 Migrate auth to use async_import_module to avoid blocking I/O in the event loop (#113387) 2024-03-14 10:44:36 +01:00
Marc MuellerandGitHub 19ab3d6daf Add empty line after module docstring [helpers + other] (#112707) 2024-03-08 10:36:11 -05:00
Erik MontnemeryandGitHub 82efb3d35b Make FlowResult a generic type (#111952) 2024-03-07 12:41:14 +01:00
3d3e9900c3 Add TypeVar default for FlowResult (#112345)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-03-05 22:52:11 +01:00
Erik MontnemeryandGitHub a0e558c457 Add generic classes BaseFlowHandler and BaseFlowManager (#111814)
* Add generic classes BaseFlowHandler and BaseFlowManager

* Migrate zwave_js

* Update tests

* Update tests

* Address review comments
2024-02-29 16:52:39 +01:00
cf9b0e804f Deprecate legacy api auth provider (#104409)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:16:18 +01:00
852fb58ca8 Extend auth/providers endpoint and add /api/person/list endpoint for local ip requests (#103906)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-11-24 17:11:54 +01:00
65a2f5bcd5 Support for group into command_line auth provider (#92906)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-11-24 13:19:25 +01:00
Marc MuellerandGitHub 0b2b486754 Update mypy to 1.6.0 (#101780) 2023-10-11 13:25:11 +02:00
Franck NijhofandGitHub c3936e6f14 Replace isort with ruff (#94302) 2023-06-08 23:43:56 +02:00
Patrick LiandGitHub 46103f56c4 Fix trusted_users group schema (#92847)
* Fix trusted_users group schema

* Add tests for CONFIG_SCHEMA
2023-05-23 20:11:25 +02:00
J. Nick KostonandGitHub 03eea7bd3f Avoid subprocess memory copy when c library supports posix_spawn (#87958)
* use posix spawn on alpine

* Avoid subprocess memory copy when c library supports posix_spawn

By default python 3.10 will use the fork() which has to
copy all the memory of the parent process (in our case
this can be huge since Home Assistant core can use
hundreds of megabytes of RAM). By using posix_spawn
this is avoided.

In python 3.11 vfork will also be available
https://github.com/python/cpython/issues/80004#issuecomment-1093810689
https://github.com/python/cpython/pull/11671 but we won't
always be able to use it and posix_spawn is considered safer
https://bugzilla.kernel.org/show_bug.cgi?id=215813#c14

The subprocess library doesn't know about musl though
even though it supports posix_spawn https://git.musl-libc.org/cgit/musl/log/src/process/posix_spawn.c
so we have to teach it since it only has checks for glibc
https://github.com/python/cpython/blob/1b736838e6ae1b4ef42cdd27c2708face908f92c/Lib/subprocess.py#L745

The constant is documented as being able to be flipped here:
https://docs.python.org/3/library/subprocess.html#disabling-use-of-vfork-or-posix-spawn

* Avoid subprocess memory copy when c library supports posix_spawn

By default python 3.10 will use the fork() which has to
copy memory of the parent process (in our case
this can be huge since Home Assistant core can use
hundreds of megabytes of RAM). By using posix_spawn
this is avoided and subprocess creation does not
get discernibly slow the larger the Home Assistant
python process grows.

In python 3.11 vfork will also be available
https://github.com/python/cpython/issues/80004#issuecomment-1093810689
https://github.com/python/cpython/pull/11671 but we won't
always be able to use it and posix_spawn is considered safer
https://bugzilla.kernel.org/show_bug.cgi?id=215813#c14

The subprocess library doesn't know about musl though
even though it supports posix_spawn https://git.musl-libc.org/cgit/musl/log/src/process/posix_spawn.c
so we have to teach it since it only has checks for glibc
https://github.com/python/cpython/blob/1b736838e6ae1b4ef42cdd27c2708face908f92c/Lib/subprocess.py#L745

The constant is documented as being able to be flipped here:
https://docs.python.org/3/library/subprocess.html#disabling-use-of-vfork-or-posix-spawn

* missed some

* adjust more tests

* coverage
2023-02-13 09:02:51 -05:00
Franck NijhofandGitHub ca1a12898c Enable Ruff D212 (#87347) 2023-02-03 23:08:48 +01:00
Marc MuellerandGitHub 8abce25948 Update Union typing (4) [Py310] (#86427) 2023-01-23 09:04:40 +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
Erik MontnemeryandGitHub 22b4c445a0 Drop title from auth flows (#83628) 2022-12-12 10:53:28 +01:00
Aarni KoskelaandGitHub 8038485ca4 Use partition instead of split where possible in core (#81806) 2022-11-15 21:45:48 +01:00
Marc MuellerandGitHub 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
epenetandGitHub 16900dcef1 Make Store a generic class (#74617) 2022-07-09 22:32:57 +02:00
epenetandGitHub 627d6f7803 Ensure description_placeholders is always typed (#72716) 2022-05-31 10:33:34 +02:00
Franck NijhofandGitHub 5f44d0f8f9 Clean up accessing storage.Store helper via hass (#72009) 2022-05-17 18:45:57 +02:00
Marc MuellerandGitHub 9b9b553521 Disable no-self-use [pylint] (#70641)
* Disable no-self-use

* Remove disable comments
2022-04-25 07:41:01 -07:00
Marc MuellerandGitHub ec980a574b Improve typing [util.decorator] (#67087) 2022-02-23 20:58:42 +01:00
Marc MuellerandGitHub 1ad023a63f Add type ignore error codes [auth] (#66774) 2022-02-18 23:29:56 +01:00
Marc MuellerandGitHub 240c9979c7 Move disallow-any-generics to mypy.ini (#63917) 2022-01-11 13:33:25 -08:00
Marc MuellerandGitHub d3b7bd25ef Update typing (1) (#63922) 2022-01-11 21:26:03 +01:00
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
72d8882c79 Handle errors response to be None (#60679)
Co-authored-by: Philip Allgaier <mail@spacegaier.de>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-12-01 13:51:10 +01:00
J. Nick KostonandGitHub 96f7b0d910 Use atomicwrites for mission critical core files (#59606) 2021-11-15 11:19:31 +01:00
Paulus SchoutsenandGitHub e30e4d5c6d Block cloud explicitely from trusted networks (#59333)
* Block cloud explicitely from trusted networks

* Lint
2021-11-12 10:25:01 +01:00
Paulus SchoutsenandGitHub 2d374d65b6 Mark auth voluptuous schema fields as required (#57003) 2021-10-03 22:02:30 -07:00
Marc MuellerandGitHub 7af67d34cf Use assignment expressions 01 (#56394) 2021-09-18 13:31:35 -10:00
Ville SkyttäandGitHub 848c0be58a Avoid some implicit generic Anys (#54577) 2021-08-16 23:12:06 +02:00
Marc MuellerandGitHub 46c3495ae0 Update pylint to 2.9.5 (#53496) 2021-07-26 16:17:15 +02:00
Joakim PlateandGitHub d339e3bd8c Reject trusted network access from proxies (#52388) 2021-07-02 11:49:42 +02:00