Marc Mueller
9a3908d21d
Improve typing [util.logging] ( #70894 )
2022-04-27 22:26:56 +02:00
Marc Mueller
02ddfd513a
Improve typing [util.location] ( #70893 )
2022-04-27 17:20:56 +02:00
Marc Mueller
97af164858
Prepare for upcoming mypy update ( #70800 )
2022-04-26 07:41:52 -07:00
J. Nick Koston
d03760d0bb
Switch to using ULIDs for context_ids ( #70246 )
2022-04-18 22:45:41 -07:00
Erik Montnemery
91f6e58e9a
Allow customizing unit for temperature and pressure sensors ( #64366 )
...
* Allow customizing unit for temperature and pressure sensors
* pylint
* Adjust google_wifi tests
* Address review comments and add tests
* Improve rounding when scaling
* Tweak rounding
* Further tweak rounding
* Allow setting entity options with config/entity_registry/update
* Address review comments
* Tweak tests
* Load custom unit when sensor is added
* Override async_internal_added_to_hass
* Adjust tests after rebase
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Address review comments
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-30 15:43:04 +02:00
Paulus Schoutsen
929df2bc29
Improve error handling process_play_media_url ( #68322 )
2022-03-20 20:25:15 -07:00
Marc Mueller
be7ef6115c
Make TypeVars private (1) ( #68205 )
2022-03-17 18:52:38 +01:00
Joakim Sørensen
9a6f5bbc04
Update whoami URL ( #67793 )
2022-03-07 11:11:25 +01:00
Marc Mueller
ec980a574b
Improve typing [util.decorator] ( #67087 )
2022-02-23 20:58:42 +01:00
Marc Mueller
30e2411761
Add type ignore error codes [last ones] ( #66816 )
2022-02-18 18:15:57 +01:00
Marc Mueller
0188e8b319
Add type ignore error codes [util] ( #66777 )
2022-02-18 11:30:59 +01:00
Marc Mueller
cdd5d22b38
Remove ThreadPoolExecutor `shutdown` backport ( #66735 )
2022-02-17 10:39:33 -06:00
Erik Montnemery
2538af4b06
Add workaround for python bug to HAQueueHandler ( #66541 )
2022-02-15 10:49:14 +01:00
Marc Mueller
80394e3de6
Improve `util.async_` typing ( #66510 )
2022-02-14 15:41:09 +01:00
J. Nick Koston
ffcac67d99
Add is_ipv4_address and is_ipv6_address utils ( #66472 )
2022-02-13 15:23:11 -06:00
J. Nick Koston
676edb610f
Add coverage for color_rgbww_to_rgb, fix divzero case ( #65721 )
2022-02-05 10:59:32 -06:00
Franck Nijhof
fa09cf663e
Update black to 22.1.0 ( #65788 )
2022-02-05 14:19:37 +01:00
Paulus Schoutsen
5da923c341
Protect state.as_dict from mutation ( #65693 )
2022-02-04 14:45:25 -08:00
J. Nick Koston
26ff6d2aa0
Fix warm/cold reversal in rgbww_to_color_temperature ( #65677 )
2022-02-04 11:36:30 -08:00
Erik Montnemery
63680f0b36
Make util.async_.protect_loop name names ( #65493 )
2022-02-03 14:06:40 +01:00
Erik Montnemery
5a34feb7de
Don't warn on time.sleep injected by the debugger ( #65420 )
2022-02-02 08:58:14 -08:00
Marc Mueller
d8f167bbac
Remove `backports.zoneinfo` dependency ( #65069 )
2022-01-27 09:59:27 -08:00
Erik Montnemery
2caad1a474
Add support for converting to and from mmHg ( #64844 )
2022-01-24 22:57:56 +01:00
Michael
2f0059fa8b
Revert fix MultiDict typing with multidict-6.0.0 ( #64733 ) ( #64792 )
...
* revert #64733
* pin down multidict to < 6.0.0
2022-01-23 23:22:16 +01:00
J. Nick Koston
5d753abd79
Fix MultiDict typing with multidict-6.0.0 ( #64733 )
2022-01-22 20:49:48 -08:00
Erik Montnemery
b3421cf727
Remove Windows workarounds ( #64068 )
2022-01-13 20:41:11 +01: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
Matthias Alphart
dc58bc375a
Warn on`time.sleep` in event loop ( #63766 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-01-11 17:55:24 +01:00
Marc Mueller
f3bc9fc740
Update Python version used for pylint ( #63895 )
2022-01-11 13:41:57 +01:00
Paulus Schoutsen
1ea3a17d89
Allow sending webhooks via WS connection ( #62725 )
2022-01-07 10:41:36 -08:00
Marc Mueller
3e51659ba7
Remove some unused TypeVars ( #63346 )
2022-01-04 15:38:34 +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
d325de7510
Add additional guarding to color_rgb_to_rgbww ( #62220 )
2021-12-19 09:44:53 -06:00
J. Nick Koston
94ae6ac2b2
Handle color temp to RGBWW conversion ( #61473 )
...
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-12-16 05:39:33 -06:00
J. Nick Koston
3eabd69666
Fix exception in color_rgb_to_rgbww ( #61466 )
2021-12-10 22:19:54 -08:00
Allen Porter
ab75efda9a
Add debug logging for pip install command ( #61057 )
2021-12-05 13:30:02 -08:00
Marvin Wichmann
707fe67c00
Move StrEnum to homeassistant.backports and move Platform to homeassistant.const ( #60880 )
...
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-12-03 09:31:17 +01:00
Erik Montnemery
9f4a99fe81
Revert "Add bytes support for bitwise template operations" ( #60854 )
2021-12-03 08:50:29 +01:00
Franck Nijhof
c8b0a3b667
Revert "Move Platform StrEnum to const" ( #60875 )
2021-12-02 14:19:08 -08:00
Franck Nijhof
6e220d5d17
Move Platform StrEnum to const ( #60857 )
2021-12-02 22:30:52 +01:00
Franck Nijhof
3c66706a49
Clean up deprecated sanitize_filename and sanitize_path ( #60859 )
2021-12-02 15:35:11 -05:00
Marc Mueller
a90ef488a1
Add return type annotation to StrEnum ( #60624 )
2021-11-30 16:26:02 +01:00
Franck Nijhof
6e3f522d4b
Fix StrEnum backport return type issue ( #60610 )
2021-11-30 11:16:56 +01:00
Erik Montnemery
88068fa97f
Remove unused OrderedEnum ( #60392 )
2021-11-26 11:10:39 +01:00
Jan Bouwhuis
d33457b7bc
Add bytes support for bitwise template operations ( #60211 )
...
* Add bytes support for bitwise template operations
* spelling
* Update bitwise tests
* remove try block for bytes conversion
* do not accept empty `bytes` object
2021-11-24 15:15:27 +01:00
Ville Skyttä
053c456199
Change device entry type to an StrEnum ( #59940 )
...
Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-22 18:14:15 +01:00
rianadon
ecf00a1eae
Add accumulated precipitation to unit system ( #59657 )
...
* Add accumulated precipitation to unit system
* Fix template test
* Fix typo of testing pressure instead of precipitation
* Add extra arguments so unit system test passes
2021-11-19 09:18:44 +01:00
rianadon
7cc7bbb76d
Add speed to units system ( #58437 )
...
* Use speed units in unit system
* Use more obvious conversion factor for unit system speed test
* Use wind_speed instead of speed, use m/s
2021-11-18 16:08:42 +01:00
Simone Chemelli
5fc51130ea
Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 4 ( #58669 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-15 09:18:57 -08:00
J. Nick Koston
96f7b0d910
Use atomicwrites for mission critical core files ( #59606 )
2021-11-15 11:19:31 +01:00
Matthias Alphart
f8f060b72b
Make util.color._match_max_scale public ( #59207 )
2021-11-10 22:29:16 -08:00
J. Nick Koston
ebb25ab0e6
Make yaml file writes safer ( #59384 )
2021-11-10 22:19:56 -08:00
Tim Rightnour
93395f9b68
Add support for PRESSURE_CBAR (centibars) ( #58762 )
...
* Add support for PRESSURE_CBAR (centibars). This is the standard UOM for tensiometers.
While the data could be converted into something like MBAR, and displayed
like that, the correct UOM for this type of sensor is CBAR. Displaying
it as MBAR would be the same as displaying air pressure as feet of Hg, while
technically correct, it's hard to understand when reading.
Adding support for this UOM will fix errors in the UI(statistics) about the unit not
matching a unit of the device_class.
* Add tests for PRESSURE_CBAR
2021-11-10 09:44:05 +01:00
rianadon
a102c425a9
Add speed conversion function & add speed to units system ( #53846 )
...
* Add speed conversion function
* Add test for speed utility functions
* Update unit system tests
* Fix incorrect unit conversions in tests
* Fix some test errors
* Calculate speed units from smaller set of constants
* Fix typo in speed test
* Use pytest.approx for checking floating point values
* Change other instance of speeds needing to be pytest.approx
* Revert changes to unit system
* Fix oopsie in defining in/day and in/hr
* Parametrize test
* Add comments describing calculations & remove duplicate test
2021-11-09 08:12:28 +01:00
J. Nick Koston
1cd9be7538
Fix recursive limit in find_next_time_expression_time ( #58914 )
...
* Fix recursive limit in find_next_time_expression_time
* Add test case
* Update test_event.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-02 00:11:17 +01:00
Otto Winter
a9c0f89c09
Fix find_next_time_expression_time ( #58894 )
...
* Better tests
* Fix find_next_time_expression_time
* Add tests for Nov 7th 2021, Chicago transtion
* Update event tests
* Update test_event.py
* small performance improvement
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-01 17:45:13 +01:00
Marc Mueller
e0c0d00833
Use assignment expressions 39 ( #58829 )
2021-10-31 18:56:25 +01:00
Ville Skyttä
b0e1bab58b
Use http.HTTPStatus in util.aiohttp ( #58456 )
2021-10-26 13:13:27 +02:00
Boris K
8b02703585
Fix color util links to Philips Hue documentation ( #57099 )
2021-10-05 11:19:09 +02:00
Glenn Waters
e4f15c42e0
Add kPa as a pressure unit ( #56885 )
2021-10-01 08:08:04 -07:00
Marc Mueller
77ee72cbb9
Import Callable from collections.abc (1) ( #56775 )
2021-09-29 16:32:11 +02:00
Marc Mueller
7af67d34cf
Use assignment expressions 01 ( #56394 )
2021-09-18 13:31:35 -10:00
Marc Mueller
b3181a0ab2
Use NamedTuple for RGBColor ( #55698 )
2021-09-04 09:25:25 +02:00
Paulus Schoutsen
19c54b8cbf
Drop unused ruamel ( #55672 )
2021-09-03 22:17:10 -07:00
Ville Skyttä
848c0be58a
Avoid some implicit generic Anys ( #54577 )
2021-08-16 23:12:06 +02:00
Daniel Hjelseth Høyer
49a69d5ba0
Add missing PRESSURE_BAR conversion ( #54497 )
...
* Add missing PRESSURE_BAR
* style
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
* valid units
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-08-12 07:30:35 +02:00
Bram Kragten
e23750b2a4
Add device class `gas` and enable statistics for it ( #54110 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-08-11 09:58:19 -07:00
Marc Mueller
553521a76b
Add mixin classes for required keys in EntityDescription ( #53610 )
2021-07-28 11:50:13 +02:00
Joakim Sørensen
85c1614204
Add currency to location data ( #53575 )
2021-07-27 21:05:16 -07:00
J. Nick Koston
6d493a848c
Ensure PyPI packages can still be installed on high latency connections ( #53365 )
2021-07-24 14:07:10 +02:00
Marc Mueller
a56485a8c5
Revert new unit types ( #53226 )
2021-07-20 14:13:51 +02:00
Marc Mueller
f6b162bc39
Add pylint CodeStyle extension ( #53147 )
2021-07-19 06:57:06 -07:00
Marc Mueller
71a8ae3016
Add new unit types for better type checking ( #53124 )
...
* Add new unit types
* Update helper functions
* Update components
* Update lcn climate
2021-07-18 14:43:47 +02: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
Ville Skyttä
9864f2ef8b
String formatting cleanups ( #52937 )
2021-07-13 00:12:55 +02:00
J. Nick Koston
1ba5c1c9fb
Fix deadlock at shutdown with python 3.9 ( #52613 )
2021-07-07 09:23:24 +02:00
Erik Montnemery
b645560633
Minor improvements of util.percentage typing ( #52581 )
2021-07-06 13:29:39 +02:00
Erik Montnemery
0476c7f9ee
Normalize temperature statistics to °C ( #52297 )
...
* Normalize temperature statistics to °C
* Fix tests
* Support temperature conversion to and from K, improve tests
* Fix test
* Add tests, pylint
2021-06-30 14:17:58 +02:00
Erik Montnemery
cca5964ac0
Normalize pressure statistics to Pa ( #52298 )
2021-06-29 23:30:13 +02:00
Franck Nijhof
13bf5dbee4
Upgrade mypy to 0.902 ( #51907 )
2021-06-16 14:35:32 +02:00
Martin Hjelmare
187374c11e
Set Registry name parameter to Hashable type ( #51203 )
2021-05-28 15:29:11 +02:00
Joakim Sørensen
7ff14b47a8
Use whoami for location lookup ( #50934 )
2021-05-22 20:34:48 -07:00
Erik Montnemery
15e2c6d7dc
Fix typing for dt_util as_timestamp ( #50886 )
...
* Fix typing for dt_util::as_timestamp
* Apply suggestions from code review
2021-05-22 09:34:49 +02:00
J. Nick Koston
eddc1ab778
Handle threads exiting unexpected during shutdown ( #50907 )
...
If a thread exits right when we are trying to force an exception
to shut it down, setting the exception will fail with SystemError.
At this point in the shutdown process we want to move on as this
will cause the shutdown to abort
2021-05-21 01:06:37 +02:00
Ruslan Sayfutdinov
391b2f8ccd
Add missing return type in Core constructors ( #50884 )
2021-05-20 18:53:29 +03:00
Ruslan Sayfutdinov
de5472403b
Use mypy-friendly conditional import for zoneinfo ( #50444 )
2021-05-13 22:36:49 -07:00
Paul Ganssle
efa5c59559
Replace hand-rolled binary search with bisect_left ( #50410 )
...
The `bisect` module exposes a `bisect_left` function which does
basically what the bulk of `_lower_bound` does. From my tests, it is
slightly faster (~5%) in the probably common ideal case where `arr` is short.
In the worst case scenario, `bisect.bisect_left` is *much* faster.
```
>>> arr = list(range(60))
>>> cmp = 59
>>> %timeit _lower_bound(arr, cmp)
736 ns ± 6.24 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
>>> %timeit bisect_lower_bound(arr, cmp)
290 ns ± 7.77 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
```
I doubt this is a huge bottleneck or anything, but I think it's a bit
more readable, and it's more efficient, so it seems like it's mostly a
win.
This commit *will* add a new unconditional import for `bisect` when
importing `util.dt`, and `bisect` is not currently imported for any of
the standard library modules. It is possible to make this conditional by
placing `import bisect` in the _lower_bound function, or in the function
it's nested in.
2021-05-11 08:18:20 -07:00
Paulus Schoutsen
f8584c3ded
Use zoneinfo instead of dateutil ( #50387 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-10 08:32:29 -07:00
J. Nick Koston
bf2d40adfe
Migrate from pytz to python-dateutil ( #49643 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-07 22:46:26 -07:00
Erik Montnemery
e96cbccc92
Improve color conversion for RGBWW lights ( #49807 )
2021-04-28 15:46:41 +02:00
Ruslan Sayfutdinov
37466ae423
Don't ignore mypy errors by default ( #49270 )
2021-04-26 14:23:21 +02:00
Marc Mueller
f1d48ddfe3
Update pylint to 2.8.0 ( #49637 )
2021-04-24 14:39:24 -10:00
Marc Mueller
c07646db5d
Update typing syntax ( #49480 )
...
* Update typing syntax
* Replace typing imports with ones from collections where possible
* Changes after review
2021-04-20 17:40:41 +02:00
J. Nick Koston
04a0ca14e0
Ensure shutdown does not deadlock ( #49282 )
2021-04-18 08:55:51 -10:00
J. Nick Koston
b2c33c1373
Only fetch the local ip once per run ( #49336 )
...
Wrap get_local_ip in lru_cache
2021-04-18 10:04:45 +02:00
Ville Skyttä
3a0b0380c7
Remove some unneeded pylint disables, update ref to util.process one ( #49314 )
2021-04-17 09:25:20 +02:00
Angeliki Papadopoulou
a529a12745
Remove redundant text from documentation ( #49262 )
...
I found an extra "when" in the documentation text.
2021-04-15 18:05:07 +02:00
J. Nick Koston
d71f913a12
Ensure original log handlers are restored at close ( #49230 )
...
Error messages after close were not being logged
2021-04-15 10:53:48 +02:00