使用 NucleonUnion & ElectronUnion 取代繁琐的 AtomicFiles

This commit is contained in:
2025-07-30 01:11:03 +08:00
parent b91176241b
commit 36562323b7
9 changed files with 166 additions and 354 deletions

View File

@@ -7,7 +7,7 @@ class Parser():
class Reactor():
"""反应堆对象, 用于全面解析文件, 并处理和分配一次文件记忆流程的资源与策略"""
def __init__(self, nucleon_file: pt.AtomicFile, electron_file: pt.AtomicFile, tasked_num):
def __init__(self, nucleon_file: pt.NucleonUnion, electron_file: pt.ElectronUnion, tasked_num):
# 导入原子对象
self.reported = set()
self.nucleon_file = nucleon_file
@@ -17,7 +17,7 @@ class Reactor():
self.atoms_review = list()
counter = self.tasked_num
self.electron_dict = {elect.content: elect for elect in electron_file.datalist}
self.electron_dict = electron_file.electrons_dict
def electron_dict_get_fallback(key) -> pt.Electron:
value = self.electron_dict.get(key)
@@ -26,20 +26,20 @@ class Reactor():
if value is None:
value = pt.Electron(key, {}) # 获取默认值
self.electron_dict[key] = value # 将默认值存入字典
value = self.electron_dict[key]
electron_file.sync()
return value # 返回获取的值(可能是默认值)
for nucleon in nucleon_file.datalist:
for nucleon in nucleon_file.nucleons:
atom = (electron_dict_get_fallback(nucleon.content), nucleon)
if atom[0].is_activated == 0:
if atom[0]["is_activated"] == 0:
if counter > 0:
atom[0].is_activated = 1
atom[0]["is_activated"] = 1
self.atoms_new.append(atom)
counter -= 1
else:
if atom[0].next_date <= aux.get_daystamp():
atom[0].last_date = aux.get_daystamp()
if atom[0]["next_date"] <= aux.get_daystamp():
atom[0]["last_date"] = aux.get_daystamp()
self.atoms_review.append(atom)
# 设置运行时
self.index: int
@@ -96,10 +96,6 @@ class Reactor():
def save(self):
print("Progress saved")
# self.nucleon_file.save()
temp = list()
for i in self.electron_dict.keys():
temp.append(self.electron_dict[i])
self.electron_file.datalist = temp
self.electron_file.save()
def report(self, atom, quality):