From b9029092b88a641f8ff89d8a22c724201d2f40b0 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 11 Mar 2010 19:02:59 +0000 Subject: pylint cleanup --- (limited to 'taexportlogo.py') diff --git a/taexportlogo.py b/taexportlogo.py index 06fd061..2311872 100644 --- a/taexportlogo.py +++ b/taexportlogo.py @@ -22,15 +22,14 @@ IGNORE = ["hideblocks", "showblocks", "fullscreen", "polar", "cartesian", "sandwichbottom"] import math +from tautils import walk_stack try: from sugar.datastore import datastore except: pass -def save_logo(self, tw): - """ - We need to set up the Turtle Art color palette and color processing. - """ +def save_logo(tw): + """ We need to set up the Turtle Art color palette and color processing. """ color_processing = "\ to tasetpalette :i :r :g :b :myshade \r\ make \"s ((:myshade - 50) / 50) \r\ @@ -123,225 +122,215 @@ tasetshade :shade \r" Walk through the code, substituting UCB Logo for Turtle Art primitives. """ for b in bs: - this_stack = "" - data = walk_stack(self, tw, b) - # We need to catch several special cases: stacks, random, etc. - stack = False - namedstack = False - namedbox = False - refstack = False - refbox = False - myvar = "" - for d in data: - if type(d) == type((1,2)): - (d,b) = d - if type(d) is float: - if namedbox: - myvar += str(d) - myvar += " " - elif write: - this_stack += "labelsize " - this_stack += str(d) - write = False - else: - this_stack += str(d) - elif show == 2: - # Use title for Journal objects - if d[0:8] == '#smedia_': - try: - dsobject = datastore.get(d[8:]) - this_stack += dsobject.metadata['title'] - dsobject.destroy() - except: - this_stack += str(d) - else: - this_stack += str(d) - show = 0 - else: - # Translate some Turtle Art primitives into UCB Logo - if namedstack: - this_stack += "to " - this_stack += d[2:].replace(" ","_") - this_stack += "\r" - stack = True - namedstack = False - elif namedbox: - if d[0:2] == "#s": - this_stack += "make \"" - this_stack += d[2:].replace(" ","_") - this_stack += " " - this_stack += myvar - namedbox = False - myvar = "" - else: - myvar += d - elif refstack: - this_stack += d[2:].replace(" ","_") - this_stack += " " - refstack = False - elif refbox: - this_stack += ":" - this_stack += d[2:].replace(" ","_") - refbox = False - elif d == "stack": - refstack = True - elif d == "box": - refbox = True - elif d == "storeinbox": - namedbox = True - elif d == "storeinbox1": - this_stack += "make \"box1" - elif d == "box1": - this_stack += ":box1" - elif d == "storeinbox2": - this_stack += "make \"box2" - elif d == "box2": - this_stack += ":box2" - elif d == "shade": - this_stack += ":shade" - elif d == "setshade": - setcolor = True - this_stack += "tasetshade" - elif d == "color": - this_stack += "pencolor" - elif d == "nop": - this_stack += " " - elif d == "start": - this_stack += "to start\r" - stack = True - elif d == "nop1": - this_stack += "to stack1\r" - stack = True - elif d == "nop2": - this_stack += "to stack2\r" - stack = True - elif d == "nop3": - namedstack = True - elif d == "stopstack": - this_stack += "stop" - elif d == "clean": - this_stack += "clearscreen" - elif d == "setxy": - setxy = True - this_stack += "tasetxy" - elif d == "color": - this_stack += ":color" - elif d == "plus": - this_stack += "sum" - elif d == "setcolor": - setcolor = True - this_stack += "tasetpencolor" - elif d == "fillscreen": - fillscreen = True - setcolor = True - this_stack += "tasetbackground" - elif d == "random": - random = True - this_stack += "tarandom" - elif d == "pensize": - pensize = True - this_stack += "tapensize" - elif d == "arc": - arc = True - this_stack += "taarc" - elif d == "pop": - heap = True - this_stack += "tapop" - elif d == "push": - heap = True - this_stack += "tapush" - elif d == "heap": - heap = True - this_stack += "taprintheap" - elif d == "emptyheap": - heap = True - this_stack += "taclearheap" - elif d == "kbinput": - this_stack += "make \"keyboard readchar" - elif d == "keyboard": - this_stack += ":keyboard" - elif d == 'insertimage': - image = True - elif image: - # Skip this arg - image = 2 - elif image == 2: - # Skip this arg - image = False - elif d[0:2] == "#s": - # output single characters as a string - if len(d[2:]): - this_stack += "\"" - this_stack += d[2:] - # make a sentence out of everything else - else: - this_stack += "sentence " - this_stack += d[2:].replace("\s"," \"") - this_stack += "\r" - elif d == "write": - this_stack += "label" - write = True - elif d == 'show' or d == 'showaligned': - this_stack += "label" - show = 1 - elif d == "minus2": - this_stack == "taminus" - minus = True - elif d in IGNORE: - this_stack += " " - elif show == 1 and d[0:2] == "#s": - this_stack += d[2:] - # We don't handle depreciated 'template' blocks - else: - this_stack += d - this_stack += " " - if stack: - stack = False - # if it is not a stack, we need to add a "to ta#" label - elif len(data) > 0: - this_stack = "to ta" + str(stack_count) + "\r" + this_stack - stack_count += 1 - if len(data) > 0: - code += this_stack - code += "\rend\r" + this_stack = "" + data = walk_stack(tw, b) + # We need to catch several special cases: stacks, random, etc. + stack = False + namedstack = False + namedbox = False + refstack = False + refbox = False + myvar = "" + for d in data: + if type(d) == type((1, 2)): + (d, b) = d + if type(d) is float: + if namedbox: + myvar += str(d) + myvar += " " + elif write: + this_stack += "labelsize " + this_stack += str(d) + write = False + else: + this_stack += str(d) + elif show == 2: + # Use title for Journal objects + if d[0:8] == '#smedia_': + try: + dsobject = datastore.get(d[8:]) + this_stack += dsobject.metadata['title'] + dsobject.destroy() + except: + this_stack += str(d) + else: + this_stack += str(d) + show = 0 + else: + # Translate some Turtle Art primitives into UCB Logo + if namedstack: + this_stack += "to " + this_stack += d[2:].replace(" ","_") + this_stack += "\r" + stack = True + namedstack = False + elif namedbox: + if d[0:2] == "#s": + this_stack += "make \"" + this_stack += d[2:].replace(" ","_") + this_stack += " " + this_stack += myvar + namedbox = False + myvar = "" + else: + myvar += d + elif refstack: + this_stack += d[2:].replace(" ","_") + this_stack += " " + refstack = False + elif refbox: + this_stack += ":" + this_stack += d[2:].replace(" ","_") + refbox = False + elif d == "stack": + refstack = True + elif d == "box": + refbox = True + elif d == "storeinbox": + namedbox = True + elif d == "storeinbox1": + this_stack += "make \"box1" + elif d == "box1": + this_stack += ":box1" + elif d == "storeinbox2": + this_stack += "make \"box2" + elif d == "box2": + this_stack += ":box2" + elif d == "shade": + this_stack += ":shade" + elif d == "setshade": + setcolor = True + this_stack += "tasetshade" + elif d == "color": + this_stack += "pencolor" + elif d == "nop": + this_stack += " " + elif d == "start": + this_stack += "to start\r" + stack = True + elif d == "nop1": + this_stack += "to stack1\r" + stack = True + elif d == "nop2": + this_stack += "to stack2\r" + stack = True + elif d == "nop3": + namedstack = True + elif d == "stopstack": + this_stack += "stop" + elif d == "clean": + this_stack += "clearscreen" + elif d == "setxy": + setxy = True + this_stack += "tasetxy" + elif d == "color": + this_stack += ":color" + elif d == "plus": + this_stack += "sum" + elif d == "setcolor": + setcolor = True + this_stack += "tasetpencolor" + elif d == "fillscreen": + fillscreen = True + setcolor = True + this_stack += "tasetbackground" + elif d == "random": + random = True + this_stack += "tarandom" + elif d == "pensize": + pensize = True + this_stack += "tapensize" + elif d == "arc": + arc = True + this_stack += "taarc" + elif d == "pop": + heap = True + this_stack += "tapop" + elif d == "push": + heap = True + this_stack += "tapush" + elif d == "heap": + heap = True + this_stack += "taprintheap" + elif d == "emptyheap": + heap = True + this_stack += "taclearheap" + elif d == "kbinput": + this_stack += "make \"keyboard readchar" + elif d == "keyboard": + this_stack += ":keyboard" + elif d == 'insertimage': + image = True + elif image: + # Skip this arg + image = 2 + elif image == 2: + # Skip this arg + image = False + elif d[0:2] == "#s": + # output single characters as a string + if len(d[2:]): + this_stack += "\"" + this_stack += d[2:] + # make a sentence out of everything else + else: + this_stack += "sentence " + this_stack += d[2:].replace("\s"," \"") + this_stack += "\r" + elif d == "write": + this_stack += "label" + write = True + elif d == 'show' or d == 'showaligned': + this_stack += "label" + show = 1 + elif d == "minus2": + this_stack == "taminus" + minus = True + elif d in IGNORE: + this_stack += " " + elif show == 1 and d[0:2] == "#s": + this_stack += d[2:] + # We don't handle depreciated 'template' blocks + else: + this_stack += d + this_stack += " " + if stack: + stack = False + # if it is not a stack, we need to add a "to ta#" label + elif len(data) > 0: + this_stack = "to ta" + str(stack_count) + "\r" + this_stack + stack_count += 1 + if len(data) > 0: + code += this_stack + code += "\rend\r" # We need to define some additional procedures. if minus: # Logo minus only takes one argument. code = "to taminus :y :x\routput sum :x minus :y\rend\r" + code if random: # to avoid negative numbers - code = "to tarandom :min :max\r" + \ - "output (random (:max - :min)) + :min\rend\r" +\ - code + code = "to tarandom :min :max\r" + \ + "output (random (:max - :min)) + :min\rend\r" + code if fillscreen: # Set shade than background color - code = "to tasetbackground :color :shade\r" + \ - "tasetshade :shade\rsetbackground :color\rend\r" + \ - code + code = "to tasetbackground :color :shade\r" + \ + "tasetshade :shade\rsetbackground :color\rend\r" + code if setcolor: # Load the Turtle Art color palette. - code = color_processing + code + code = color_processing + code if pensize: # Return only the first argument. - code = "to tapensize\routput first round pensize\rend\r" + code + code = "to tapensize\routput first round pensize\rend\r" + code if setxy: # Swap and round arguments - code = "to tasetxy :x :y\rpenup\rsetxy :x :y\rpendown\rend\r" + code + code = "to tasetxy :x :y\rpenup\rsetxy :x :y\rpendown\rend\r" + code if arc: # Turtle Art 'arc' needs to be redefined. - c = (2 * math.pi)/360 - code = "to taarc :a :r\rrepeat round :a [right 1 forward (" +\ - str(c) + " * :r)]\rend\r" + code + c = (2 * math.pi)/360 + code = "to taarc :a :r\rrepeat round :a [right 1 forward (" + \ + str(c) + " * :r)]\rend\r" + code if heap: # Add psuedo 'push' and 'pop' - code = "to tapush :foo\rmake \"taheap fput :foo :taheap\rend\r" + \ - "to tapop\rif emptyp :taheap [stop]\rmake \"tmp first :taheap\r" +\ - "make \"taheap butfirst :taheap\routput :tmp\rend\r" + \ - "to taclearheap\rmake \"taheap []\rend\r" + \ - "to taprintheap \rprint :taheap\rend\r" + \ - "make \"taheap []\r" + code + code = "to tapush :foo\rmake \"taheap fput :foo :taheap\rend\r" + \ + "to tapop\rif emptyp :taheap [stop]\rmake \"tmp first :taheap\r" + \ + "make \"taheap butfirst :taheap\routput :tmp\rend\r" + \ + "to taclearheap\rmake \"taheap []\rend\r" + \ + "to taprintheap \rprint :taheap\rend\r" + \ + "make \"taheap []\r" + code code = "window\r" + code return code -def walk_stack(self, tw, blk): - top = tw.find_top_block(blk) - if blk == top: - code = tw.lc.run_blocks(top, tw.block_list.list, False) - return code - else: - return [] - -- cgit v0.9.1