Skip to content

Commit

Permalink
Method to dump everything to file. Simpler way to debug if issues are…
Browse files Browse the repository at this point in the history
… present
  • Loading branch information
Woyken committed Jan 29, 2024
1 parent 3b65e37 commit 5d07e45
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@
package_dir={"": "src"},
packages=setuptools.find_packages(where="src"),
url="https://github.com/Woyken/py-electrolux-ocp",
version="0.0.6",
version="0.0.7",
zip_safe=False,
)
63 changes: 62 additions & 1 deletion src/pyelectroluxocp/oneAppApi.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import asyncio
from json import dumps
from json import dump, dumps
from types import TracebackType
from typing import Any, Callable, Dict, Optional, Type
from aiohttp import ClientSession
Expand Down Expand Up @@ -203,6 +203,67 @@ async def async_impl():

await self.connect_websocket(appliance_ids)

async def debug_dump_everything_to_files(
self, export_location: Optional[str] = None
):
"""DEBUG, Fetch everything and dump to temporary files. Default export location: ~/py-electrolux-ocp-dump/..."""
from pathlib import Path

home = Path.home() if export_location is None else Path(export_location)
dump_path = home.joinpath("py-electrolux-ocp-dump")
from shutil import rmtree

rmtree(dump_path, ignore_errors=True)
dump_path.mkdir(exist_ok=True)

user_metadata = await self.get_user_metadata()
with open(dump_path.joinpath("userMetadata.json"), "w", encoding="utf-8") as f:
dump(user_metadata, f, ensure_ascii=False, indent=4)

appliances_list = await self.get_appliances_list(True)
with open(
dump_path.joinpath("appliancesList.json"), "w", encoding="utf-8"
) as f:
dump(appliances_list, f, ensure_ascii=False, indent=4)

appliances_info = await self.get_appliances_info(
[x["applianceId"] for x in appliances_list]
)
with open(
dump_path.joinpath("appliancesInfo.json"), "w", encoding="utf-8"
) as f:
dump(appliances_info, f, ensure_ascii=False, indent=4)

for appliance in appliances_list:
import base64

appliance_id_folder_name = base64.urlsafe_b64encode(
appliance["applianceId"].encode()
).decode()
dump_path_appliance = dump_path.joinpath(appliance_id_folder_name)
dump_path_appliance.mkdir(exist_ok=True)
appliance_capabilities = await self.get_appliance_capabilities(
appliance["applianceId"]
)
with open(
dump_path_appliance.joinpath("applianceCapabilities.json"),
"w",
encoding="utf-8",
) as f:
dump(appliance_capabilities, f, ensure_ascii=False, indent=4)

appliance_state = await self.get_appliance_status(
appliance["applianceId"], True
)
with open(
dump_path_appliance.joinpath("applianceState.json"),
"w",
encoding="utf-8",
) as f:
dump(appliance_state, f, ensure_ascii=False, indent=4)

print("DUMP generated at", dump_path)

async def close(self) -> None:
"""Dispose session and dependencies"""
if self._gigya_client:
Expand Down

0 comments on commit 5d07e45

Please sign in to comment.