python-bsblan 1.2.0__tar.gz → 1.2.2__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.
@@ -1,8 +1,7 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: python-bsblan
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: Asynchronous Python client for BSBLAN API
5
- Home-page: https://github.com/liudger/python-bsblan
6
5
  License: MIT
7
6
  Keywords: bsblan,thermostat,client,api,async
8
7
  Author: Willem-Jan van Rootselaar
@@ -30,6 +29,7 @@ Requires-Dist: yarl (>=1.7.2)
30
29
  Project-URL: Bug Tracker, https://github.com/liudger/python-bsblan/issues
31
30
  Project-URL: Changelog, https://github.com/liudger/python-bsblan/releases
32
31
  Project-URL: Documentation, https://github.com/liudger/python-bsblan
32
+ Project-URL: Homepage, https://github.com/liudger/python-bsblan
33
33
  Project-URL: Repository, https://github.com/liudger/python-bsblan
34
34
  Description-Content-Type: text/markdown
35
35
 
@@ -172,13 +172,14 @@ Thank you for being involved! :heart_eyes:
172
172
 
173
173
  ## Setting up development environment
174
174
 
175
- This Python project is fully managed using the [Poetry][poetry] dependency manager. But also relies on the use of NodeJS for certain checks during development.
175
+ This Python project is fully managed using the [Poetry][poetry] dependency manager.
176
+ But also relies on the use of NodeJS for certain checks during development.
176
177
 
177
178
  You need at least:
178
179
 
179
180
  - Python 3.12+
180
181
  - [Poetry][poetry-install]
181
- - NodeJS 16+ (including NPM)
182
+ - NodeJS 22.14.0+ (including NPM)
182
183
 
183
184
  To install all packages, including all development requirements:
184
185
 
@@ -213,7 +214,7 @@ check [the contributor's page][contributors].
213
214
 
214
215
  MIT License
215
216
 
216
- Copyright (c) 2023-2024 WJ van Rootselaar
217
+ Copyright (c) 2023-2025 WJ van Rootselaar
217
218
 
218
219
  Permission is hereby granted, free of charge, to any person obtaining a copy
219
220
  of this software and associated documentation files (the "Software"), to deal
@@ -238,14 +239,14 @@ SOFTWARE.
238
239
  [build]: https://github.com/liudger/python-bsblan/actions
239
240
  [buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg
240
241
  [buymeacoffee]: https://www.buymeacoffee.com/liudger
241
- [codecov-shield]: https://codecov.io/gh/liudger/python-bsblan/branch/Dev/graph/badge.svg?token=ypos87GGxv
242
+ [codecov-shield]: https://codecov.io/gh/liudger/python-bsblan/branch/main/graph/badge.svg?token=ypos87GGxv
242
243
  [codecov]: https://codecov.io/gh/liudger/python-bsblan
243
244
  [contributors]: https://github.com/liudger/python-bsblan/graphs/contributors
244
245
  [frenck]: https://github.com/frenck
245
246
  [keepchangelog]: http://keepachangelog.com/en/1.0.0/
246
247
  [license-shield]: https://img.shields.io/badge/license-MIT-blue.svg
247
248
  [liudger]: https://github.com/liudger
248
- [maintenance-shield]: https://img.shields.io/maintenance/yes/2024.svg
249
+ [maintenance-shield]: https://img.shields.io/maintenance/yes/2025.svg
249
250
  [poetry]: https://python-poetry.org
250
251
  [poetry-install]: https://python-poetry.org/docs/#installation
251
252
  [pre-commit]: https://pre-commit.com/
@@ -137,13 +137,14 @@ Thank you for being involved! :heart_eyes:
137
137
 
138
138
  ## Setting up development environment
139
139
 
140
- This Python project is fully managed using the [Poetry][poetry] dependency manager. But also relies on the use of NodeJS for certain checks during development.
140
+ This Python project is fully managed using the [Poetry][poetry] dependency manager.
141
+ But also relies on the use of NodeJS for certain checks during development.
141
142
 
142
143
  You need at least:
143
144
 
144
145
  - Python 3.12+
145
146
  - [Poetry][poetry-install]
146
- - NodeJS 16+ (including NPM)
147
+ - NodeJS 22.14.0+ (including NPM)
147
148
 
148
149
  To install all packages, including all development requirements:
149
150
 
@@ -178,7 +179,7 @@ check [the contributor's page][contributors].
178
179
 
179
180
  MIT License
180
181
 
181
- Copyright (c) 2023-2024 WJ van Rootselaar
182
+ Copyright (c) 2023-2025 WJ van Rootselaar
182
183
 
183
184
  Permission is hereby granted, free of charge, to any person obtaining a copy
184
185
  of this software and associated documentation files (the "Software"), to deal
@@ -203,14 +204,14 @@ SOFTWARE.
203
204
  [build]: https://github.com/liudger/python-bsblan/actions
204
205
  [buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg
205
206
  [buymeacoffee]: https://www.buymeacoffee.com/liudger
206
- [codecov-shield]: https://codecov.io/gh/liudger/python-bsblan/branch/Dev/graph/badge.svg?token=ypos87GGxv
207
+ [codecov-shield]: https://codecov.io/gh/liudger/python-bsblan/branch/main/graph/badge.svg?token=ypos87GGxv
207
208
  [codecov]: https://codecov.io/gh/liudger/python-bsblan
208
209
  [contributors]: https://github.com/liudger/python-bsblan/graphs/contributors
209
210
  [frenck]: https://github.com/frenck
210
211
  [keepchangelog]: http://keepachangelog.com/en/1.0.0/
211
212
  [license-shield]: https://img.shields.io/badge/license-MIT-blue.svg
212
213
  [liudger]: https://github.com/liudger
213
- [maintenance-shield]: https://img.shields.io/maintenance/yes/2024.svg
214
+ [maintenance-shield]: https://img.shields.io/maintenance/yes/2025.svg
214
215
  [poetry]: https://python-poetry.org
215
216
  [poetry-install]: https://python-poetry.org/docs/#installation
216
217
  [pre-commit]: https://pre-commit.com/
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-bsblan"
3
- version = "1.2.0"
3
+ version = "1.2.2"
4
4
  description = "Asynchronous Python client for BSBLAN API"
5
5
  authors = ["Willem-Jan van Rootselaar <liudgervr@gmail.com>"]
6
6
  maintainers = ["Willem-Jan van Rootselaar <liudgervr@gmail.com>"]
@@ -39,22 +39,22 @@ orjson = "^3.9.10"
39
39
  "Bug Tracker" = "https://github.com/liudger/python-bsblan/issues"
40
40
  Changelog = "https://github.com/liudger/python-bsblan/releases"
41
41
 
42
- [tool.poetry.dev-dependencies]
42
+ [tool.poetry.group.dev.dependencies]
43
43
  covdefaults = "^2.3.0"
44
44
  ruff = "^0.7.0"
45
45
  aresponses = "^3.0.0"
46
- black = "^24.0.0"
46
+ black = "^25.0.0"
47
47
  blacken-docs = "^1.13.0"
48
48
  coverage = "^7.0.5"
49
49
  flake8 = "^7.0.0"
50
- isort = "^5.11.4"
50
+ isort = "^6.0.0"
51
51
  mypy = "^1.0.0"
52
52
  pre-commit = "^4.0.0"
53
53
  pre-commit-hooks = "^5.0.0"
54
54
  pylint = "^3.0.0"
55
55
  pytest = "^8.0.0"
56
- pytest-asyncio = "^0.24.0"
57
- pytest-cov = "^5.0.0"
56
+ pytest-asyncio = "^0.25.0"
57
+ pytest-cov = "^6.0.0"
58
58
  yamllint = "^1.29.0"
59
59
  pyupgrade = "^3.3.1"
60
60
  flake8-simplify = "^0.21.0"
@@ -148,8 +148,8 @@ asyncio_mode = "auto"
148
148
  [tool.ruff.lint]
149
149
  select = ["ALL"]
150
150
  ignore = [
151
- "ANN101", # Self... explanatory
152
- "ANN102", # cls... Not classy enough
151
+ "ANN001", # Self... explanatory
152
+ "ANN002", # cls... Not classy enough
153
153
  "ANN401", # Opinioated warning on disallowing dynamically typed expressions
154
154
  "D203", # Conflicts with other rules
155
155
  "D213", # Conflicts with other rules
@@ -222,16 +222,20 @@ class BSBLAN:
222
222
  self._temperature_unit = "°C"
223
223
  else:
224
224
  self._temperature_unit = "°F"
225
+ logger.debug("Temperature unit: %s", self._temperature_unit)
225
226
 
226
- async def get_temperature_unit(self) -> str:
227
+ @property
228
+ def get_temperature_unit(self) -> str:
227
229
  """Get the unit of temperature.
228
230
 
229
231
  Returns:
230
- str: The unit of temperature.
232
+ str: The unit of temperature (°C or °F).
233
+
234
+ Note:
235
+ This property assumes the client has been initialized. If accessed before
236
+ initialization, it will return the default unit (°C).
231
237
 
232
238
  """
233
- if self._temperature_unit is None:
234
- await self._initialize_temperature_range()
235
239
  return self._temperature_unit
236
240
 
237
241
  async def _initialize_api_data(self) -> APIConfig: