-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
58 lines (48 loc) · 1.81 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from driver.file import FileDriver
from controller import FileController, JsonController, FSController, Struct
from driver.json import JSONDriver
from driver.xml import XMLDriver
from driver.zip import ZipDriver
from menu import Menu
import sys, os
from dataclasses import dataclass
@dataclass
class Person(Struct):
name: str
age: str
file = FileController(FileDriver)
json = JsonController(JSONDriver, Person)
xml = JsonController(XMLDriver, Person, postfix=".xml")
zip = FileController(ZipDriver)
main_menu = Menu([])
MENU_FILE = [["Create file", file.create],
["Write string in file", file.write],
["Read file", file.read],
["Deleted file", file.delete],
["Main menu", main_menu.print]]
MENU_JSON = [["Create JSON", json.create],
["Write string in JSON", json.write],
["Read JSON", json.read],
["Deleted JSON", json.delete],
["Main menu", main_menu.print]]
MENU_XML = [["Create XML", xml.create],
["Write string in XML", xml.write],
["Read XML", xml.read],
["Deleted XML", xml.delete],
["Main menu", main_menu.print]]
MENU_ZIP = [["Create ZIP", zip.create],
["Add file in ZIP", zip.write],
["Read ZIP", zip.read],
["Deleted ZIP", zip.delete],
["Main menu", main_menu.print]]
MAIN_MENU = [["Info about disk", FSController.disk_information],
["Working with a file", Menu(MENU_FILE).print],
["Working with JSON", Menu(MENU_JSON).print],
["Working with XML", Menu(MENU_XML).print],
["Working with ZIP", Menu(MENU_ZIP).print],
["Exit", sys.exit]]
def main():
main_menu.menu = MAIN_MENU
main_menu.print()
if __name__ == "__main__":
main()