diff options
author | Walter Bender <walter@sugarlabs.org> | 2014-03-15 09:08:57 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2014-03-15 09:08:57 (GMT) |
commit | 7ca51ab32f11d0072b1c90ad3eca83f77e0af96c (patch) | |
tree | 41ca178c927c31e9dfc00decbbf9489cae638431 | |
parent | 3ab9ffc79200b61f054012dabe3884add6132268 (diff) |
work around ColorObj/Box bug
-rw-r--r-- | TurtleArt/taconstants.py | 18 | ||||
-rw-r--r-- | TurtleArt/taprimitive.py | 20 |
2 files changed, 30 insertions, 8 deletions
diff --git a/TurtleArt/taconstants.py b/TurtleArt/taconstants.py index 0a3cc23..469f5d3 100644 --- a/TurtleArt/taconstants.py +++ b/TurtleArt/taconstants.py @@ -156,18 +156,28 @@ class ColorObj(object): self.color = color def __int__(self): - if self.color.color is None: - return int(self.color.shade) + if hasattr(self.color, 'color'): + if self.color.color is None: + return int(self.color.shade) + else: + return int(self.color.color) else: - return int(self.color.color) + return int(self.color) def __float__(self): - return float(int(self)) + if hasattr(self.color, 'color'): + return float(int(self)) + else: + return float(self.color) def __str__(self): + if isinstance(self.color, (float, int, bool)): + return str(self.color) return str(self.color.name) def __repr__(self): + if isinstance(self.color, (float, int, bool)): + return str(self.color) return str(self.color.name) diff --git a/TurtleArt/taprimitive.py b/TurtleArt/taprimitive.py index 197a8d8..e840d92 100644 --- a/TurtleArt/taprimitive.py +++ b/TurtleArt/taprimitive.py @@ -28,7 +28,7 @@ import traceback from tablock import Media from tacanvas import TurtleGraphics -from taconstants import (Color, CONSTANTS) +from taconstants import (Color, CONSTANTS, ColorObj) from talogo import (LogoCode, logoerror, NegativeRootError) from taturtle import (Turtle, Turtles) from TurtleArt.tatype import (TYPE_CHAR, TYPE_INT, TYPE_FLOAT, TYPE_OBJECT, @@ -761,17 +761,29 @@ class Primitive(object): @staticmethod def equals(arg1, arg2): """ Return arg1 == arg2 """ - return arg1 == arg2 + # See comment in tatype.py TYPE_BOX -> TYPE_COLOR + if isinstance(arg1, ColorObj) or isinstance(arg2, ColorObj): + return str(arg1) == str(arg2) + else: + return arg1 == arg2 @staticmethod def less(arg1, arg2): """ Return arg1 < arg2 """ - return arg1 < arg2 + # See comment in tatype.py TYPE_BOX -> TYPE_COLOR + if isinstance(arg1, ColorObj) or isinstance(arg2, ColorObj): + return float(arg1) < float(arg2) + else: + return arg1 < arg2 @staticmethod def greater(arg1, arg2): """ Return arg1 > arg2 """ - return arg1 > arg2 + # See comment in tatype.py TYPE_BOX -> TYPE_COLOR + if isinstance(arg1, ColorObj) or isinstance(arg2, ColorObj): + return float(arg1) > float(arg2) + else: + return arg1 > arg2 @staticmethod def comment(text): |