Skip to content

Commit bd74915

Browse files
committed
new: dump functions are separate files now
1 parent 9dc5a3b commit bd74915

4 files changed

Lines changed: 134 additions & 0 deletions

File tree

src/util/dump_functions/json.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import os
2+
import json
3+
from src.managers.devicemanager import DeviceManager
4+
from src.error.logger import Logger
5+
6+
def dump_json(dm, dir, logger):
7+
data = None
8+
9+
if not isinstance(dm, DeviceManager):
10+
raise TypeError("Parameter 'dm' is not of type 'DeviceManager'!")
11+
12+
if not os.path.isdir(dir):
13+
raise ValueError("Parameter 'dir' is not a valid directory!")
14+
15+
if not isinstance(logger, Logger):
16+
raise TypeError("Parameter 'logger' is not of type 'Logger'!")
17+
18+
try:
19+
with open(os.path.join(dir, "info_dump.json"), "w") as _json:
20+
_json.write(json.dumps(
21+
dm.info, indent=4, sort_keys=False))
22+
_json.close()
23+
logger.info(
24+
f'Successfully dumped "info_dump.json" into "{dir}"', __file__
25+
)
26+
27+
data = f'Successfully dumped "info_dump.json" into "{dir}"\n'
28+
except Exception as e:
29+
logger.error(
30+
f"Failed to dump to JSON!\n\t^^^^^^^^^{str(e)}", __file__)
31+
32+
return data

src/util/dump_functions/plist.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import os
2+
import plistlib
3+
from src.managers.devicemanager import DeviceManager
4+
from src.error.logger import Logger
5+
6+
def dump_plist(dm, dir, logger):
7+
data = None
8+
9+
if not isinstance(dm, DeviceManager):
10+
raise TypeError("Parameter 'dm' is not of type 'DeviceManager'!")
11+
12+
if not os.path.isdir(dir):
13+
raise ValueError("Parameter 'dir' is not a valid directory!")
14+
15+
if not isinstance(logger, Logger):
16+
raise TypeError("Parameter 'logger' is not of type 'Logger'!")
17+
18+
try:
19+
with open(os.path.join(dir, "info_dump.plist"), "wb") as plist:
20+
plistlib.dump(dm.info, plist, sort_keys=False)
21+
plist.close()
22+
logger.info(
23+
f'Successfully dumped info "info_dump.plist" into "{dir}"', __file__
24+
)
25+
26+
data = f'Successfully dumped info "info_dump.plist" into "{dir}"\n'
27+
except Exception as e:
28+
logger.error(
29+
f"Failed to dump to Plist!\n\t^^^^^^^^^{str(e)}", __file__
30+
)
31+
32+
return data

src/util/dump_functions/text.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import os
2+
from src.managers.tree import tree
3+
from src.managers.devicemanager import DeviceManager
4+
from src.error.logger import Logger
5+
6+
def dump_txt(dm, dir, logger):
7+
data = None
8+
9+
if not isinstance(dm, DeviceManager):
10+
raise TypeError("Parameter 'dm' is not of type 'DeviceManager'!")
11+
12+
if not os.path.isdir(dir):
13+
raise ValueError("Parameter 'dir' is not a valid directory!")
14+
15+
if not isinstance(logger, Logger):
16+
raise TypeError("Parameter 'logger' is not of type 'Logger'!")
17+
18+
try:
19+
with open(
20+
os.path.join(dir, "info_dump.txt"), "w", encoding="utf-8"
21+
) as file:
22+
for key in dm.info:
23+
file.write(tree(key, dm.info[key], color=False))
24+
file.write("\n")
25+
26+
file.close()
27+
logger.info(
28+
f'Successfully dumped "info_dump.txt" into "{dir}"', __file__
29+
)
30+
31+
data = f'Successfully dumped "info_dump.txt" into "{dir}"\n'
32+
except Exception as e:
33+
logger.error(
34+
f"Failed to dump to TXT!\n\t^^^^^^^^^{str(e)}", __file__)
35+
36+
return data

src/util/dump_functions/xml.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import os
2+
import dicttoxml
3+
import logging
4+
from src.managers.devicemanager import DeviceManager
5+
from src.error.logger import Logger
6+
7+
def dump_xml(dm, dir, logger):
8+
data = None
9+
10+
if not isinstance(dm, DeviceManager):
11+
raise TypeError("Parameter 'dm' is not of type 'DeviceManager'!")
12+
13+
if not os.path.isdir(dir):
14+
raise ValueError("Parameter 'dir' is not a valid directory!")
15+
16+
if not isinstance(logger, Logger):
17+
raise TypeError("Parameter 'logger' is not of type 'Logger'!")
18+
19+
try:
20+
with open(os.path.join(dir, "info_dump.xml"), "wb") as xml:
21+
# Disables debug prints from `dicttoxml`
22+
dicttoxml.LOG.setLevel(logging.ERROR)
23+
xml.write(dicttoxml.dicttoxml(dm.info, root=True))
24+
xml.close()
25+
logger.info(
26+
f'Successfully dumped "info_dump.xml" into "{dir}"', __file__
27+
)
28+
29+
data = f'Successfully dumped "info_dump.xml" into "{dir}"\n'
30+
except Exception as e:
31+
logger.error(
32+
f"Failed to dump to XML!\n\t^^^^^^^^^{str(e)}", __file__)
33+
34+
return data

0 commit comments

Comments
 (0)