Commit graph

277 commits

Author SHA1 Message Date
Franck Nijhof aa3657e071
Bump version to 2023.4.0dev0 (#88630) 2023-02-22 21:29:49 +01:00
Franck Nijhof 6cbad61572
Enable Ruff RUF006; Hard reference to asyncio.create_task return value (#88216)
* Enable Ruff RUF006

* Fix test

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-02-18 23:05:44 -05:00
Franck Nijhof 1caacab8dd
Enable Ruff B014 (#88377) 2023-02-18 07:38:04 -06:00
Franck Nijhof 1e05697080
Enable Ruff B007 (#88356)
* Enable Ruff B007

* Adjust existing cases
2023-02-17 21:08:18 -05:00
Erik Montnemery 2b8abf84bd
Fail tests which cause an SQLAlchemy warning (#88327)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-02-17 19:17:06 +01:00
Franck Nijhof 580869a9a6
Update typing-extensions to 4.5.0 (#88236) 2023-02-16 11:21:54 +01:00
Kevin Stillhammer a190bcdc3f
Bump voluptuous-serialize to 2.6.0 (#88211) 2023-02-15 23:14:45 +01:00
Ville Skyttä b5a686730c
Let black infer target-version (#88199) 2023-02-15 21:12:54 +01:00
Franck Nijhof 793e51ac76
Enable Ruff SIM212 (#88181) 2023-02-15 15:22:34 +01:00
Franck Nijhof f67ebcade1
Enable Ruff SIM201 (#88171) 2023-02-15 14:43:02 +01:00
Franck Nijhof 9030ca05b1
Enable Ruff SIM118 (#87772) 2023-02-15 12:39:12 +01:00
Mark Broadbent 568e0ae029
Update orjson to resolve segmentation fault during JSON serialisation (#88119)
Home Assistant uses orjson 3.8.5 that contains an issue[1] on musl libc
platforms that causes a segmentation fault.  This particularly affect
Home Assistant container installations reported in #87283 and #87522.

This updates the version to 3.8.6 that resolves the segmentation
fault during json serialisation.

[1] https://github.com/ijl/orjson/issues/335
2023-02-14 15:26:52 -05:00
J. Nick Koston 94386b6674
Bump home-assistant-bluetooth to 1.9.3 (#88051) 2023-02-13 23:28:30 -05:00
J. Nick Koston 026b4f5307
Bump aiohttp to 3.8.4 (#88032) 2023-02-13 15:52:20 -06:00
Franck Nijhof f5b651750c
Enable Ruff ICN001 (#87775) 2023-02-09 13:41:50 +01:00
J. Nick Koston f0118b3d30
Bump cryptography to 39.0.1 for CVE-2023-23931 (#87658)
Bump cryptography to 39.0.1

CVE-2023-23931
2023-02-07 20:30:16 -05:00
Marc Mueller 4fbb14ecc7
Update mypy to 1.0.0 (#87586) 2023-02-07 02:31:14 +01:00
epenet de807fa782
Ensure __init__ return type is None (#87521)
* Ensure __init__ return type is None

* Remove hass-constructor plugin

* Simplify

* Replace dict with list

* Cleaup pyproject.toml

* Move is_method outside loop

* Adjust loop
2023-02-06 16:25:12 +01:00
Aarni Koskela ee6773236e
Update Ruff to 0.0.241 (#87386)
Changes: https://github.com/charliermarsh/ruff/compare/v0.0.237...v0.0.241
2023-02-04 14:42:36 -05:00
Franck Nijhof ca1a12898c
Enable Ruff D212 (#87347) 2023-02-03 23:08:48 +01:00
Marc Mueller 04b921e3b5
Update pip constraint to 23.1 (#87331) 2023-02-03 21:02:35 +01:00
epenet 61734f04b8
Re-enable Ruff D418 (#87302) 2023-02-03 16:33:03 +01:00
Franck Nijhof 4b27af6a8f
Re-enabled Ruff E713 (#87301) 2023-02-03 16:18:33 +01:00
Marc Mueller 07a3046d11
Update pylint to 2.16.0 (#87083) 2023-02-02 12:49:01 +01:00
Franck Nijhof 3b5fd4bd06
Enable Ruff TRY004 (#86811) 2023-01-30 14:06:52 +01:00
Franck Nijhof c56832bb2c
Enable Ruff SIM300 (#86793) 2023-01-30 11:03:23 +01:00
Ville Skyttä 50c2992f36
Drop py39 from black target-version (#86814) 2023-01-27 22:39:52 +02:00
Franck Nijhof 8f74bff354
Enable Ruff PLC0414 (#86799) 2023-01-27 16:32:04 +01:00
Franck Nijhof 8c993116e1
Enable Ruff SIM401 (#86790)
* Enable Ruff SIM401

* Adjust found cases
2023-01-27 13:08:44 +01:00
Franck Nijhof bfbf9b9751
Adjusts imports in tests to match our relative import rules (#86788) 2023-01-27 12:51:58 +01:00
Franck Nijhof 3ff3834cae
Re-enable Ruff UP024 (#86784) 2023-01-27 12:03:27 +01:00
Franck Nijhof a79885ceaf
Enable Ruff SIM117 (#86783) 2023-01-27 11:52:49 +01:00
Franck Nijhof 57cf11f067
Enable Ruff PT015 (#86775) 2023-01-27 11:10:29 +01:00
Franck Nijhof e4a78420b8
Enable Ruff PT013 (#86757)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-01-27 09:09:46 +01:00
Franck Nijhof e738924780
Enable Ruff SIM105 (#86759)
* Enable Ruff SIM105

* Adjust existing cases
2023-01-26 21:06:22 -05:00
Franck Nijhof 62dcbe5258
Enable Ruff PT001 (#86730) 2023-01-26 18:05:05 +01:00
Franck Nijhof eb5d63237c
Update ruff to v0.0.235 (#86719) 2023-01-26 17:17:13 +01:00
Franck Nijhof 7d672b4a4d
Bump version to 2023.3.0dev0 (#86632) 2023-01-25 20:50:44 +01:00
Malte Franken a2fb6fbaa8
Bump httpx to 0.23.3 (#86614)
fixes undefined
2023-01-25 11:40:46 +01:00
Franck Nijhof 73c4ac53d2
Enable T20 (flake8-print) to ban use of print statements (#86525)
* Enable T20 (flake8-print) to ban use of print statements

* Make compatible with flake8 config
2023-01-24 14:24:21 +01:00
Aarni Koskela 65ad953497
Update Ruff to 0.0.231, enable D401 (#86520) 2023-01-24 13:57:08 +01:00
Aarni Koskela bf41a971a2
Introduce ruff (eventually replacing autoflake, pyupgrade, flake8) (#86224) 2023-01-24 12:15:16 +01:00
Marc Mueller d7dda6bee5
Update python version used for pylint [Py310] (#86414)
* Update python version used for pylint linting [Py310]

* Import Callable from collections.abc [Py310]

* Use builtin anext [Py310]
2023-01-23 07:56:15 +01:00
Franck Nijhof 5102d1a5f3
Drop Python 3.9 support (#85456) 2023-01-22 20:40:33 +01:00
epenet 30bf0634fe
Add per-file-ignore to pylint (#86289) 2023-01-22 17:26:24 +01:00
epenet 91c502ae55
Bump bcrypt to 4.0.1 (#86338) 2023-01-21 11:16:28 -05:00
Franck Nijhof b85d6e6ede
Update orjson to 3.8.5 (#86043) 2023-01-16 22:20:12 +01:00
J. Nick Koston 8b893b7062
Bump cryptography to 39.0.0 (#85846)
* Bump cryptography to 39.0.0

changelog: https://github.com/pyca/cryptography/compare/38.0.3...39.0.0

The change that is significant is https://github.com/pyca/cryptography/pull/7601 which
should help with esphome noise encryption performance

* constraints

* fix botocore not loading
2023-01-13 19:58:01 -05:00
Franck Nijhof 83f6e168e5
Update orjson to 3.8.4 (#85195) 2023-01-05 12:34:23 +01:00
J. Nick Koston a9640d9c94
Bump home-assistant-bluetooth to 1.9.2 (#85123) 2023-01-04 18:29:26 +01:00
J. Nick Koston b470c3484b
Bump httpx to 0.23.2 (#85023)
changelogs:
https://github.com/encode/httpcore/compare/0.16.2...0.16.3
https://github.com/encode/httpx/compare/0.23.1...0.23.2
2023-01-02 20:45:52 -05:00
J. Nick Koston 3dd342baf3
Bump home-assistant-bluetooth to 1.9.1 (#85005)
fixes #83722
2023-01-02 16:33:01 -05:00
Franck Nijhof 9b3d727e8e
Update orjson to 3.8.3 (#84878) 2022-12-31 00:58:02 +01:00
Franck Nijhof f84533838a
Update attrs to 22.2.0 (#84772) 2022-12-29 15:09:39 +01:00
Franck Nijhof ba24cb6e72
Bump version to 2023.2.0dev0 (#84707) 2022-12-28 18:46:04 +01:00
Franck Nijhof f17a42dc27
Upgrade ciso8601 to 2.3.0 (#84465) 2022-12-22 15:01:59 -05:00
Aaron Godfrey fe2e357ae9
Upgrade attrs to 22.1.0 (#84205) 2022-12-19 12:40:30 +01:00
Paulus Schoutsen 1c0543bcd5
Drop aiohttp to 3.8.1 (#83795) 2022-12-11 21:19:02 -05:00
J. Nick Koston 9008006ac8
Restore remote discovered devices between remote scanner restarts (#83699) 2022-12-11 09:02:55 -10:00
Ville Skyttä 8f9baafac1
Tweak black config (#83230)
* Remove `--safe` from pre-commit args, it's the default

* Extend exclusions instead of overriding, improve regex
2022-12-04 17:12:37 -05:00
Franck Nijhof 4bef6ac191
Bump version to 2023.1.0dev0 (#83025) 2022-11-30 21:12:57 -05:00
Joakim Plate c576a68d33
Upgrade pytest-aiohttp (#82475)
* Upgrade pytest-aiohttp

* Make sure executors, tasks and timers are closed

Some test will trigger warnings on garbage collect, these warnings
spills over into next test.

Some test trigger tasks that raise errors on shutdown, these spill
over into next test.

This is to mimic older pytest-aiohttp and it's behaviour on test
cleanup.

Discussions on similar changes for pytest-aiohttp are here:
https://github.com/pytest-dev/pytest-asyncio/pull/309

* Replace loop with event_loop

* Make sure time is frozen for tests

* Make sure the ConditionType is not async

  /home-assistant/homeassistant/helpers/template.py:2082: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    def wrapper(*args, **kwargs):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

* Increase litejet press tests with a factor 10

The times are simulated anyway, and we can't stop the normal
event from occuring.

* Use async handlers for aiohttp

tests/components/motioneye/test_camera.py::test_get_still_image_from_camera
tests/components/motioneye/test_camera.py::test_get_still_image_from_camera
tests/components/motioneye/test_camera.py::test_get_stream_from_camera
tests/components/motioneye/test_camera.py::test_get_stream_from_camera
tests/components/motioneye/test_camera.py::test_camera_option_stream_url_template
tests/components/motioneye/test_camera.py::test_camera_option_stream_url_template
  /Users/joakim/src/hass/home-assistant/venv/lib/python3.9/site-packages/aiohttp/web_urldispatcher.py:189: DeprecationWarning: Bare functions are deprecated, use async ones
    warnings.warn(

* Switch to freezegun in modbus tests

The tests allowed clock to tick in between steps

* Make sure skybell object are fully mocked

Old tests would trigger attempts to post to could services:

```
DEBUG:aioskybell:HTTP post https://cloud.myskybell.com/api/v3/login/ Request with headers: {'content-type': 'application/json', 'accept': '*/*', 'x-skybell-app-id': 'd2b542c7-a7e4-4e1e-b77d-2b76911c7c46', 'x-skybell-client-id': '1f36a3c0-6dee-4997-a6db-4e1c67338e57'}
```

* Fix sorting that broke after rebase
2022-11-29 22:36:36 +01:00
Franck Nijhof 35e81cf982
Update aiohttp to 3.8.3 (#78860) 2022-11-28 20:42:10 +01:00
uvjustin 9390359fe3
Bump httpx to 0.23.1 (#82725) 2022-11-26 10:04:22 -10:00
J. Nick Koston 4b89d087bb
Bump home-assistant-bluetooth to 1.8.1 (#82222)
changelog: https://github.com/home-assistant-libs/home-assistant-bluetooth/compare/v1.8.0...v1.8.1
2022-11-16 23:08:17 +02:00
J. Nick Koston 682187541f
Move BluetoothServiceInfoBleak to home_assistant_bluetooth (#82064) 2022-11-15 14:00:52 -06:00
Franck Nijhof 7556f2b84e
Update cryptography to 38.0.3 (#81455) 2022-11-03 11:18:25 +01:00
Franck Nijhof cee7b788d4
Bump version to 2022.12.0dev0 (#81044) 2022-10-26 23:44:38 +02:00
Franck Nijhof d65e639f00
Update orjson to 3.8.1 (#81000) 2022-10-26 12:40:15 +02:00
Marc Mueller 8d4c32e106
Update pip constraint to 22.4 (#80383) 2022-10-16 12:01:11 +02:00
J. Nick Koston d12cbab6c4
Bump bleak to 0.19.0 (#80349) 2022-10-15 13:57:23 -04:00
Marc Mueller 647a4ac131
Update typing-extensions constraint to >=4.4.0 (#79860) 2022-10-08 18:32:46 +03:00
Franck Nijhof 99f4ce9e5a
Bump version to 2022.11.0dev0 (#79224) 2022-09-28 21:51:06 +02:00
Paulus Schoutsen f41b69e19e
Bump cryptography to 38 (#79067) 2022-09-25 17:39:42 -04:00
Franck Nijhof a81bb10ff9
Update yarl to 1.8.1 (#78866) 2022-09-21 13:59:42 +02:00
Franck Nijhof 774d5138ca
Update PyJWT to 2.5.0 (#78776) 2022-09-20 20:17:49 +02:00
Joakim Sørensen a38d998000
Bump awesomeversion from 22.8.0 to 22.9.0 (#78525) 2022-09-15 14:05:34 +02:00
Paulus Schoutsen 8dda2389c8
2022.10.0.dev0 (#77635) 2022-09-01 07:01:10 +02:00
Joakim Sørensen 0caf998547
Bump awesomeversion from 22.6.0 to 22.8.0 (#77436) 2022-08-28 14:52:23 -04:00
Franck Nijhof b4323108b1
Update cryptography to 37.0.4 (#76853) 2022-08-17 09:41:50 +02:00
Franck Nijhof 33bf94c4b2
Update orjson to 3.7.11 (#76171) 2022-08-04 22:37:57 +03:00
Franck Nijhof 7659555ce5
Bump version to 2022.9.0dev0 (#75818) 2022-07-27 15:55:52 +02:00
Marc Mueller c0e6852077
Update pip version range to 22.3 (#75572) 2022-07-24 21:11:30 +02:00
Franck Nijhof 2db8b154c9
Update orjson to 3.7.8 (#75484) 2022-07-20 11:39:07 +02:00
J. Nick Koston ba8a530d19
Use shared bluetooth models for BluetoothServiceInfo (#75322) 2022-07-16 21:14:23 -07:00
Franck Nijhof d697bb53c5
Update lru-dict to 1.1.8 (#74932) 2022-07-11 00:11:43 +02:00
Paulus Schoutsen 010b18be34
Bump atomicwrites (#74758) 2022-07-08 14:17:56 -07:00
Franck Nijhof 4261595078
Update orjson to 3.7.7 (#74581) 2022-07-07 11:00:34 +02:00
J. Nick Koston 332cf3cd2d
Resolve and caches paths for CachingStaticResource in the executor (#74474) 2022-07-06 13:49:48 -05:00
Ville Skyttä dd6725b80a
Replace pylint-strict-informational with fail-on=I (#74311)
`fail-on` is available since pylint 2.9.0.

https://pylint.pycqa.org/en/latest/user_guide/configuration/all-options.html#fail-on
https://github.com/PyCQA/pylint/issues/3251#issuecomment-1170941337

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-04 23:04:56 +02:00
Franck Nijhof 42533ebbb3
Update requests to 2.28.1 (#74210) 2022-06-29 20:40:58 -05:00
Franck Nijhof fe68c15a4a
Bump version to 2022.8.0dev0 (#74184) 2022-06-29 21:20:57 +03:00
J. Nick Koston df357962b3
Bump orjson to 3.7.5 (#74083) 2022-06-27 21:59:08 -07:00
Joakim Sørensen a94579107c
Bump awesomeversion from 22.5.2 to 22.6.0 (#74030) 2022-06-27 11:38:40 +02:00
J. Nick Koston 8b067e83f7
Initial orjson support take 3 (#73849)
* Initial orjson support take 2

Still need to work out problem building wheels

--

Redux of #72754 / #32153 Now possible since the following is solved:
ijl/orjson#220 (comment)

This implements orjson where we use our default encoder.  This does not implement orjson where `ExtendedJSONEncoder` is used as these areas tend to be called far less frequently.  If its desired, this could be done in a followup, but it seemed like a case of diminishing returns (except maybe for large diagnostics files, or traces, but those are not expected to be downloaded frequently).

Areas where this makes a perceptible difference:
- Anything that subscribes to entities (Initial subscribe_entities payload)
- Initial download of registries on first connection / restore
- History queries
- Saving states to the database
- Large logbook queries
- Anything that subscribes to events (appdaemon)

Cavets:
orjson supports serializing dataclasses natively (and much faster) which
eliminates the need to implement `as_dict` in many places
when the data is already in a dataclass. This works
well as long as all the data in the dataclass can also
be serialized. I audited all places where we have an `as_dict`
for a dataclass and found only backups needs to be adjusted (support for `Path` needed to be added for backups).  I was a little bit worried about `SensorExtraStoredData` with `Decimal` but it all seems to work out from since it converts it before it gets to the json encoding cc @dgomes

If it turns out to be a problem we can disable this
with option |= [orjson.OPT_PASSTHROUGH_DATACLASS](https://github.com/ijl/orjson#opt_passthrough_dataclass) and it
will fallback to `as_dict`

Its quite impressive for history queries
<img width="1271" alt="Screen_Shot_2022-05-30_at_23_46_30" src="https://user-images.githubusercontent.com/663432/171145699-661ad9db-d91d-4b2d-9c1a-9d7866c03a73.png">

* use for views as well

* handle UnicodeEncodeError

* tweak

* DRY

* DRY

* not needed

* fix tests

* Update tests/components/http/test_view.py

* Update tests/components/http/test_view.py

* black

* templates
2022-06-22 21:59:51 +02:00
Franck Nijhof 99db2a5afe
Update requests to 2.28.0 (#73406)
* Update requests to 2.28.0

* Fix mypy warning

* Fix Facebook messenger tests
2022-06-14 12:21:32 +02:00
Marc Mueller 983a76a91c
Update pylint to 2.14.0 (#73119) 2022-06-06 21:43:47 +02:00
J. Nick Koston c365454afb
Revert "Initial orjson support (#72754)" (#72789)
This was causing the wheels to fail to build. We need
to workout why when we don't have release pressure

This reverts commit d9d22a9556.
2022-05-31 13:51:55 -07:00
J. Nick Koston d9d22a9556
Initial orjson support (#72754) 2022-05-31 12:18:11 -07:00
Joakim Sørensen 9fe4aef4bc
Bump awesomeversion from 22.5.1 to 22.5.2 (#72624) 2022-05-27 14:37:19 -07:00
uvjustin 01b5f98414
Bump httpx to 0.23.0 (#72573)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-05-26 21:20:37 -10:00
Marc Mueller 1ac71455cb
Move remaining metadata to pyproject (#72469) 2022-05-26 02:54:49 +02:00
Marc Mueller d0008683be
Use new project metadata format [PEP 621] (#72422) 2022-05-24 19:01:27 -07:00
Marc Mueller 9b9b553521
Disable no-self-use [pylint] (#70641)
* Disable no-self-use

* Remove disable comments
2022-04-25 07:41:01 -07:00
Marc Mueller 90dab235f7
Update pylint to 2.13.7 (#70381)
* Update pylint to 2.13.7

* Spelling

* Remove old pylint config value

* Code updates
2022-04-21 13:02:52 -07:00
Erik Montnemery 821908ca45
Include threadname and time in pytest logs (#69307)
* Include threadname and time in pytest logs

* Add failing test

* Include the name of the logger

* Revert "Add failing test"

This reverts commit 5dbc137572.
2022-04-05 10:10:16 +02:00
Marc Mueller 53245c6523
Update pylint to 2.13.0 (#68656) 2022-03-25 15:14:48 -07:00
Ville Skyttä 0673e96401
Update black target version to 3.9+ (#65260) 2022-01-30 20:15:50 -08:00
Marc Mueller be5ff87171
Rewrite pylint init-hook (#65193) 2022-01-29 23:47:40 +01:00
Marc Mueller 783e26e8e4
Use isolated build environments (#65145) 2022-01-28 14:09:05 -08:00
epenet 11fa86cc83
Add pylint plugin to enforce type hints (#64313)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-24 13:38:56 +01:00
Marc Mueller 2d2944d186
Enable deprecated-typing-alias check [pylint] (#63935) 2022-01-12 13:53:34 +01:00
Marc Mueller f3bc9fc740
Update Python version used for pylint (#63895) 2022-01-11 13:41:57 +01:00
Marc Mueller 25f8d4a189
Upgrade pylint to 2.12.1 (#60375) 2021-11-26 00:13:27 +01:00
Marc Mueller 48bada5a18
Update pylint to 2.11.1 (#56364) 2021-09-18 13:52:59 +02:00
Marc Mueller f6b162bc39
Add pylint CodeStyle extension (#53147) 2021-07-19 06:57:06 -07:00
Marc Mueller b5cec353cc
Fix pylint issue with stream component c-extension (#52847)
* Rename 'extension-pkg-whitelist' setting to 'extension-pkg-allow-list'
* Add 'av.stream' and 'av.audio.stream'
* Replace 'Any' type hint
2021-07-10 22:58:37 +02:00
Ruslan Sayfutdinov 016abda12e
Pylint plugin to check that relative imports are used (#50937)
* Pylint plugin to check that relative imports are used

* Fix existing sites

* Update description message

* Fix typo
2021-05-22 09:15:30 +01:00
Ruslan Sayfutdinov 0e7409e617
Pylint plugin to check __init__ return type (#50868)
* Pylint plugin to check __init__ return type

* Support *args add **kwargs, type hints

* Use 'in' instead of 'any()'

* Fix last few places
2021-05-20 18:00:10 +01:00
Marc Mueller f1d48ddfe3
Update pylint to 2.8.0 (#49637) 2021-04-24 14:39:24 -10:00
Marc Mueller 2956eb0902
Update pylint to 2.7.3 (#48488)
* Update pylint to 2.7.3

* Add class-const-naming-style

* Remove unused-import message

* Additional cleanup
2021-03-29 18:02:56 -10:00
J. Nick Koston c820dd4cb5
Have pylint warn when user visible log messages do not start with capital letter or end with a period (#48064)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-03-19 09:26:36 -05:00
Franck Nijhof a2b13785c2
Restore pylint concurrency (#47221) 2021-03-01 13:40:46 +01:00
Ville Skyttä 43474762b2
Drop remaining Python < 3.8 support (#44743)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-01-04 11:47:29 +01:00
Ville Skyttä 0444f3de14
Move isort, pylint, and pytest configs to pyproject.toml (#40335) 2020-10-06 11:26:48 +02:00
Ville Skyttä 445fd15f76 Drop Python 3.6 support (#29978) 2019-12-16 07:29:19 +01:00
Paulus Schoutsen da05dfe708 Add Black 2019-07-31 12:23:23 -07:00