Skip to content

Commit 49bdc95

Browse files
committed
Make cache_folder_create a local variable
1 parent 5b56512 commit 49bdc95

3 files changed

Lines changed: 31 additions & 42 deletions

File tree

plugwise_usb/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,10 @@ async def initialize(self, create_root_cache_folder: bool = False) -> None:
274274
if self._network is None:
275275
self._network = StickNetwork(self._controller)
276276
self._network.cache_folder = self._cache_folder
277+
self._network.cache_folder_create = create_root_cache_folder
277278
self._network.cache_enabled = self._cache_enabled
278279
if self._cache_enabled:
279-
await self._network.initialize_cache(create_root_cache_folder)
280+
await self._network.initialize_cache()
280281

281282
@raise_not_connected
282283
@raise_not_initialized

plugwise_usb/network/__init__.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def __init__(
6363

6464
self._cache_folder: str = ""
6565
self._cache_enabled: bool = False
66+
self._cache_folder_create = False
6667

6768
self._discover: bool = False
6869
self._nodes: dict[str, PlugwiseNode] = {}
@@ -103,11 +104,21 @@ def cache_folder(self, cache_folder: str) -> None:
103104
for node in self._nodes.values():
104105
node.cache_folder = cache_folder
105106

106-
async def initialize_cache(self, create_root_folder: bool = False) -> None:
107+
@property
108+
def cache_folder_create(self) -> bool:
109+
"""Return if cache folder must be create when it does not exists."""
110+
return self._cache_folder_create
111+
112+
@cache_folder_create.setter
113+
def cache_folder_create(self, enable: bool = True) -> None:
114+
"""Enable or disable creation of cache folder."""
115+
self._cache_folder_create = enable
116+
117+
async def initialize_cache(self) -> None:
107118
"""Initialize the cache folder."""
108119
if not self._cache_enabled:
109120
raise CacheError("Unable to initialize cache, enable cache first.")
110-
await self._register.initialize_cache(create_root_folder)
121+
await self._register.initialize_cache(self._cache_folder_create)
111122

112123
@property
113124
def controller_active(self) -> bool:
@@ -362,6 +373,7 @@ def _create_node_object(
362373
self._cache_folder,
363374
)
364375
self._nodes[mac].cache_folder = self._cache_folder
376+
self._nodes[mac].cache_folder_create = self._cache_folder_create
365377
self._nodes[mac].cache_enabled = True
366378

367379
async def get_node_details(

plugwise_usb/nodes/__init__.py

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,9 @@ def __init__(
6565
self._mac_in_bytes = bytes(mac, encoding=UTF8)
6666
self._mac_in_str = mac
6767
self._send = controller.send
68-
self._node_cache: NodeCache | None = None
6968
self._cache_enabled: bool = False
70-
self._cache_folder: str = ""
7169
self._cache_save_task: Task | None = None
70+
self._node_cache = NodeCache("")
7271

7372
# Sensors
7473
self._available: bool = False
@@ -116,19 +115,22 @@ def network_address(self) -> int:
116115
@property
117116
def cache_folder(self) -> str:
118117
"""Return path to cache folder."""
119-
return self._cache_folder
118+
return self._node_cache.cache_root_directory
120119

121120
@cache_folder.setter
122121
def cache_folder(self, cache_folder: str) -> None:
123122
"""Set path to cache folder."""
124-
if cache_folder == self._cache_folder:
125-
return
126-
self._cache_folder = cache_folder
127-
if self._cache_enabled:
128-
if self._node_cache is None:
129-
self._node_cache = NodeCache(self._cache_folder)
130-
else:
131-
self._node_cache.cache_root_directory = cache_folder
123+
self._node_cache.cache_root_directory = cache_folder
124+
125+
@property
126+
def cache_folder_create(self) -> bool:
127+
"""Return if cache folder must be create when it does not exists."""
128+
return self._cache_folder_create
129+
130+
@cache_folder_create.setter
131+
def cache_folder_create(self, enable: bool = True) -> None:
132+
"""Enable or disable creation of cache folder."""
133+
self._cache_folder_create = enable
132134

133135
@property
134136
def cache_enabled(self) -> bool:
@@ -138,15 +140,6 @@ def cache_enabled(self) -> bool:
138140
@cache_enabled.setter
139141
def cache_enabled(self, enable: bool) -> None:
140142
"""Enable or disable usage of cache."""
141-
if enable == self._cache_enabled:
142-
return
143-
if enable:
144-
if self._node_cache is None:
145-
self._node_cache = NodeCache(self.mac, self._cache_folder)
146-
else:
147-
self._node_cache.cache_root_directory = self._cache_folder
148-
else:
149-
self._node_cache = None
150143
self._cache_enabled = enable
151144

152145
@property
@@ -389,14 +382,8 @@ async def _load_cache_file(self) -> bool:
389382
self.mac,
390383
)
391384
return False
392-
if self._node_cache is None:
393-
_LOGGER.warning(
394-
"Unable to load node %s from cache because cache configuration is not loaded",
395-
self.mac,
396-
)
397-
return False
398385
if not self._node_cache.initialized:
399-
await self._node_cache.initialize_cache()
386+
await self._node_cache.initialize_cache(self._cache_folder_create)
400387
return await self._node_cache.restore_cache()
401388

402389
async def clear_cache(self) -> None:
@@ -623,20 +610,14 @@ async def unload(self) -> None:
623610

624611
def _get_cache(self, setting: str) -> str | None:
625612
"""Retrieve value of specified setting from cache memory."""
626-
if not self._cache_enabled or self._node_cache is None:
613+
if not self._cache_enabled:
627614
return None
628615
return self._node_cache.get_state(setting)
629616

630617
def _set_cache(self, setting: str, value: Any) -> None:
631618
"""Store setting with value in cache memory."""
632619
if not self._cache_enabled:
633620
return
634-
if self._node_cache is None:
635-
_LOGGER.warning(
636-
"Failed to update '%s' in cache because cache is not initialized yet",
637-
setting
638-
)
639-
return
640621
if isinstance(value, datetime):
641622
self._node_cache.add_state(
642623
setting,
@@ -652,11 +633,6 @@ async def save_cache(self, trigger_only: bool = True, full_write: bool = False)
652633
"""Save current cache to cache file."""
653634
if not self._cache_enabled or not self._loaded or not self._initialized:
654635
return
655-
if self._node_cache is None:
656-
_LOGGER.warning(
657-
"Failed to save cache to disk because cache is not initialized yet"
658-
)
659-
return
660636
_LOGGER.debug("Save cache file for node %s", self.mac)
661637
if self._cache_save_task is not None and not self._cache_save_task.done():
662638
await self._cache_save_task

0 commit comments

Comments
 (0)