hmm so we are finally building skynet ha?Python:import re def extract_skills(text: str) -> list[str]: return re.findall(r"\bDi[a-zA-Z]*\b", text)
class DiNothing(Skill):
# this skill does absolutely nothing
def __init__(self):
super().__init__()
class AHReequip(Skill):
# equips a skill as needed
def __init__(self, brain:Brain):
super().__init__()
self.set_skill_type(2)
self.brain = brain
self.skills: dict[str,Skill] = {}
self.skill_names: set[str] = set()
self.learner:AXLearnability = AXLearnability(tolerance=3)
self.learner.defcons.add("lame")
self.learner.goals.add("thanks")
self.learner.goals.add("good")
self.learner.defcon5.add("wrong")
self.active_skill = DiNothing()
self.active_key = "default"
def manual_skill_add(self, skill:Skill, *keys:str)->AHReequip:
self.add_skill(skill)
for key in keys:
self.skills[key] = skill
return self
def get_random_skill(self) -> Skill:
if not self.skills:
return DiNothing()
return self.skills[random.choice(list(self.skill_names))]
def add_skill(self, skill:Skill)->AHReequip:
self.skills[skill.skill_name] = skill
self.skill_names.add(skill.skill_name)
return self
def input(self, ear: str, skin: str, eye: str):
# trigger reequip:
if ear.startswith("please") or ear.endswith("please"):
temp = ear.replace("please", "").strip()
if temp not in self.skills:
self.skills[temp] = self.get_random_skill()
self.brain.remove_skill(self.active_skill)
self.active_skill = self.skills[temp]
self.active_key = temp
self.brain.add_skill(self.active_skill)
self.learner.pendAlgWithoutConfirmation()
self.setSimpleAlg(f"{self.active_skill.skill_name} skill equipped")
return
if self.learner.mutateSkill(ear):
self.brain.remove_skill(self.active_skill)
self.skills[self.active_key] = self.get_random_skill()
self.active_skill = self.skills[self.active_key]
self.brain.add_skill(self.active_skill)
self.setSimpleAlg(f"{self.active_skill.skill_name} skill equipped")
self.learner.pendAlgWithoutConfirmation()
my_dict = {"a": 1, "b": 2, "c": 3}
keys_list: list[str] = list(my_dict.keys())
print(keys_list) # ['a', 'b', 'c']
class DiNothing(Skill):
# this skill does absolutely nothing
def __init__(self):
super().__init__()
class AHReequip(Skill):
# equips a skill as needed
def __init__(self, brain:Brain):
super().__init__()
self.set_skill_type(2)
self.brain = brain
self.skills: dict[str,Skill] = {}
self.skill_names: set[str] = set()
self.learner:AXLearnability = AXLearnability(tolerance=3)
self.learner.defcons.add("lame")
self.learner.goals.add("thanks")
self.learner.goals.add("good")
self.learner.defcon5.add("wrong")
self.active_skill = DiNothing()
self.active_key = "default"
def manifest(self):
for key in self.skills:
temp1= self._kokoro.grimoireMemento.load(f'{self.skill_name}_{key}')
print(f'manifest stage: loaded {temp1} for key {self.skill_name}_{key}')
if len(temp1)>0 and temp1 != "null" and (temp1 in self.skills):
self.skills[key] = self.skills[temp1]
def manual_skill_add(self, skill:Skill, *keys:str)->AHReequip:
self.add_skill(skill)
for key in keys:
self.skills[key] = skill
return self
def get_random_skill(self) -> Skill:
if not self.skills:
return DiNothing()
return self.skills[random.choice(list(self.skill_names))]
def add_skill(self, skill:Skill)->AHReequip:
self.skills[skill.skill_name] = skill
self.skill_names.add(skill.skill_name)
return self
def input(self, ear: str, skin: str, eye: str):
# trigger reequip:
if ear.startswith("please") or ear.endswith("please"):
temp = ear.replace("please", "").strip()
if temp not in self.skills:
# chk if in memory
temp1 = self._kokoro.grimoireMemento.load(f'{self.skill_name}_{temp}')
if len(temp1) > 0 and temp1 != "null" and (temp1 in self.skills):
self.skills[temp] = self.skills[temp1]
print(f'loaded skill {temp1} for the key cmd:{temp}')
else:
self.skills[temp] = self.get_random_skill()
self.brain.remove_skill(self.active_skill)
self.active_skill = self.skills[temp]
self.active_key = temp
self.brain.add_skill(self.active_skill)
self.learner.pendAlgWithoutConfirmation()
self.setSimpleAlg(f"{self.active_skill.skill_name} skill equipped")
return
if self.learner.mutateSkill(ear):
self.brain.remove_skill(self.active_skill)
self.skills[self.active_key] = self.get_random_skill()
self._kokoro.grimoireMemento.save(f"{self.skill_name}_{self.active_key}",self.skills[self.active_key].skill_name)
print(f'saving key {self.skill_name}_{self.active_key} val: {self.skills[self.active_key].skill_name}')
self.active_skill = self.skills[self.active_key]
self.brain.add_skill(self.active_skill)
self.setSimpleAlg(f"{self.active_skill.skill_name} skill reequipped")
self.learner.pendAlgWithoutConfirmation()