From 5423d078e8a5383b28c275aea7b5a138ae957d36 Mon Sep 17 00:00:00 2001 From: Arthur O'Dwyer Date: Sun, 16 Apr 2017 17:46:00 -0700 Subject: [PATCH] Move updateTemperature() from workspaceFormulas to workspace. And remove dead and/or logging code to simplify the logic. --- copycat/copycat.py | 3 +-- copycat/temperature.py | 1 - copycat/workspace.py | 16 ++++++++++++++++ copycat/workspaceFormulas.py | 31 ------------------------------- copycat/workspaceObject.py | 2 +- 5 files changed, 18 insertions(+), 35 deletions(-) diff --git a/copycat/copycat.py b/copycat/copycat.py index b0e95ef..89186e9 100644 --- a/copycat/copycat.py +++ b/copycat/copycat.py @@ -1,7 +1,6 @@ import logging from workspace import workspace -from workspaceFormulas import workspaceFormulas from slipnet import slipnet from temperature import temperature from coderack import coderack @@ -12,7 +11,7 @@ def updateEverything(): workspace.updateEverything() coderack.updateCodelets() slipnet.update() - workspaceFormulas.updateTemperature() + workspace.updateTemperature() coderackPressures.calculatePressures() diff --git a/copycat/temperature.py b/copycat/temperature.py index e4bae78..22d22da 100644 --- a/copycat/temperature.py +++ b/copycat/temperature.py @@ -8,7 +8,6 @@ class Temperature(object): self.clampTime = 30 def update(self, value): - logging.debug('update to %s', value) self.value = value def tryUnclamp(self): diff --git a/copycat/workspace.py b/copycat/workspace.py index 14256c8..bd77adb 100644 --- a/copycat/workspace.py +++ b/copycat/workspace.py @@ -1,5 +1,7 @@ import logging +import formulas +from temperature import temperature from workspaceString import WorkspaceString @@ -83,6 +85,20 @@ class Workspace(object): self.initial.updateIntraStringUnhappiness() self.target.updateIntraStringUnhappiness() + def updateTemperature(self): + self.assessTemperature() + ruleWeakness = 100.0 + if self.rule: + self.rule.updateStrength() + ruleWeakness = 100.0 - self.rule.totalStrength + values = ((self.totalUnhappiness, 0.8), (ruleWeakness, 0.2)) + above_actual_temperature = formulas.actualTemperature + 0.001 + formulas.actualTemperature = formulas.weightedAverage(values) + if temperature.clamped: + formulas.actualTemperature = 100.0 + formulas.Temperature = formulas.actualTemperature + temperature.update(formulas.Temperature) + def numberOfUnrelatedObjects(self): """A list of all objects in the workspace with >= 1 open bond slots""" objects = [o for o in self.objects diff --git a/copycat/workspaceFormulas.py b/copycat/workspaceFormulas.py index 43330fe..3b6f3dd 100644 --- a/copycat/workspaceFormulas.py +++ b/copycat/workspaceFormulas.py @@ -6,37 +6,6 @@ from slipnet import slipnet import formulas -class WorkspaceFormulas(object): - def __init__(self): - self.clampTemperature = False - - def updateTemperature(self): - logging.debug('updateTemperature') - workspace.assessTemperature() - ruleWeakness = 100.0 - if workspace.rule: - workspace.rule.updateStrength() - ruleWeakness = 100.0 - workspace.rule.totalStrength - values = ((workspace.totalUnhappiness, 0.8), (ruleWeakness, 0.2)) - above_actual_temperature = formulas.actualTemperature + 0.001 - logging.info('actualTemperature: %f', above_actual_temperature) - formulas.actualTemperature = formulas.weightedAverage(values) - logging.info('unhappiness: %f, weakness: %f, actualTemperature: %f', - workspace.totalUnhappiness + 0.001, ruleWeakness + 0.001, - formulas.actualTemperature + 0.001) - if temperature.clamped: - formulas.actualTemperature = 100.0 - logging.info('actualTemperature: %f', - formulas.actualTemperature + 0.001) - temperature.update(formulas.actualTemperature) - if not self.clampTemperature: - formulas.Temperature = formulas.actualTemperature - temperature.update(formulas.Temperature) - - -workspaceFormulas = WorkspaceFormulas() - - def numberOfObjects(): return len(workspace.objects) diff --git a/copycat/workspaceObject.py b/copycat/workspaceObject.py index a4c07bf..7b4f5c1 100644 --- a/copycat/workspaceObject.py +++ b/copycat/workspaceObject.py @@ -1,6 +1,7 @@ import logging from description import Description +from formulas import weightedAverage from slipnet import slipnet, distinguishingDescriptor from workspaceStructure import WorkspaceStructure @@ -106,7 +107,6 @@ class WorkspaceObject(WorkspaceStructure): self.intraStringSalience = 100.0 self.interStringSalience = 100.0 else: - from formulas import weightedAverage self.intraStringSalience = weightedAverage(( (self.relativeImportance, 0.2), (self.intraStringUnhappiness, 0.8)))