Format lists properly.
This commit is contained in:
parent
e5bd03ac70
commit
548709c87a
|
|
@ -20,7 +20,7 @@
|
||||||
'''
|
'''
|
||||||
from Tkinter import Listbox, SINGLE
|
from Tkinter import Listbox, SINGLE
|
||||||
from Tkdnd import dnd_start
|
from Tkdnd import dnd_start
|
||||||
from joy.utils.stack import iter_stack, list_to_stack
|
from joy.utils.stack import iter_stack, list_to_stack, expression_to_string
|
||||||
|
|
||||||
|
|
||||||
class SourceWrapper:
|
class SourceWrapper:
|
||||||
|
|
@ -135,7 +135,7 @@ class StackListbox(ControllerListbox):
|
||||||
|
|
||||||
def _update(self):
|
def _update(self):
|
||||||
self.delete(0, 'end')
|
self.delete(0, 'end')
|
||||||
self.insert(0, *self.stack)
|
self.insert(0, *map(self.format, self.stack))
|
||||||
|
|
||||||
def update_stack(self, stack):
|
def update_stack(self, stack):
|
||||||
self.stack = list(iter_stack(stack))
|
self.stack = list(iter_stack(stack))
|
||||||
|
|
@ -145,3 +145,9 @@ class StackListbox(ControllerListbox):
|
||||||
ControllerListbox.dnd_commit(self, source, event)
|
ControllerListbox.dnd_commit(self, source, event)
|
||||||
self._update()
|
self._update()
|
||||||
self.world.stack = list_to_stack(self.stack)
|
self.world.stack = list_to_stack(self.stack)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def format(item):
|
||||||
|
if isinstance(item, tuple):
|
||||||
|
return '[%s]' % expression_to_string(item)
|
||||||
|
return str(item)
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ values from (at least) one end.
|
||||||
|
|
||||||
There is no "Stack" Python class, instead we use the `cons list`_, a
|
There is no "Stack" Python class, instead we use the `cons list`_, a
|
||||||
venerable two-tuple recursive sequence datastructure, where the
|
venerable two-tuple recursive sequence datastructure, where the
|
||||||
empty tuple ``()`` is the empty stack and ``(head, rest)`` gives the recursive
|
empty tuple ``()`` is the empty stack and ``(head, rest)`` gives the
|
||||||
form of a stack with one or more items on it::
|
recursive form of a stack with one or more items on it::
|
||||||
|
|
||||||
stack := () | (item, stack)
|
stack := () | (item, stack)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue