61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
from textual.app import App
|
|
from textual.widgets import Button
|
|
from .screens.dashboard import DashboardScreen
|
|
from .screens.nucreator import NucleonCreatorScreen
|
|
from .screens.precache import PrecachingScreen
|
|
from .screens.about import AboutScreen
|
|
class HeurAMSApp(App):
|
|
TITLE = "潜进"
|
|
#CSS_PATH = str(cxt.rootdir / "interface" / "css" / "main.css")
|
|
SUB_TITLE = "启发式先进记忆调度器"
|
|
BINDINGS = [("q", "quit", "退出"),
|
|
("d", "toggle_dark", "改变色调"),
|
|
("1", "app.push_screen('dashboard')", "仪表盘"),
|
|
("2", "app.push_screen('precache_all')", "缓存管理器"),
|
|
("3", "app.push_screen('nucleon_creator')", "创建新单元"),
|
|
("0", "app.push_screen('about')", "版本信息"),
|
|
]
|
|
SCREENS = {
|
|
"dashboard": DashboardScreen,
|
|
"nucleon_creator": NucleonCreatorScreen,
|
|
"precache_all": PrecachingScreen,
|
|
"about": AboutScreen,
|
|
}
|
|
|
|
def on_mount(self) -> None:
|
|
self.push_screen("dashboard")
|
|
|
|
def on_button_pressed(self, event: Button.Pressed) -> None:
|
|
self.exit(event.button.id)
|
|
|
|
def environment_check():
|
|
from pathlib import Path
|
|
for i in config_var.get()["paths"].values():
|
|
i = Path(i)
|
|
if not i.exists():
|
|
print(f"创建 {i}")
|
|
i.mkdir(exist_ok = True, parents = True)
|
|
else:
|
|
print(f"找到 {i}")
|
|
|
|
def is_subdir(parent, child):
|
|
try:
|
|
child.relative_to(parent)
|
|
return 1
|
|
except:
|
|
return 0
|
|
|
|
# 开发模式
|
|
from heurams.context import rootdir, workdir, config_var
|
|
from pathlib import Path
|
|
from heurams.context import rootdir
|
|
import os
|
|
if is_subdir(Path(rootdir),Path(os.getcwd())):
|
|
os.chdir(Path(rootdir) / ".." / "..")
|
|
print(f'转入开发数据目录: {Path(rootdir)/".."/".."}')
|
|
|
|
environment_check()
|
|
|
|
app = HeurAMSApp()
|
|
app.run()
|