44from typing import Any
55from .const import DOMAIN
66import json
7+ from pathlib import Path
78
89class ConfigFolderNotificationInfoStorage (INotificationInfoStorage ):
910 def __init__ (self , hass : HomeAssistant , entry : ConfigEntry ):
10- self .__credentialsFileName = hass .config .path (f'.{ DOMAIN } ' , entry .entry_id , 'credentials.json' )
11- self .__persistentIdsFileName = hass .config .path (f'.{ DOMAIN } ' , entry .entry_id , 'persistent_ids.txt' )
11+ self .__credentialsFileName = Path (hass .config .path (f'.{ DOMAIN } ' , entry .entry_id , 'credentials.json' ))
12+ self .__persistentIdsFileName = Path (hass .config .path (f'.{ DOMAIN } ' , entry .entry_id , 'persistent_ids.txt' ))
13+
14+ self .__credentialsFileName .mkdir (parents = True , exist_ok = True )
15+ self .__credentialsFileName .touch (exist_ok = True )
16+ self .__persistentIdsFileName .mkdir (parents = True , exist_ok = True )
17+ self .__persistentIdsFileName .touch (exist_ok = True )
1218
1319 def retrieveCredentials (self ) -> dict [str , dict [str , Any ]] | None :
1420 try :
@@ -18,7 +24,7 @@ def retrieveCredentials(self) -> dict[str, dict[str, Any]] | None:
1824 return None
1925
2026 def storeCredentials (self , credentials : dict [str , dict [str , Any ]]):
21- with open (self .__credentialsFileName , "w+ " ) as f :
27+ with open (self .__credentialsFileName , "w" ) as f :
2228 json .dump (credentials , f )
2329
2430 def retrievePersistentIds (self ) -> list [str ] | None :
@@ -29,5 +35,5 @@ def retrievePersistentIds(self) -> list[str] | None:
2935 return None
3036
3137 def storePersistentId (self , persistentId : str ):
32- with open (self .__persistentIdsFileName , "a+ " ) as f :
38+ with open (self .__persistentIdsFileName , "a" ) as f :
3339 f .write (persistentId + "\n " )
0 commit comments