PyPlumIO 0.5.38__tar.gz → 0.5.39__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. {pyplumio-0.5.38 → pyplumio-0.5.39}/.pre-commit-config.yaml +2 -2
  2. {pyplumio-0.5.38 → pyplumio-0.5.39}/PKG-INFO +9 -8
  3. {pyplumio-0.5.38 → pyplumio-0.5.39}/PyPlumIO.egg-info/PKG-INFO +9 -8
  4. {pyplumio-0.5.38 → pyplumio-0.5.39}/PyPlumIO.egg-info/requires.txt +6 -6
  5. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/_version.py +2 -2
  6. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyproject.toml +6 -7
  7. {pyplumio-0.5.38 → pyplumio-0.5.39}/requirements.txt +1 -1
  8. pyplumio-0.5.39/requirements_test.txt +11 -0
  9. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_schedule.py +3 -3
  10. pyplumio-0.5.38/requirements_test.txt +0 -11
  11. {pyplumio-0.5.38 → pyplumio-0.5.39}/.gitattributes +0 -0
  12. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/CODE_OF_CONDUCT.md +0 -0
  13. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  14. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  15. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/dependabot.yml +0 -0
  16. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/workflows/ci.yml +0 -0
  17. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/workflows/codeql-analysis.yml +0 -0
  18. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/workflows/deploy.yml +0 -0
  19. {pyplumio-0.5.38 → pyplumio-0.5.39}/.github/workflows/documentation.yml +0 -0
  20. {pyplumio-0.5.38 → pyplumio-0.5.39}/.gitignore +0 -0
  21. {pyplumio-0.5.38 → pyplumio-0.5.39}/.vscode/settings.json +0 -0
  22. {pyplumio-0.5.38 → pyplumio-0.5.39}/LICENSE +0 -0
  23. {pyplumio-0.5.38 → pyplumio-0.5.39}/MANIFEST.in +0 -0
  24. {pyplumio-0.5.38 → pyplumio-0.5.39}/PyPlumIO.egg-info/SOURCES.txt +0 -0
  25. {pyplumio-0.5.38 → pyplumio-0.5.39}/PyPlumIO.egg-info/dependency_links.txt +0 -0
  26. {pyplumio-0.5.38 → pyplumio-0.5.39}/PyPlumIO.egg-info/top_level.txt +0 -0
  27. {pyplumio-0.5.38 → pyplumio-0.5.39}/README.md +0 -0
  28. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/Makefile +0 -0
  29. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/make.bat +0 -0
  30. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/callbacks.rst +0 -0
  31. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/conf.py +0 -0
  32. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/connecting.rst +0 -0
  33. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/frames.rst +0 -0
  34. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/index.rst +0 -0
  35. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/mixers_thermostats.rst +0 -0
  36. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/protocol.rst +0 -0
  37. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/reading.rst +0 -0
  38. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/schedules.rst +0 -0
  39. {pyplumio-0.5.38 → pyplumio-0.5.39}/docs/source/writing.rst +0 -0
  40. {pyplumio-0.5.38 → pyplumio-0.5.39}/images/ecomax.png +0 -0
  41. {pyplumio-0.5.38 → pyplumio-0.5.39}/images/rs485.png +0 -0
  42. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/__init__.py +0 -0
  43. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/__main__.py +0 -0
  44. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/connection.py +0 -0
  45. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/const.py +0 -0
  46. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/devices/__init__.py +0 -0
  47. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/devices/ecomax.py +0 -0
  48. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/devices/ecoster.py +0 -0
  49. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/devices/mixer.py +0 -0
  50. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/devices/thermostat.py +0 -0
  51. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/exceptions.py +0 -0
  52. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/filters.py +0 -0
  53. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/frames/__init__.py +0 -0
  54. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/frames/messages.py +0 -0
  55. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/frames/requests.py +0 -0
  56. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/frames/responses.py +0 -0
  57. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/__init__.py +0 -0
  58. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/data_types.py +0 -0
  59. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/event_manager.py +0 -0
  60. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/factory.py +0 -0
  61. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/parameter.py +0 -0
  62. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/schedule.py +0 -0
  63. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/task_manager.py +0 -0
  64. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/timeout.py +0 -0
  65. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/helpers/uid.py +0 -0
  66. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/protocol.py +0 -0
  67. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/py.typed +0 -0
  68. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/stream.py +0 -0
  69. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/__init__.py +0 -0
  70. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/alerts.py +0 -0
  71. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/boiler_load.py +0 -0
  72. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/boiler_power.py +0 -0
  73. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/ecomax_parameters.py +0 -0
  74. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/fan_power.py +0 -0
  75. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/frame_versions.py +0 -0
  76. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/fuel_consumption.py +0 -0
  77. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/fuel_level.py +0 -0
  78. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/lambda_sensor.py +0 -0
  79. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/mixer_parameters.py +0 -0
  80. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/mixer_sensors.py +0 -0
  81. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/modules.py +0 -0
  82. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/network_info.py +0 -0
  83. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/output_flags.py +0 -0
  84. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/outputs.py +0 -0
  85. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/pending_alerts.py +0 -0
  86. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/product_info.py +0 -0
  87. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/program_version.py +0 -0
  88. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/regulator_data.py +0 -0
  89. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/regulator_data_schema.py +0 -0
  90. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/schedules.py +0 -0
  91. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/statuses.py +0 -0
  92. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/temperatures.py +0 -0
  93. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/thermostat_parameters.py +0 -0
  94. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/structures/thermostat_sensors.py +0 -0
  95. {pyplumio-0.5.38 → pyplumio-0.5.39}/pyplumio/utils.py +0 -0
  96. {pyplumio-0.5.38 → pyplumio-0.5.39}/requirements_docs.txt +0 -0
  97. {pyplumio-0.5.38 → pyplumio-0.5.39}/setup.cfg +0 -0
  98. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/__init__.py +0 -0
  99. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/conftest.py +0 -0
  100. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/frames/test_init.py +0 -0
  101. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/frames/test_messages.py +0 -0
  102. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/frames/test_requests.py +0 -0
  103. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/frames/test_responses.py +0 -0
  104. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/__init__.py +0 -0
  105. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_data_types.py +0 -0
  106. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_event_manager.py +0 -0
  107. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_factory.py +0 -0
  108. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_parameter.py +0 -0
  109. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_task_manager.py +0 -0
  110. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_timeout.py +0 -0
  111. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/helpers/test_uid.py +0 -0
  112. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/ruff.toml +0 -0
  113. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_connection.py +0 -0
  114. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_devices.py +0 -0
  115. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_filters.py +0 -0
  116. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_init.py +0 -0
  117. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_main.py +0 -0
  118. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_protocol.py +0 -0
  119. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_stream.py +0 -0
  120. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/test_utils.py +0 -0
  121. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/messages/regulator_data.json +0 -0
  122. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/messages/sensor_data.json +0 -0
  123. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/alerts.json +0 -0
  124. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/ecomax_control.json +0 -0
  125. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/ecomax_parameters.json +0 -0
  126. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/mixer_parameters.json +0 -0
  127. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/set_ecomax_parameter.json +0 -0
  128. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/set_mixer_parameter.json +0 -0
  129. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/set_schedule.json +0 -0
  130. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/set_thermostat_parameter.json +0 -0
  131. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/requests/thermostat_parameters.json +0 -0
  132. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/alerts.json +0 -0
  133. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/device_available.json +0 -0
  134. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/ecomax_parameters.json +0 -0
  135. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/mixer_parameters.json +0 -0
  136. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/password.json +0 -0
  137. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/program_version.json +0 -0
  138. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/regulator_data_schema.json +0 -0
  139. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/schedules.json +0 -0
  140. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/thermostat_parameters.json +0 -0
  141. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/responses/uid.json +0 -0
  142. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/unknown/unknown_ecomax_parameter.json +0 -0
  143. {pyplumio-0.5.38 → pyplumio-0.5.39}/tests/testdata/unknown/unknown_mixer_parameter.json +0 -0
@@ -2,7 +2,7 @@
2
2
  # See https://pre-commit.com/hooks.html for more hooks
3
3
  repos:
4
4
  - repo: https://github.com/astral-sh/ruff-pre-commit
5
- rev: v0.9.4
5
+ rev: v0.11.2
6
6
  hooks:
7
7
  - id: ruff
8
8
  args:
@@ -12,6 +12,6 @@ repos:
12
12
  hooks:
13
13
  - id: codespell
14
14
  - repo: https://github.com/pre-commit/mirrors-mypy
15
- rev: v1.14.1
15
+ rev: v1.15.0
16
16
  hooks:
17
17
  - id: mypy
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: PyPlumIO
3
- Version: 0.5.38
3
+ Version: 0.5.39
4
4
  Summary: PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
5
5
  Author-email: Denis Paavilainen <denpa@denpa.pro>
6
6
  License: MIT License
@@ -28,22 +28,23 @@ Requires-Dist: pyserial-asyncio==0.6
28
28
  Requires-Dist: typing-extensions==4.12.2
29
29
  Provides-Extra: test
30
30
  Requires-Dist: codespell==2.4.1; extra == "test"
31
- Requires-Dist: coverage==7.6.12; extra == "test"
31
+ Requires-Dist: coverage==7.8.0; extra == "test"
32
32
  Requires-Dist: mypy==1.15.0; extra == "test"
33
33
  Requires-Dist: pyserial-asyncio-fast==0.14; extra == "test"
34
- Requires-Dist: pytest==8.3.4; extra == "test"
34
+ Requires-Dist: pytest==8.3.5; extra == "test"
35
35
  Requires-Dist: pytest-asyncio==0.25.3; extra == "test"
36
- Requires-Dist: ruff==0.9.6; extra == "test"
37
- Requires-Dist: tox==4.24.1; extra == "test"
38
- Requires-Dist: types-pyserial==3.5.0.20250130; extra == "test"
36
+ Requires-Dist: ruff==0.11.2; extra == "test"
37
+ Requires-Dist: tox==4.24.2; extra == "test"
38
+ Requires-Dist: types-pyserial==3.5.0.20250304; extra == "test"
39
39
  Provides-Extra: docs
40
40
  Requires-Dist: sphinx==8.1.3; extra == "docs"
41
41
  Requires-Dist: sphinx_rtd_theme==3.0.2; extra == "docs"
42
42
  Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "docs"
43
43
  Provides-Extra: dev
44
44
  Requires-Dist: pyplumio[docs,test]; extra == "dev"
45
- Requires-Dist: pre-commit==4.1.0; extra == "dev"
45
+ Requires-Dist: pre-commit==4.2.0; extra == "dev"
46
46
  Requires-Dist: tomli==2.2.1; extra == "dev"
47
+ Dynamic: license-file
47
48
 
48
49
  # PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
49
50
  [![PyPI version](https://badge.fury.io/py/PyPlumIO.svg)](https://badge.fury.io/py/PyPlumIO)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: PyPlumIO
3
- Version: 0.5.38
3
+ Version: 0.5.39
4
4
  Summary: PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
5
5
  Author-email: Denis Paavilainen <denpa@denpa.pro>
6
6
  License: MIT License
@@ -28,22 +28,23 @@ Requires-Dist: pyserial-asyncio==0.6
28
28
  Requires-Dist: typing-extensions==4.12.2
29
29
  Provides-Extra: test
30
30
  Requires-Dist: codespell==2.4.1; extra == "test"
31
- Requires-Dist: coverage==7.6.12; extra == "test"
31
+ Requires-Dist: coverage==7.8.0; extra == "test"
32
32
  Requires-Dist: mypy==1.15.0; extra == "test"
33
33
  Requires-Dist: pyserial-asyncio-fast==0.14; extra == "test"
34
- Requires-Dist: pytest==8.3.4; extra == "test"
34
+ Requires-Dist: pytest==8.3.5; extra == "test"
35
35
  Requires-Dist: pytest-asyncio==0.25.3; extra == "test"
36
- Requires-Dist: ruff==0.9.6; extra == "test"
37
- Requires-Dist: tox==4.24.1; extra == "test"
38
- Requires-Dist: types-pyserial==3.5.0.20250130; extra == "test"
36
+ Requires-Dist: ruff==0.11.2; extra == "test"
37
+ Requires-Dist: tox==4.24.2; extra == "test"
38
+ Requires-Dist: types-pyserial==3.5.0.20250304; extra == "test"
39
39
  Provides-Extra: docs
40
40
  Requires-Dist: sphinx==8.1.3; extra == "docs"
41
41
  Requires-Dist: sphinx_rtd_theme==3.0.2; extra == "docs"
42
42
  Requires-Dist: readthedocs-sphinx-search==0.3.2; extra == "docs"
43
43
  Provides-Extra: dev
44
44
  Requires-Dist: pyplumio[docs,test]; extra == "dev"
45
- Requires-Dist: pre-commit==4.1.0; extra == "dev"
45
+ Requires-Dist: pre-commit==4.2.0; extra == "dev"
46
46
  Requires-Dist: tomli==2.2.1; extra == "dev"
47
+ Dynamic: license-file
47
48
 
48
49
  # PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
49
50
  [![PyPI version](https://badge.fury.io/py/PyPlumIO.svg)](https://badge.fury.io/py/PyPlumIO)
@@ -4,7 +4,7 @@ typing-extensions==4.12.2
4
4
 
5
5
  [dev]
6
6
  pyplumio[docs,test]
7
- pre-commit==4.1.0
7
+ pre-commit==4.2.0
8
8
  tomli==2.2.1
9
9
 
10
10
  [docs]
@@ -14,11 +14,11 @@ readthedocs-sphinx-search==0.3.2
14
14
 
15
15
  [test]
16
16
  codespell==2.4.1
17
- coverage==7.6.12
17
+ coverage==7.8.0
18
18
  mypy==1.15.0
19
19
  pyserial-asyncio-fast==0.14
20
- pytest==8.3.4
20
+ pytest==8.3.5
21
21
  pytest-asyncio==0.25.3
22
- ruff==0.9.6
23
- tox==4.24.1
24
- types-pyserial==3.5.0.20250130
22
+ ruff==0.11.2
23
+ tox==4.24.2
24
+ types-pyserial==3.5.0.20250304
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.5.38'
21
- __version_tuple__ = version_tuple = (0, 5, 38)
20
+ __version__ = version = '0.5.39'
21
+ __version_tuple__ = version_tuple = (0, 5, 39)
@@ -38,14 +38,14 @@ dynamic = ["version"]
38
38
  [project.optional-dependencies]
39
39
  test = [
40
40
  "codespell==2.4.1",
41
- "coverage==7.6.12",
41
+ "coverage==7.8.0",
42
42
  "mypy==1.15.0",
43
43
  "pyserial-asyncio-fast==0.14",
44
- "pytest==8.3.4",
44
+ "pytest==8.3.5",
45
45
  "pytest-asyncio==0.25.3",
46
- "ruff==0.9.6",
47
- "tox==4.24.1",
48
- "types-pyserial==3.5.0.20250130"
46
+ "ruff==0.11.2",
47
+ "tox==4.24.2",
48
+ "types-pyserial==3.5.0.20250304"
49
49
  ]
50
50
  docs = [
51
51
  "sphinx==8.1.3",
@@ -54,7 +54,7 @@ docs = [
54
54
  ]
55
55
  dev = [
56
56
  "pyplumio[test,docs]",
57
- "pre-commit==4.1.0",
57
+ "pre-commit==4.2.0",
58
58
  "tomli==2.2.1"
59
59
  ]
60
60
 
@@ -179,7 +179,6 @@ select = [
179
179
  "S317", # suspicious-xml-sax-usage
180
180
  "S318", # suspicious-xml-mini-dom-usage
181
181
  "S319", # suspicious-xml-pull-dom-usage
182
- "S320", # suspicious-xmle-tree-usage
183
182
  "S601", # paramiko-call
184
183
  "S602", # subprocess-popen-with-shell-equals-true
185
184
  "S604", # call-with-shell-equals-true
@@ -1,3 +1,3 @@
1
1
  dataslots==1.2.0
2
2
  pyserial-asyncio==0.6
3
- typing-extensions==4.12.2
3
+ typing-extensions==4.13.0
@@ -0,0 +1,11 @@
1
+ codespell==2.4.1
2
+ coverage==7.8.0
3
+ mypy==1.15.0
4
+ pre-commit==4.2.0
5
+ pyserial-asyncio-fast==0.14
6
+ pytest-asyncio==0.25.3
7
+ pytest==8.3.5
8
+ ruff==0.11.2
9
+ tomli==2.2.1
10
+ tox==4.24.2
11
+ types-pyserial==3.5.0.20250304
@@ -93,9 +93,9 @@ def test_setting_whole_day_schedule(
93
93
  ) -> None:
94
94
  """Test setting schedule for a whole day."""
95
95
  schedule_day.set_on()
96
- assert schedule_day.schedule == {interval: True for interval in intervals}
96
+ assert schedule_day.schedule == dict.fromkeys(intervals, True)
97
97
  schedule_day.set_off()
98
- assert schedule_day.schedule == {interval: False for interval in intervals}
98
+ assert schedule_day.schedule == dict.fromkeys(intervals, False)
99
99
 
100
100
 
101
101
  def test_setting_schedule_as_iterable(schedule_day: ScheduleDay) -> None:
@@ -114,7 +114,7 @@ def test_setting_schedule_as_iterable(schedule_day: ScheduleDay) -> None:
114
114
 
115
115
  def test_schedule_day_repr(schedule_day: ScheduleDay, intervals: list[Time]) -> None:
116
116
  """Test serializable representation of a schedule day."""
117
- schedule = {interval: False for interval in intervals}
117
+ schedule = dict.fromkeys(intervals, False)
118
118
  assert repr(schedule_day) == (f"ScheduleDay({schedule})")
119
119
 
120
120
 
@@ -1,11 +0,0 @@
1
- codespell==2.4.1
2
- coverage==7.6.12
3
- mypy==1.15.0
4
- pre-commit==4.1.0
5
- pyserial-asyncio-fast==0.14
6
- pytest-asyncio==0.25.3
7
- pytest==8.3.4
8
- ruff==0.9.6
9
- tomli==2.2.1
10
- tox==4.24.1
11
- types-pyserial==3.5.0.20250130
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes