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()