diff --git a/data/repo/test/schedule.toml b/data/repo/test/schedule.toml index d62ef1f..393b8d3 100644 --- a/data/repo/test/schedule.toml +++ b/data/repo/test/schedule.toml @@ -2,4 +2,8 @@ schedule = ["quick_review", "recognition", "final_review"] [phases] quick_review = [["FillBlank", "1.0"], ["SelectMeaning", "0.5"], ["Recognition", "1.0"]] recognition = [["Recognition", "1.0"]] -final_review = [["FillBlank", "0.7"], ["SelectMeaning", "0.7"], ["Recognition", "1.0"]] \ No newline at end of file +final_review = [["FillBlank", "0.7"], ["SelectMeaning", "0.7"], ["Recognition", "1.0"]] +[annotation] +"quick_review" = "复习旧知" +"recognition" = "新知识" +"final_review" = "总复习" \ No newline at end of file diff --git a/src/heurams/interface/screens/memoqueue.py b/src/heurams/interface/screens/memoqueue.py index 01f7f56..df5afe9 100644 --- a/src/heurams/interface/screens/memoqueue.py +++ b/src/heurams/interface/screens/memoqueue.py @@ -79,7 +79,9 @@ class MemScreen(Screen): # logger.debug(shim.puzzle2widget[puzzle_debug["puzzle"]]) def _get_progress_text(self): - return f"当前进度: {self.procession.process() + 1}/{self.procession.total_length()}" + s = f"阶段: {self.procession.phase.name}\n" + s += f"当前进度: {self.procession.process() + 1}/{self.procession.total_length()}" + return s def update_display(self): """更新进度显示""" @@ -142,7 +144,7 @@ class MemScreen(Screen): ret = self.procession.forward(1) if ret == 0: # 若结束了此次队列 self.update_state() - if self.procession == 0: # 若所有队列都结束了 + if self.procession.phase == PhaserState.FINISHED: # 若所有队列都结束了 logger.debug(f"记忆进程结束") self.mount_finished_widget() return diff --git a/src/heurams/interface/widgets/cloze_puzzle.py b/src/heurams/interface/widgets/cloze_puzzle.py index e342116..5d71dc9 100644 --- a/src/heurams/interface/widgets/cloze_puzzle.py +++ b/src/heurams/interface/widgets/cloze_puzzle.py @@ -53,7 +53,7 @@ class ClozePuzzle(BasePuzzleWidget): self.hashmap = dict() def _load(self): - setting = self.atom.registry["orbital"]["puzzles"][self.alia] + setting = self.atom.registry["nucleon"]["puzzles"][self.alia] self.puzzle = pz.ClozePuzzle( text=setting["text"], delimiter=setting["delimiter"], diff --git a/src/heurams/interface/widgets/mcq_puzzle.py b/src/heurams/interface/widgets/mcq_puzzle.py index 878b4e9..d08ccd5 100644 --- a/src/heurams/interface/widgets/mcq_puzzle.py +++ b/src/heurams/interface/widgets/mcq_puzzle.py @@ -61,11 +61,7 @@ class MCQPuzzle(BasePuzzleWidget): self.puzzle.refresh() def compose(self): - setting: Setting = self.atom.registry["nucleon"].metadata["orbital"]["puzzles"][ - self.alia - ] - logger.debug(f"Puzzle Setting: {setting}") - logger.debug(f"WIRED INDEX: {len(self.inputlist)}") + setting: Setting = self.atom.registry["nucleon"]["puzzles"][self.alia] if len(self.inputlist) > len(self.puzzle.options): logger.debug("ERR IDX") logger.debug(self.inputlist) diff --git a/src/heurams/kernel/particles/placeholders.py b/src/heurams/kernel/particles/placeholders.py new file mode 100644 index 0000000..6190d94 --- /dev/null +++ b/src/heurams/kernel/particles/placeholders.py @@ -0,0 +1,41 @@ +from heurams.kernel.particles import orbital +from .electron import Electron +from .nucleon import Nucleon +from .atom import Atom + +orbital_placeholder = { + "schedule": ["quick_review", "recognition", "final_review"], + "phases": { + "quick_review": [ + ["FillBlank", 1.0], + ["SelectMeaning", 0.5], + ["Recognition", 1.0], + ], + "recognition": [["Recognition", 1.0]], + "final_review": [ + ["FillBlank", 0.7], + ["SelectMeaning", 0.7], + ["Recognition", 1.0], + ], + }, +} + + +class NucleonPlaceholder(Nucleon): + def __init__(self): + super().__init__("__placeholder__", {}, {}) + + def __getitem__(self, key): + return f"__placeholder__ attempted {key}" + + +class ElectronPlaceholder(Electron): + def __init__(self): + super().__init__("__placeholder__", {"": {"": ""}}, "") + + +class AtomPlaceholder(Atom): + def __init__(self): + super().__init__( + NucleonPlaceholder(), ElectronPlaceholder(), orbital_placeholder + ) diff --git a/src/heurams/kernel/reactor/phaser.py b/src/heurams/kernel/reactor/phaser.py index e30885f..9fcbd75 100644 --- a/src/heurams/kernel/reactor/phaser.py +++ b/src/heurams/kernel/reactor/phaser.py @@ -1,4 +1,5 @@ import heurams.kernel.particles as pt +from heurams.kernel.particles.placeholders import AtomPlaceholder from heurams.services.logger import get_logger from transitions import Machine @@ -124,7 +125,7 @@ class Phaser(Machine): # 所有Procession都已完成 self.to_finished() logger.debug("所有 Procession 已完成, 状态设置为 FINISHED") - return None + return Procession([AtomPlaceholder()], PhaserState.FINISHED) def __repr__(self): from heurams.services.textproc import truncate