python-rako-2025 0.3.9__tar.gz → 0.3.10__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 (23) hide show
  1. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/PKG-INFO +1 -1
  2. python_rako_2025-0.3.10/python_rako/__version__.py +1 -0
  3. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/bridge.py +5 -3
  4. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako_2025.egg-info/PKG-INFO +1 -1
  5. python_rako_2025-0.3.9/python_rako/__version__.py +0 -1
  6. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/LICENSE +0 -0
  7. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/README.md +0 -0
  8. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/pyproject.toml +0 -0
  9. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/__init__.py +0 -0
  10. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/const.py +0 -0
  11. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/exceptions.py +0 -0
  12. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/helpers.py +0 -0
  13. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/model.py +0 -0
  14. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako/py.typed +0 -0
  15. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako_2025.egg-info/SOURCES.txt +0 -0
  16. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako_2025.egg-info/dependency_links.txt +0 -0
  17. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako_2025.egg-info/requires.txt +0 -0
  18. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/python_rako_2025.egg-info/top_level.txt +0 -0
  19. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/setup.cfg +0 -0
  20. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/setup.py +0 -0
  21. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/tests/test_bridge.py +0 -0
  22. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/tests/test_helpers.py +0 -0
  23. {python_rako_2025-0.3.9 → python_rako_2025-0.3.10}/tests/test_model.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-rako-2025
3
- Version: 0.3.9
3
+ Version: 0.3.10
4
4
  Summary: Asynchronous Python client for Rako Controls Lighting
5
5
  Author-email: Simon Leigh <simonleigh@users.noreply.github.com>
6
6
  Project-URL: Homepage, https://github.com/simonleigh/python-rako
@@ -0,0 +1 @@
1
+ 0.3.10
@@ -153,6 +153,7 @@ class Bridge:
153
153
  self.level_cache: LevelCache = LevelCache()
154
154
  self.scene_cache: SceneCache = SceneCache()
155
155
  self._cached_xml: str | None = None
156
+ self._xml_fetch_lock = asyncio.Lock()
156
157
 
157
158
  @property
158
159
  def _discovery_url(self) -> str:
@@ -161,9 +162,10 @@ class Bridge:
161
162
  async def get_rako_xml(
162
163
  self, session: aiohttp.ClientSession, force_refresh: bool = False
163
164
  ) -> str:
164
- if self._cached_xml is None or force_refresh:
165
- async with session.get(self._discovery_url) as response:
166
- self._cached_xml = await response.text()
165
+ async with self._xml_fetch_lock:
166
+ if self._cached_xml is None or force_refresh:
167
+ async with session.get(self._discovery_url) as response:
168
+ self._cached_xml = await response.text()
167
169
  assert self._cached_xml is not None
168
170
  return self._cached_xml
169
171
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-rako-2025
3
- Version: 0.3.9
3
+ Version: 0.3.10
4
4
  Summary: Asynchronous Python client for Rako Controls Lighting
5
5
  Author-email: Simon Leigh <simonleigh@users.noreply.github.com>
6
6
  Project-URL: Homepage, https://github.com/simonleigh/python-rako
@@ -1 +0,0 @@
1
- 0.3.9