[Jython-checkins] jython: Clean up Demo directory Python content for readability

jeff.allen jython-checkins at python.org
Thu Jul 12 06:41:17 EDT 2018


https://hg.python.org/jython/rev/c532fa336c22
changeset:   8172:c532fa336c22
user:        Richie Bendall <richiebendall at gmail.com>
date:        Thu Jul 12 11:30:49 2018 +0100
summary:
  Clean up Demo directory Python content for readability

White-space changes (hard tabs and other cruft) to improve readability
using AutoPEP8 and Autoflake.

files:
  ACKNOWLEDGMENTS                           |    1 +
  Demo/applet/deprecated/ButtonDemo.py      |   27 +-
  Demo/applet/deprecated/ButtonFontDemo.py  |   29 +-
  Demo/applet/deprecated/CheckboxDemo.py    |   42 +-
  Demo/applet/deprecated/ChoiceDemo.py      |   23 +-
  Demo/applet/deprecated/Converter.py       |  112 +-
  Demo/applet/deprecated/CoordinatesDemo.py |   55 +-
  Demo/applet/deprecated/HelloApplet.py     |   11 +-
  Demo/applet/deprecated/HelloWorld.py      |    3 +-
  Demo/applet/deprecated/LabelDemo.py       |   11 +-
  Demo/applet/deprecated/ListDemo.py        |   59 +-
  Demo/awt/Colors.py                        |   15 +-
  Demo/awt/Graph.py                         |  110 +-
  Demo/awt/simple.py                        |    2 +
  Demo/bean/TempConverter.py                |   54 +-
  Demo/javaclasses/deprecated/Graph.py      |  116 +-
  Demo/modjy_webapp/demo_app.py             |   21 +-
  Demo/swing/JythonConsole/Action.py        |   63 +-
  Demo/swing/JythonConsole/Console.py       |  336 +++++----
  Demo/swing/JythonConsole/Keymap.py        |  131 ++-
  Demo/swing/JythonConsole/Styles.py        |   51 +-
  Demo/swing/ListDemo.py                    |    1 -
  Demo/swing/ObjectTree.py                  |   23 +-
  Demo/swing/TreeDemo.py                    |   58 +-
  Demo/swing/simple.py                      |    2 +
  25 files changed, 700 insertions(+), 656 deletions(-)


diff --git a/ACKNOWLEDGMENTS b/ACKNOWLEDGMENTS
--- a/ACKNOWLEDGMENTS
+++ b/ACKNOWLEDGMENTS
@@ -180,6 +180,7 @@
     Mat Booth
     Alex Gaman
     Tom Bech
+    Richie Bendall
 
 Local Variables:
 mode: indented-text
diff --git a/Demo/applet/deprecated/ButtonDemo.py b/Demo/applet/deprecated/ButtonDemo.py
--- a/Demo/applet/deprecated/ButtonDemo.py
+++ b/Demo/applet/deprecated/ButtonDemo.py
@@ -6,27 +6,28 @@
 
 from java import awt, applet
 
+
 class ButtonDemo(applet.Applet):
     def init(self):
-	self.b1 = awt.Button('Disable middle button',
-			     actionPerformed=self.disable)
-	self.b2 = awt.Button('Middle button')
-	self.b3 = awt.Button('Enable middle button',
-			     enabled=0, actionPerformed=self.enable)
+        self.b1 = awt.Button('Disable middle button',
+                             actionPerformed=self.disable)
+        self.b2 = awt.Button('Middle button')
+        self.b3 = awt.Button('Enable middle button',
+                             enabled=0, actionPerformed=self.enable)
 
-	self.add(self.b1)
-	self.add(self.b2)
-	self.add(self.b3)
+        self.add(self.b1)
+        self.add(self.b2)
+        self.add(self.b3)
 
     def enable(self, event):
-	self.b1.enabled = self.b2.enabled = 1
-	self.b3.enabled = 0
+        self.b1.enabled = self.b2.enabled = 1
+        self.b3.enabled = 0
 
     def disable(self, event):
-	self.b1.enabled = self.b2.enabled = 0
-	self.b3.enabled = 1
+        self.b1.enabled = self.b2.enabled = 0
+        self.b3.enabled = 1
 
 
-if __name__ == '__main__':	
+if __name__ == '__main__':
     import pawt
     pawt.test(ButtonDemo())
diff --git a/Demo/applet/deprecated/ButtonFontDemo.py b/Demo/applet/deprecated/ButtonFontDemo.py
--- a/Demo/applet/deprecated/ButtonFontDemo.py
+++ b/Demo/applet/deprecated/ButtonFontDemo.py
@@ -6,28 +6,29 @@
 
 from java import awt, applet
 
+
 class ButtonFontDemo(applet.Applet):
     def init(self):
-	self.font = awt.Font('Serif', 0, 24)
-	self.b1 = awt.Button('Disable middle button',
-			     actionPerformed=self.disable)
-	self.b2 = awt.Button('Middle button')
-	self.b3 = awt.Button('Enable middle button',
-			     enabled=0, actionPerformed=self.enable)
+        self.font = awt.Font('Serif', 0, 24)
+        self.b1 = awt.Button('Disable middle button',
+                             actionPerformed=self.disable)
+        self.b2 = awt.Button('Middle button')
+        self.b3 = awt.Button('Enable middle button',
+                             enabled=0, actionPerformed=self.enable)
 
-	self.add(self.b1)
-	self.add(self.b2)
-	self.add(self.b3)
+        self.add(self.b1)
+        self.add(self.b2)
+        self.add(self.b3)
 
     def enable(self, event):
-	self.b1.enabled = self.b2.enabled = 1
-	self.b3.enabled = 0
+        self.b1.enabled = self.b2.enabled = 1
+        self.b3.enabled = 0
 
     def disable(self, event):
-	self.b1.enabled = self.b2.enabled = 0
-	self.b3.enabled = 1
+        self.b1.enabled = self.b2.enabled = 0
+        self.b3.enabled = 1
 
 
-if __name__ == '__main__':	
+if __name__ == '__main__':
     import pawt
     pawt.test(ButtonFontDemo())
diff --git a/Demo/applet/deprecated/CheckboxDemo.py b/Demo/applet/deprecated/CheckboxDemo.py
--- a/Demo/applet/deprecated/CheckboxDemo.py
+++ b/Demo/applet/deprecated/CheckboxDemo.py
@@ -6,36 +6,36 @@
 
 from java import awt, applet
 
+
 class CheckboxDemo(applet.Applet):
     def init(self):
-	cb1 = awt.Checkbox('Checkbox 1')
-	cb2 = awt.Checkbox('Checkbox 2')
-	cb3 = awt.Checkbox('Checkbox 3', state=1)
+        cb1 = awt.Checkbox('Checkbox 1')
+        cb2 = awt.Checkbox('Checkbox 2')
+        cb3 = awt.Checkbox('Checkbox 3', state=1)
 
-	p1 = awt.Panel(layout=awt.FlowLayout())
+        p1 = awt.Panel(layout=awt.FlowLayout())
 
-	p1.add(cb1)
-	p1.add(cb2)
-	p1.add(cb3)
+        p1.add(cb1)
+        p1.add(cb2)
+        p1.add(cb3)
 
-	cbg = awt.CheckboxGroup()
-	cb4 = awt.Checkbox('Checkbox 4', cbg, 0)
-	cb5 = awt.Checkbox('Checkbox 5', cbg, 0)
-	cb6 = awt.Checkbox('Checkbox 6', cbg, 0)
+        cbg = awt.CheckboxGroup()
+        cb4 = awt.Checkbox('Checkbox 4', cbg, 0)
+        cb5 = awt.Checkbox('Checkbox 5', cbg, 0)
+        cb6 = awt.Checkbox('Checkbox 6', cbg, 0)
 
-	p2 = awt.Panel(layout=awt.FlowLayout())
-	p2.add(cb4)
-	p2.add(cb5)
-	p2.add(cb6)
+        p2 = awt.Panel(layout=awt.FlowLayout())
+        p2.add(cb4)
+        p2.add(cb5)
+        p2.add(cb6)
 
-	self.setLayout(awt.GridLayout(0, 2))
-	self.add(p1)
-	self.add(p2)
+        self.setLayout(awt.GridLayout(0, 2))
+        self.add(p1)
+        self.add(p2)
 
-	self.validate()
+        self.validate()
 
 
-if __name__ == '__main__':	
+if __name__ == '__main__':
     import pawt
     pawt.test(CheckboxDemo())
-
diff --git a/Demo/applet/deprecated/ChoiceDemo.py b/Demo/applet/deprecated/ChoiceDemo.py
--- a/Demo/applet/deprecated/ChoiceDemo.py
+++ b/Demo/applet/deprecated/ChoiceDemo.py
@@ -6,21 +6,22 @@
 
 from java import awt, applet
 
-class ChoiceDemo(applet.Applet):		
-    def init(self):
-	self.choices = awt.Choice(itemStateChanged = self.change)
-	for item in ['ichi', 'ni', 'san', 'yon']:
-	    self.choices.addItem(item)
 
-	self.label = awt.Label()
-	self.change()
+class ChoiceDemo(applet.Applet):
+    def init(self):
+        self.choices = awt.Choice(itemStateChanged=self.change)
+        for item in ['ichi', 'ni', 'san', 'yon']:
+            self.choices.addItem(item)
 
-	self.add(self.choices)
-	self.add(self.label)
+        self.label = awt.Label()
+        self.change()
+
+        self.add(self.choices)
+        self.add(self.label)
 
     def change(self, event=None):
-	selection = self.choices.selectedIndex, self.choices.selectedItem
-	self.label.text = 'Item #%d selected. Text = "%s".' % selection
+        selection = self.choices.selectedIndex, self.choices.selectedItem
+        self.label.text = 'Item #%d selected. Text = "%s".' % selection
 
 
 if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/Converter.py b/Demo/applet/deprecated/Converter.py
--- a/Demo/applet/deprecated/Converter.py
+++ b/Demo/applet/deprecated/Converter.py
@@ -10,102 +10,98 @@
 from pawt import GridBag
 
 basicUnits = [['Metric System', [('Centimeters', 0.01),
-				 ('Meters', 1.0),
-				 ('Kilometers', 1000.0)]],
-	      ['U.S. System', [('Inches', 0.0254),
-			       ('Feet', 0.305),
-			       ('Yards', 0.914),
-			       ('Miles', 1613.0)]]
-	      ]
-
+                                 ('Meters', 1.0),
+                                 ('Kilometers', 1000.0)]],
+              ['U.S. System', [('Inches', 0.0254),
+                               ('Feet', 0.305),
+                               ('Yards', 0.914),
+                               ('Miles', 1613.0)]]
+              ]
 
 
 class SimpleBorder:
     def paint(self, g):
-	g.drawRect(0,0,self.size.width-1, self.size.height-1)
+        g.drawRect(0, 0, self.size.width-1, self.size.height-1)
 
     def getInsets(self):
-	return awt.Insets(5,5,5,5)
-
+        return awt.Insets(5, 5, 5, 5)
 
 
 class Converter(Applet, SimpleBorder):
     def init(self, unitSets=basicUnits):
-	self.setLayout(awt.GridLayout(2,0,5,5))
-	self.panels = []
-	for name, units in unitSets:
-	    panel = ConversionPanel(name, units, self)
-	    self.panels.append(panel)
-	    self.add(panel)
+        self.setLayout(awt.GridLayout(2, 0, 5, 5))
+        self.panels = []
+        for name, units in unitSets:
+            panel = ConversionPanel(name, units, self)
+            self.panels.append(panel)
+            self.add(panel)
 
     def convert(self, master):
-	value = master.getValue()
-	multiplier = master.getMultiplier()
+        value = master.getValue()
+        multiplier = master.getMultiplier()
 
-	for panel in self.panels:
-	    if panel is not master:
-		panel.setValue(multiplier/panel.getMultiplier()*value)
-
+        for panel in self.panels:
+            if panel is not master:
+                panel.setValue(multiplier/panel.getMultiplier()*value)
 
 
 class ConversionPanel(awt.Panel, SimpleBorder,
-		      ActionListener, AdjustmentListener, ItemListener):
+                      ActionListener, AdjustmentListener, ItemListener):
     max, block = 10000, 100
 
     def __init__(self, title, units, controller):
-	self.units = units
-	self.controller = controller
+        self.units = units
+        self.controller = controller
 
-	bag = GridBag(self, fill='HORIZONTAL')
+        bag = GridBag(self, fill='HORIZONTAL')
 
-	label = awt.Label(title, awt.Label.CENTER)
-	bag.addRow(label)
+        label = awt.Label(title, awt.Label.CENTER)
+        bag.addRow(label)
 
-	self.text = awt.TextField('0', 10, actionListener=self)
-	bag.add(self.text, weightx=1.0)
+        self.text = awt.TextField('0', 10, actionListener=self)
+        bag.add(self.text, weightx=1.0)
 
-	self.chooser = awt.Choice(itemListener=self)
-	for name, multiplier in units:
-	    self.chooser.add(name)
-	bag.addRow(self.chooser)
+        self.chooser = awt.Choice(itemListener=self)
+        for name, multiplier in units:
+            self.chooser.add(name)
+        bag.addRow(self.chooser)
 
-	self.slider = awt.Scrollbar(awt.Scrollbar.HORIZONTAL,
-				    maximum=self.max+10,
-				    blockIncrement=self.block,
-				    adjustmentListener=self)
-	bag.add(self.slider)
+        self.slider = awt.Scrollbar(awt.Scrollbar.HORIZONTAL,
+                                    maximum=self.max+10,
+                                    blockIncrement=self.block,
+                                    adjustmentListener=self)
+        bag.add(self.slider)
 
     def getMultiplier(self):
-	return self.units[self.chooser.selectedIndex][1]
+        return self.units[self.chooser.selectedIndex][1]
 
     def getValue(self):
-	try:
-	    return float(self.text.getText())
-	except:
-	    return 0.0
+        try:
+            return float(self.text.getText())
+        except:
+            return 0.0
 
     def actionPerformed(self, e):
-	self.setSlider(self.getValue())
-	self.controller.convert(self)
+        self.setSlider(self.getValue())
+        self.controller.convert(self)
 
     def itemStateChanged(self, e):
-	self.controller.convert(self)
+        self.controller.convert(self)
 
     def adjustmentValueChanged(self, e):
-	self.text.setText(str(e.getValue()))
-	self.controller.convert(self)
+        self.text.setText(str(e.getValue()))
+        self.controller.convert(self)
 
     def setValue(self, v):
-	self.text.setText(str(v))
-	self.setSlider(v)
+        self.text.setText(str(v))
+        self.setSlider(v)
 
     def setSlider(self, f):
-	if f > self.max:
-	    f = self.max
-	if f < 0:
-	    f = 0
-	self.slider.value = int(f)
-
+        if f > self.max:
+            f = self.max
+        if f < 0:
+            f = 0
+        self.slider.value = int(f)
 
 
 if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/CoordinatesDemo.py b/Demo/applet/deprecated/CoordinatesDemo.py
--- a/Demo/applet/deprecated/CoordinatesDemo.py
+++ b/Demo/applet/deprecated/CoordinatesDemo.py
@@ -10,58 +10,55 @@
 
 class CoordinatesDemo(applet.Applet):
     def init(self):
-	bag = GridBag(self)
+        bag = GridBag(self)
 
-	self.framedArea = FramedArea(self)
-	bag.addRow(self.framedArea, weighty=1.0, fill='BOTH')
+        self.framedArea = FramedArea(self)
+        bag.addRow(self.framedArea, weighty=1.0, fill='BOTH')
 
-	self.label = awt.Label('Click within the framed area')
-	bag.addRow(self.label, weightx=1.0, weighty=0.0, fill='HORIZONTAL')
+        self.label = awt.Label('Click within the framed area')
+        bag.addRow(self.label, weightx=1.0, weighty=0.0, fill='HORIZONTAL')
 
     def updateLabel(self, point):
-	text = 'Click occurred at coordinate (%d, %d).'
-	self.label.text = text % (point.x, point.y)
-
+        text = 'Click occurred at coordinate (%d, %d).'
+        self.label.text = text % (point.x, point.y)
 
 
 class FramedArea(awt.Panel):
     def __init__(self, controller):
-	self.background = awt.Color.lightGray
-	self.setLayout(awt.GridLayout(1,0))
+        self.background = awt.Color.lightGray
+        self.setLayout(awt.GridLayout(1, 0))
 
-	self.add(CoordinateArea(controller))
+        self.add(CoordinateArea(controller))
 
     def getInsets(self):
-	return awt.Insets(4,4,5,5)
+        return awt.Insets(4, 4, 5, 5)
 
     def paint(self, g):
-	d = self.size
+        d = self.size
 
-	g.color = self.background
-	g.draw3DRect(0, 0, d.width-1, d.height-1, 1)
-	g.draw3DRect(3, 3, d.width-7, d.height-7, 1)
-
+        g.color = self.background
+        g.draw3DRect(0, 0, d.width-1, d.height-1, 1)
+        g.draw3DRect(3, 3, d.width-7, d.height-7, 1)
 
 
 class CoordinateArea(awt.Canvas):
     def __init__(self, controller):
-	self.mousePressed = self.push
-	self.controller = controller
+        self.mousePressed = self.push
+        self.controller = controller
 
     def push(self, e):
-	try:
-	    self.point.x = e.x
-	    self.point.y = e.y
-	except AttributeError:
-	    self.point = awt.Point(e.x, e.y)
+        try:
+            self.point.x = e.x
+            self.point.y = e.y
+        except AttributeError:
+            self.point = awt.Point(e.x, e.y)
 
-	self.repaint()
+        self.repaint()
 
     def paint(self, g):
-	if hasattr(self, 'point'):
-	    self.controller.updateLabel(self.point)
-	    g.fillRect(self.point.x-1, self.point.y-1, 2, 2)
-
+        if hasattr(self, 'point'):
+            self.controller.updateLabel(self.point)
+            g.fillRect(self.point.x-1, self.point.y-1, 2, 2)
 
 
 if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/HelloApplet.py b/Demo/applet/deprecated/HelloApplet.py
--- a/Demo/applet/deprecated/HelloApplet.py
+++ b/Demo/applet/deprecated/HelloApplet.py
@@ -19,10 +19,11 @@
 
 from java import awt, applet
 
+
 class HelloApplet(applet.Applet):
     def paint(self, g):
-	g.setColor(awt.Color.black)
-	g.fill3DRect(5,5,590,100,0)
-	g.setFont(awt.Font('Arial', 0, 80))
-	g.setColor(awt.Color.blue)
-	g.drawString('Hello World', 90, 80)
+        g.setColor(awt.Color.black)
+        g.fill3DRect(5, 5, 590, 100, 0)
+        g.setFont(awt.Font('Arial', 0, 80))
+        g.setColor(awt.Color.blue)
+        g.drawString('Hello World', 90, 80)
diff --git a/Demo/applet/deprecated/HelloWorld.py b/Demo/applet/deprecated/HelloWorld.py
--- a/Demo/applet/deprecated/HelloWorld.py
+++ b/Demo/applet/deprecated/HelloWorld.py
@@ -1,9 +1,10 @@
 from java.applet import Applet
 import sys
 
+
 class HelloWorld(Applet):
     def paint(self, g):
-	g.drawString("Hello from Jython %s!" % sys.version, 20, 30)
+        g.drawString("Hello from Jython %s!" % sys.version, 20, 30)
 
 
 if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/LabelDemo.py b/Demo/applet/deprecated/LabelDemo.py
--- a/Demo/applet/deprecated/LabelDemo.py
+++ b/Demo/applet/deprecated/LabelDemo.py
@@ -7,12 +7,13 @@
 from java import applet
 from java.awt import Label, GridLayout
 
-class LabelDemo(applet.Applet):		
+
+class LabelDemo(applet.Applet):
     def init(self):
-	self.setLayout(GridLayout(0,1))
-	self.add(Label('Left'))
-	self.add(Label('Center', Label.CENTER))
-	self.add(Label('Right', Label.RIGHT))
+        self.setLayout(GridLayout(0, 1))
+        self.add(Label('Left'))
+        self.add(Label('Center', Label.CENTER))
+        self.add(Label('Right', Label.RIGHT))
 
 
 if __name__ == '__main__':
diff --git a/Demo/applet/deprecated/ListDemo.py b/Demo/applet/deprecated/ListDemo.py
--- a/Demo/applet/deprecated/ListDemo.py
+++ b/Demo/applet/deprecated/ListDemo.py
@@ -8,49 +8,50 @@
 from java.awt.event import ItemEvent
 from pawt import GridBag
 
+
 class ListDemo(applet.Applet):
     def fillList(self, list, names):
-	list.actionPerformed=self.action
-	list.itemStateChanged=self.change
+        list.actionPerformed = self.action
+        list.itemStateChanged = self.change
 
-	for name in names:
-	    list.add(name)
+        for name in names:
+            list.add(name)
 
     def init(self):
-	self.spanish = awt.List(4, 1)
-	self.fillList(self.spanish, ['uno', 'dos', 'tres', 'cuatro', 
-				     'cinco', 'seis', 'siete'])
-	self.italian = awt.List()
-	self.fillList(self.italian, ['uno', 'due', 'tre', 'quattro',
-				     'cinque', 'sei', 'sette'])
+        self.spanish = awt.List(4, 1)
+        self.fillList(self.spanish, ['uno', 'dos', 'tres', 'cuatro',
+                                     'cinco', 'seis', 'siete'])
+        self.italian = awt.List()
+        self.fillList(self.italian, ['uno', 'due', 'tre', 'quattro',
+                                     'cinque', 'sei', 'sette'])
 
-	self.output = awt.TextArea(10, 40, editable=0)
+        self.output = awt.TextArea(10, 40, editable=0)
 
-	bag = GridBag(self)
-	bag.add(self.output,
-		fill='BOTH', weightx=1.0, weighty=1.0,
-		gridheight=2)
+        bag = GridBag(self)
+        bag.add(self.output,
+                fill='BOTH', weightx=1.0, weighty=1.0,
+                gridheight=2)
 
-	bag.addRow(self.spanish, fill='VERTICAL')
-	bag.addRow(self.italian, fill='VERTICAL')
+        bag.addRow(self.spanish, fill='VERTICAL')
+        bag.addRow(self.italian, fill='VERTICAL')
 
-	self.language = {self.spanish:'Spanish', self.italian:'Italian'}
+        self.language = {self.spanish: 'Spanish', self.italian: 'Italian'}
 
     def action(self, e):
-	list = e.source
-	text = 'Action event occurred on "%s" in %s.\n'
-	self.output.append(text % (list.selectedItem, self.language[list]))
+        list = e.source
+        text = 'Action event occurred on "%s" in %s.\n'
+        self.output.append(text % (list.selectedItem, self.language[list]))
 
     def change(self, e):
-	list = e.source
-	if e.stateChange == ItemEvent.SELECTED:
-	    select = 'Select'
-	else: 
-	    select = 'Deselect'
+        list = e.source
+        if e.stateChange == ItemEvent.SELECTED:
+            select = 'Select'
+        else:
+            select = 'Deselect'
 
-	text = '%s event occurred on item #%d (%s) in %s.\n'
-	params = (select, e.item, list.getItem(e.item), self.language[list])
-	self.output.append(text % params)
+        text = '%s event occurred on item #%d (%s) in %s.\n'
+        params = (select, e.item, list.getItem(e.item), self.language[list])
+        self.output.append(text % params)
 
 
 if __name__ == '__main__':
diff --git a/Demo/awt/Colors.py b/Demo/awt/Colors.py
--- a/Demo/awt/Colors.py
+++ b/Demo/awt/Colors.py
@@ -9,11 +9,12 @@
 
 p = awt.Panel()
 for name in dir(colors):
-	color = getattr(colors, name)
-	if isinstance(color, awt.Color):
-		l = awt.Label(name, awt.Label.CENTER, background=color)
-		intensity = sqrt(color.red**2 + color.green**2 + color.blue**2)/3		
-		if intensity < 90: l.foreground = colors.white
-		p.add(l)
+    color = getattr(colors, name)
+    if isinstance(color, awt.Color):
+        l = awt.Label(name, awt.Label.CENTER, background=color)
+        intensity = sqrt(color.red**2 + color.green**2 + color.blue**2)/3
+        if intensity < 90:
+            l.foreground = colors.white
+        p.add(l)
 
-test(p, size=(700,500))
\ No newline at end of file
+test(p, size=(700, 500))
diff --git a/Demo/awt/Graph.py b/Demo/awt/Graph.py
--- a/Demo/awt/Graph.py
+++ b/Demo/awt/Graph.py
@@ -2,62 +2,64 @@
 from math import *
 from jarray import array
 
+
 class Graph(awt.Canvas):
-	def __init__(self):
-		self.function = None
+    def __init__(self):
+        self.function = None
+
+    def paint(self, g):
+        if self.function is None:
+            return self.error(g)
+
+        sz = self.size
+        xs = range(0, sz.width, 2)
+
+        xscale = 4*pi/sz.width
+        xoffset = -2*pi
+
+        yscale = -sz.height/2.
+        yoffset = sz.height/2.
 
-	def paint(self, g):
-		if self.function is None:
-			return self.error(g)
-			
-		sz = self.size
-		xs = range(0, sz.width, 2)
-		
-		xscale = 4*pi/sz.width
-		xoffset = -2*pi
-		
-		yscale = -sz.height/2.
-		yoffset = sz.height/2.
-		
-		ys = []
-		for x in xs:
-			x = xscale*x + xoffset
-			y = int(yscale*self.function(x)+yoffset)
-			ys.append(y)
-		g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+        ys = []
+        for x in xs:
+            x = xscale*x + xoffset
+            y = int(yscale*self.function(x)+yoffset)
+            ys.append(y)
+        g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+
+    def error(self, g):
+        message = "Invalid Expression"
+        g.font = awt.Font('Serif', awt.Font.BOLD, 20)
+        width = g.fontMetrics.stringWidth(message)
 
-	def error(self, g):
-		message = "Invalid Expression"
-		g.font = awt.Font('Serif', awt.Font.BOLD, 20)
-		width = g.fontMetrics.stringWidth(message)
-		
-		x = (self.size.width-width)/2
-		y = (self.size.height+g.fontMetrics.height)/2
-		g.drawString("Invalid Expression", x, y)
-	
-	def setExpression(self, e):
-		"@sig public void setExpression(java.lang.String e)"	
-		try:
-			self.function = eval('lambda x: '+e)
-		except:
-			self.function = None
-		self.repaint()
-	
+        x = (self.size.width-width)/2
+        y = (self.size.height+g.fontMetrics.height)/2
+        g.drawString("Invalid Expression", x, y)
+
+    def setExpression(self, e):
+        "@sig public void setExpression(java.lang.String e)"
+        try:
+            self.function = eval('lambda x: '+e)
+        except:
+            self.function = None
+        self.repaint()
+
 
 if __name__ == '__main__':
-	def enter(e):
-		graph.setExpression(expression.text)
-		expression.caretPosition=0
-		expression.selectAll()
-		
-	p = awt.Panel(layout=awt.BorderLayout())
-	graph = Graph()
-	p.add(graph, 'Center')
-	
-	expression = awt.TextField(text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
-	p.add(expression, 'South')
-	
-	import pawt	
-	pawt.test(p, size=(300,300))
-	
-	enter(None)
+    def enter(e):
+        graph.setExpression(expression.text)
+        expression.caretPosition = 0
+        expression.selectAll()
+
+    p = awt.Panel(layout=awt.BorderLayout())
+    graph = Graph()
+    p.add(graph, 'Center')
+
+    expression = awt.TextField(
+        text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
+    p.add(expression, 'South')
+
+    import pawt
+    pawt.test(p, size=(300, 300))
+
+    enter(None)
diff --git a/Demo/awt/simple.py b/Demo/awt/simple.py
--- a/Demo/awt/simple.py
+++ b/Demo/awt/simple.py
@@ -9,8 +9,10 @@
 import java
 from java import awt
 
+
 def exit(e): java.lang.System.exit(0)
 
+
 frame = awt.Frame('AWT Example', visible=1)
 button = awt.Button('Close Me!', actionPerformed=exit)
 frame.add(button, 'Center')
diff --git a/Demo/bean/TempConverter.py b/Demo/bean/TempConverter.py
--- a/Demo/bean/TempConverter.py
+++ b/Demo/bean/TempConverter.py
@@ -1,36 +1,38 @@
 import java
 
+
 class TempConverter(java.lang.Object):
-	def __init__(self):
-		self.setFahrenheit(0.0)
+    def __init__(self):
+        self.setFahrenheit(0.0)
 
-	def setFahrenheit(self, degrees):
-		"@sig public void setFahrenheit(double degrees)"
-		self.f = degrees
-		self.c = (degrees-32.)/1.8
+    def setFahrenheit(self, degrees):
+        "@sig public void setFahrenheit(double degrees)"
+        self.f = degrees
+        self.c = (degrees-32.)/1.8
 
-	def getFahrenheit(self):
-		"@sig public double getFahrenheit()"
-		return self.f
+    def getFahrenheit(self):
+        "@sig public double getFahrenheit()"
+        return self.f
 
-	def setCelsius(self, degrees):
-		"@sig public void setCelsius(double degrees)"
-		self.c = degrees
-		self.f = degrees*1.8+32.
+    def setCelsius(self, degrees):
+        "@sig public void setCelsius(double degrees)"
+        self.c = degrees
+        self.f = degrees*1.8+32.
 
-	def getCelsius(self):
-		"@sig public double getCelsius()"
-		return self.c
+    def getCelsius(self):
+        "@sig public double getCelsius()"
+        return self.c
 
-	def __repr__(self):
-		return '<%.2g degrees fahrenheit == %.2g celsius>' % (self.f, self.c)
+    def __repr__(self):
+        return '<%.2g degrees fahrenheit == %.2g celsius>' % (self.f, self.c)
+
 
 if __name__ == '__main__':
-	c = TempConverter()
-	print c
-	c.setCelsius(100)
-	print c
-	c.setCelsius(0)
-	print c
-	c.setFahrenheit(212)
-	print c
\ No newline at end of file
+    c = TempConverter()
+    print c
+    c.setCelsius(100)
+    print c
+    c.setCelsius(0)
+    print c
+    c.setFahrenheit(212)
+    print c
diff --git a/Demo/javaclasses/deprecated/Graph.py b/Demo/javaclasses/deprecated/Graph.py
--- a/Demo/javaclasses/deprecated/Graph.py
+++ b/Demo/javaclasses/deprecated/Graph.py
@@ -2,65 +2,67 @@
 from math import *
 from jarray import array
 
+
 class Graph(awt.Canvas):
-	def __init__(self, initialExpression=None):
-		"@sig public Graph(java.lang.String initialExpression)"
-		self.function = None
-		if initialExpression is not None:
-			self.setExpression(initialExpression)
+    def __init__(self, initialExpression=None):
+        "@sig public Graph(java.lang.String initialExpression)"
+        self.function = None
+        if initialExpression is not None:
+            self.setExpression(initialExpression)
+
+    def paint(self, g):
+        if self.function is None:
+            return self.error(g)
+
+        sz = self.size
+        xs = range(0, sz.width, 2)
+
+        xscale = 4*pi/sz.width
+        xoffset = -2*pi
+
+        yscale = -sz.height/2.
+        yoffset = sz.height/2.
 
-	def paint(self, g):
-		if self.function is None:
-			return self.error(g)
-			
-		sz = self.size
-		xs = range(0, sz.width, 2)
-		
-		xscale = 4*pi/sz.width
-		xoffset = -2*pi
-		
-		yscale = -sz.height/2.
-		yoffset = sz.height/2.
-		
-		ys = []
-		for x in xs:
-			x = xscale*x + xoffset
-			y = int(yscale*self.function(x)+yoffset)
-			ys.append(y)
-		g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+        ys = []
+        for x in xs:
+            x = xscale*x + xoffset
+            y = int(yscale*self.function(x)+yoffset)
+            ys.append(y)
+        g.drawPolyline(array(xs, 'i'), array(ys, 'i'), len(xs))
+
+    def error(self, g):
+        message = "Invalid Expression"
+        g.font = awt.Font('Serif', awt.Font.BOLD, 20)
+        width = g.fontMetrics.stringWidth(message)
 
-	def error(self, g):
-		message = "Invalid Expression"
-		g.font = awt.Font('Serif', awt.Font.BOLD, 20)
-		width = g.fontMetrics.stringWidth(message)
-		
-		x = (self.size.width-width)/2
-		y = (self.size.height+g.fontMetrics.height)/2
-		g.drawString("Invalid Expression", x, y)
-	
-	def setExpression(self, e):
-		"@sig public void setExpression(java.lang.String e)"		
-		try:
-			self.function = eval('lambda x: '+e)
-		except:
-			self.function = None
-		self.repaint()
-	
+        x = (self.size.width-width)/2
+        y = (self.size.height+g.fontMetrics.height)/2
+        g.drawString("Invalid Expression", x, y)
+
+    def setExpression(self, e):
+        "@sig public void setExpression(java.lang.String e)"
+        try:
+            self.function = eval('lambda x: '+e)
+        except:
+            self.function = None
+        self.repaint()
+
 
 if __name__ == '__main__':
-	def enter(e):
-		graph.setExpression(expression.text)
-		expression.caretPosition=0
-		expression.selectAll()
-		
-	p = awt.Panel(layout=awt.BorderLayout())
-	graph = Graph()
-	p.add(graph, 'Center')
-	
-	expression = awt.TextField(text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
-	p.add(expression, 'South')
-	
-	import pawt	
-	pawt.test(p, size=(300,300))
-	
-	enter(None)
+    def enter(e):
+        graph.setExpression(expression.text)
+        expression.caretPosition = 0
+        expression.selectAll()
+
+    p = awt.Panel(layout=awt.BorderLayout())
+    graph = Graph()
+    p.add(graph, 'Center')
+
+    expression = awt.TextField(
+        text='(sin(3*x)+cos(x))/2', actionPerformed=enter)
+    p.add(expression, 'South')
+
+    import pawt
+    pawt.test(p, size=(300, 300))
+
+    enter(None)
diff --git a/Demo/modjy_webapp/demo_app.py b/Demo/modjy_webapp/demo_app.py
--- a/Demo/modjy_webapp/demo_app.py
+++ b/Demo/modjy_webapp/demo_app.py
@@ -1,30 +1,37 @@
 import sys
 
-def escape_html(s): return s.replace('&', '&').replace('<', '<').replace('>', '>')
+
+def escape_html(s): return s.replace(
+    '&', '&').replace('<', '<').replace('>', '>')
+
 
 def cutoff(s, n=100):
-    if len(s) > n: return s[:n]+ '.. cut ..'
+    if len(s) > n:
+        return s[:n] + '.. cut ..'
     return s
 
+
 def handler(environ, start_response):
-    writer = start_response("200 OK", [ ('content-type', 'text/html') ])
+    writer = start_response("200 OK", [('content-type', 'text/html')])
     response_parts = []
     response_parts.append("<html>")
     response_parts.append("<head>")
     response_parts.append("<title>Modjy demo application</title>")
     response_parts.append("</head>")
     response_parts.append("<body>")
-    response_parts.append("<p>Modjy servlet running correctly: jython %s on %s:</p>" % (sys.version, sys.platform))
+    response_parts.append(
+        "<p>Modjy servlet running correctly: jython %s on %s:</p>" % (sys.version, sys.platform))
     response_parts.append("<h3>Hello WSGI World!</h3>")
-    response_parts.append("<h4>Here are the contents of the WSGI environment</h4>")
+    response_parts.append(
+        "<h4>Here are the contents of the WSGI environment</h4>")
     environ_str = "<table border='1'>"
     keys = environ.keys()
     keys.sort()
     for ix, name in enumerate(keys):
         if ix % 2:
-            background='#ffffff'
+            background = '#ffffff'
         else:
-            background='#eeeeee'
+            background = '#eeeeee'
         style = " style='background-color:%s;'" % background
         value = escape_html(cutoff(str(environ[name]))) or ' '
         environ_str = "%s\n<tr><td%s>%s</td><td%s>%s</td></tr>" % \
diff --git a/Demo/swing/JythonConsole/Action.py b/Demo/swing/JythonConsole/Action.py
--- a/Demo/swing/JythonConsole/Action.py
+++ b/Demo/swing/JythonConsole/Action.py
@@ -1,40 +1,43 @@
 # I don't really like the design of this one...
 from pawt import swing
 
+
 class Action(swing.AbstractAction):
-	def __init__(self, name, action=None, icon=None, description=None, needEvent=0):
-		if action is None:
-			action = name
-			name = action.__name__
+    def __init__(self, name, action=None, icon=None, description=None, needEvent=0):
+        if action is None:
+            action = name
+            name = action.__name__
 
-		#swing.AbstractAction.__init__(self, name)
-		self.name = name
-		self.icon = icon
-		if icon:
-			self.setIcon(swing.Action.SMALL_ICON, icon)
-		if description:
-			self.setText(swing.Action.SHORT_DESCRIPTION, description)
-			self.description = description
-		else:
-			self.description = name
-		self.action = action
+        #swing.AbstractAction.__init__(self, name)
+        self.name = name
+        self.icon = icon
+        if icon:
+            self.setIcon(swing.Action.SMALL_ICON, icon)
+        if description:
+            self.setText(swing.Action.SHORT_DESCRIPTION, description)
+            self.description = description
+        else:
+            self.description = name
+        self.action = action
 
-		self.enabled = 1
-		self.needEvent = needEvent
+        self.enabled = 1
+        self.needEvent = needEvent
 
-	def actionPerformed(self, event):
-		if self.needEvent:
-			self.action(event)
-		else:
-			self.action()
+    def actionPerformed(self, event):
+        if self.needEvent:
+            self.action(event)
+        else:
+            self.action()
 
-	def createMenuItem(self):
-		mi = swing.JMenuItem(self.name, actionListener=self, enabled=self.enabled)
-		return mi
+    def createMenuItem(self):
+        mi = swing.JMenuItem(
+            self.name, actionListener=self, enabled=self.enabled)
+        return mi
+
 
 class TargetAction(Action):
-	def actionPerformed(self, event):
-		if self.needEvent:
-			self.action(self.getTarget(), event)
-		else:
-			self.action(self.getTarget())
\ No newline at end of file
+    def actionPerformed(self, event):
+        if self.needEvent:
+            self.action(self.getTarget(), event)
+        else:
+            self.action(self.getTarget())
diff --git a/Demo/swing/JythonConsole/Console.py b/Demo/swing/JythonConsole/Console.py
--- a/Demo/swing/JythonConsole/Console.py
+++ b/Demo/swing/JythonConsole/Console.py
@@ -18,194 +18,204 @@
 from java.awt.event import ActionEvent
 from java.lang import Thread, System
 from code import compile_command
-import string, sys, re
+import string
+import sys
+import re
+
 
 class OutputBuffer:
-	def __init__(self, console, stylename):
-		self.console = console
-		self.stylename = stylename
-		
-	def flush(self):
-		pass
-		
-	def write(self, text):
-		self.console.write(text, self.stylename)
+    def __init__(self, console, stylename):
+        self.console = console
+        self.stylename = stylename
+
+    def flush(self):
+        pass
+
+    def write(self, text):
+        self.console.write(text, self.stylename)
+
 
 class Console:
-	def __init__(self, styles=None, keymap=None):
-		if styles is None:
-			styles = Styles()
-			basic = styles.add('normal', tabsize=3, fontSize=12, fontFamily="Courier")
-			styles.add('error', parent=basic, foreground=colors.red)
-			styles.add('output', parent=basic, foreground=colors.blue)
-			styles.add('input', parent=basic, foreground=colors.black)
-			styles.add('prompt', parent=basic, foreground=colors.purple)
-		self.styles = styles
-		
-		# This is a hack to get at an inner class
-		# This will not be required in JPython-1.1
-		ForegroundAction = getattr(swing.text, 'StyledEditorKit$ForegroundAction')
-		self.inputAction = ForegroundAction("start input", colors.black)
+    def __init__(self, styles=None, keymap=None):
+        if styles is None:
+            styles = Styles()
+            basic = styles.add('normal', tabsize=3,
+                               fontSize=12, fontFamily="Courier")
+            styles.add('error', parent=basic, foreground=colors.red)
+            styles.add('output', parent=basic, foreground=colors.blue)
+            styles.add('input', parent=basic, foreground=colors.black)
+            styles.add('prompt', parent=basic, foreground=colors.purple)
+        self.styles = styles
 
-		if keymap is None:
-			keymap = Keymap()
-		keymap.bind('enter', self.enter)
-		keymap.bind('tab', self.tab)
-		keymap.bind('escape', self.escape)
-		keymap.bind('up', self.uphistory)
-		keymap.bind('down', self.downhistory)
-		
-		self.keymap = keymap
-		
-		self.document = swing.text.DefaultStyledDocument(self.styles)
-		self.document.setLogicalStyle(0, self.styles.get('normal'))
+        # This is a hack to get at an inner class
+        # This will not be required in JPython-1.1
+        ForegroundAction = getattr(
+            swing.text, 'StyledEditorKit$ForegroundAction')
+        self.inputAction = ForegroundAction("start input", colors.black)
+
+        if keymap is None:
+            keymap = Keymap()
+        keymap.bind('enter', self.enter)
+        keymap.bind('tab', self.tab)
+        keymap.bind('escape', self.escape)
+        keymap.bind('up', self.uphistory)
+        keymap.bind('down', self.downhistory)
+
+        self.keymap = keymap
+
+        self.document = swing.text.DefaultStyledDocument(self.styles)
+        self.document.setLogicalStyle(0, self.styles.get('normal'))
+
+        self.textpane = swing.JTextPane(self.document)
+        self.textpane.keymap = self.keymap
 
-		self.textpane = swing.JTextPane(self.document)
-		self.textpane.keymap = self.keymap
-		
-		self.history = []
-		self.oldHistoryLength = 0
-		self.historyPosition = 0
-		
-		self.command = []
-		self.locals = {}
+        self.history = []
+        self.oldHistoryLength = 0
+        self.historyPosition = 0
+
+        self.command = []
+        self.locals = {}
+
+    def write(self, text, stylename='normal'):
+        style = self.styles.get(stylename)
+        self.document.insertString(self.document.length, text, style)
+
+    def beep(self):
+        self.textpane.toolkit.beep()
 
-	def write(self, text, stylename='normal'):
-		style = self.styles.get(stylename)
-		self.document.insertString(self.document.length, text, style)
-		
-	def beep(self):
-		self.textpane.toolkit.beep()
+    def startUserInput(self, prompt=None):
+        if prompt is not None:
+            self.write(prompt, 'prompt')
+        self.startInput = self.document.createPosition(self.document.length-1)
+        #self.document.setCharacterAttributes(self.document.length-1, 1, self.styles.get('input'), 1)
+        self.textpane.caretPosition = self.document.length
+        ae = ActionEvent(
+            self.textpane, ActionEvent.ACTION_PERFORMED, 'start input')
+        self.inputAction.actionPerformed(ae)
 
-	def startUserInput(self, prompt=None):
-		if prompt is not None:
-			self.write(prompt, 'prompt')
-		self.startInput = self.document.createPosition(self.document.length-1)
-		#self.document.setCharacterAttributes(self.document.length-1, 1, self.styles.get('input'), 1)
-		self.textpane.caretPosition = self.document.length
-		ae = ActionEvent(self.textpane, ActionEvent.ACTION_PERFORMED, 'start input')
-		self.inputAction.actionPerformed(ae)
+    def getinput(self):
+        offset = self.startInput.offset
+        line = self.document.getText(offset+1, self.document.length-offset)
+        return string.rstrip(line)
 
-	def getinput(self):
-		offset = self.startInput.offset
-		line = self.document.getText(offset+1, self.document.length-offset)
-		return string.rstrip(line)
+    def replaceinput(self, text):
+        offset = self.startInput.offset + 1
+        self.document.remove(offset, self.document.length-offset)
+        self.write(text, 'input')
 
-	def replaceinput(self, text):
-		offset = self.startInput.offset + 1
-		self.document.remove(offset, self.document.length-offset)
-		self.write(text, 'input')
-		
-	def enter(self):
-		line = self.getinput()
-		self.write('\n', 'input')
-		
-		self.history.append(line)
-		self.handleLine(line)
-		
-	def gethistory(self, direction):
-		historyLength = len(self.history)
-		if self.oldHistoryLength < historyLength:
-			# new line was entered after last call
-			self.oldHistoryLength = historyLength
-			if self.history[self.historyPosition] != self.history[-1]:
-				self.historyPosition = historyLength
+    def enter(self):
+        line = self.getinput()
+        self.write('\n', 'input')
+
+        self.history.append(line)
+        self.handleLine(line)
+
+    def gethistory(self, direction):
+        historyLength = len(self.history)
+        if self.oldHistoryLength < historyLength:
+            # new line was entered after last call
+            self.oldHistoryLength = historyLength
+            if self.history[self.historyPosition] != self.history[-1]:
+                self.historyPosition = historyLength
 
-		pos = self.historyPosition + direction
+        pos = self.historyPosition + direction
+
+        if 0 <= pos < historyLength:
+            self.historyPosition = pos
+            self.replaceinput(self.history[pos])
+        else:
+            self.beep()
 
-		if 0 <= pos < historyLength:
-			self.historyPosition = pos
-			self.replaceinput(self.history[pos])
-		else:
-			self.beep()
+    def uphistory(self):
+        self.gethistory(-1)
 
-	def uphistory(self):
-		self.gethistory(-1)
+    def downhistory(self):
+        self.gethistory(1)
 
-	def downhistory(self):
-		self.gethistory(1)
+    def tab(self):
+        self.write('\t', 'input')
 
-	def tab(self):
-		self.write('\t', 'input')
-		
-	def escape(self):
-		if (not hasattr(self, 'pythonThread') or self.pythonThread is None or
-				not self.pythonThread.alive):
-			self.beep()
-			return
-			
-		self.pythonThread.stopPython()
+    def escape(self):
+        if (not hasattr(self, 'pythonThread') or self.pythonThread is None or
+                not self.pythonThread.alive):
+            self.beep()
+            return
+
+        self.pythonThread.stopPython()
 
-	def capturePythonOutput(self, stdoutStyle='output', stderrStyle='error'):
-		import sys
-		sys.stdout = OutputBuffer(self, stdoutStyle)
-		sys.stderr = OutputBuffer(self, stderrStyle)
+    def capturePythonOutput(self, stdoutStyle='output', stderrStyle='error'):
+        import sys
+        sys.stdout = OutputBuffer(self, stdoutStyle)
+        sys.stderr = OutputBuffer(self, stderrStyle)
+
+    def handleLine(self, text):
+        self.command.append(text)
 
-	def handleLine(self, text):
-		self.command.append(text)
-		
-		try:
-			code = compile_command(string.join(self.command, '\n'))
-		except SyntaxError:
-			traceback.print_exc(0)
-			self.command = []
-			self.startUserInput(str(sys.ps1)+'\t')
-			return
+        try:
+            code = compile_command(string.join(self.command, '\n'))
+        except SyntaxError:
+            traceback.print_exc(0)
+            self.command = []
+            self.startUserInput(str(sys.ps1)+'\t')
+            return
 
-		if code is None:
-			self.startUserInput(str(sys.ps2)+'\t')
-			return
-		
-		self.command = []
-		
-		pt = PythonThread(code, self)
-		self.pythonThread = pt
-		pt.start()
-		
-	def newInput(self):
-		self.startUserInput(str(sys.ps1)+'\t')
-		
+        if code is None:
+            self.startUserInput(str(sys.ps2)+'\t')
+            return
+
+        self.command = []
+
+        pt = PythonThread(code, self)
+        self.pythonThread = pt
+        pt.start()
+
+    def newInput(self):
+        self.startUserInput(str(sys.ps1)+'\t')
+
+
 import traceback
 
+
 class PythonThread(Thread):
-	def __init__(self, code, console):
-		self.code = code
-		self.console = console
-		self.locals = console.locals
-		
-	def run(self):
-		try:
-			exec self.code in self.locals
-			
-		#Include these lines to actually exit on a sys.exit() call
-		#except SystemExit, value:
-		#	raise SystemExit, value
-		
-		except:
-			exc_type, exc_value, exc_traceback = sys.exc_info()
-			l = len(traceback.extract_tb(sys.exc_traceback))
-			try:
-				1/0
-			except:
-				m = len(traceback.extract_tb(sys.exc_traceback))
-			traceback.print_exception(exc_type, exc_value, exc_traceback, l-m)
-			
-		self.console.newInput()
+    def __init__(self, code, console):
+        self.code = code
+        self.console = console
+        self.locals = console.locals
+
+    def run(self):
+        try:
+            exec self.code in self.locals
+
+        # Include these lines to actually exit on a sys.exit() call
+        # except SystemExit, value:
+        #	raise SystemExit, value
 
-	def stopPython(self):
-		#Should spend 2 seconds trying to kill thread in nice Python style first...
-		self.stop()
+        except:
+            exc_type, exc_value, exc_traceback = sys.exc_info()
+            l = len(traceback.extract_tb(sys.exc_traceback))
+            try:
+                1/0
+            except:
+                m = len(traceback.extract_tb(sys.exc_traceback))
+            traceback.print_exception(exc_type, exc_value, exc_traceback, l-m)
+
+        self.console.newInput()
+
+    def stopPython(self):
+        # Should spend 2 seconds trying to kill thread in nice Python style first...
+        self.stop()
+
 
 header = """\
 JPython %(version)s on %(platform)s
 %(copyright)s
-""" % {'version':sys.version, 'platform':sys.platform, 'copyright':sys.copyright}
+""" % {'version': sys.version, 'platform': sys.platform, 'copyright': sys.copyright}
 
 if __name__ == '__main__':
-	c = Console()
-	pane = swing.JScrollPane(c.textpane)
-	swing.test(pane, size=(500,400), name='JPython Console')
-	c.write(header, 'output')
-	c.capturePythonOutput()
-	c.textpane.requestFocus()
-	c.newInput()
\ No newline at end of file
+    c = Console()
+    pane = swing.JScrollPane(c.textpane)
+    swing.test(pane, size=(500, 400), name='JPython Console')
+    c.write(header, 'output')
+    c.capturePythonOutput()
+    c.textpane.requestFocus()
+    c.newInput()
diff --git a/Demo/swing/JythonConsole/Keymap.py b/Demo/swing/JythonConsole/Keymap.py
--- a/Demo/swing/JythonConsole/Keymap.py
+++ b/Demo/swing/JythonConsole/Keymap.py
@@ -4,84 +4,93 @@
 from Action import Action
 
 _keynames = {}
-def getKeyStroke(key):
-	if len(_keynames) == 0:
-		for name in dir(KeyEvent):
-			if name[:3] == 'VK_':
-				_keynames[string.lower(name[3:])] = getattr(KeyEvent, name)
+
 
-	if key is None:
-		return KeyStroke.getKeyStroke(KeyEvent.CHAR_UNDEFINED)
+def getKeyStroke(key):
+    if len(_keynames) == 0:
+        for name in dir(KeyEvent):
+            if name[:3] == 'VK_':
+                _keynames[string.lower(name[3:])] = getattr(KeyEvent, name)
 
-	if len(key) == 1:
-		return KeyStroke.getKeyStroke(key)
+    if key is None:
+        return KeyStroke.getKeyStroke(KeyEvent.CHAR_UNDEFINED)
 
-	fields = string.split(key, '-')
-	key = fields[-1]
-	mods = fields[:-1]
+    if len(key) == 1:
+        return KeyStroke.getKeyStroke(key)
 
-	modifiers = 0
-	for mod in mods:
-		if mod == 'C':
-			modifiers = modifiers | InputEvent.CTRL_MASK
-		elif mod == 'S':
-			modifiers = modifiers | InputEvent.SHIFT_MASK
-		#Meta and Alt don't currently work right
-		elif mod == 'M':
-			modifiers = modifiers | InputEvent.META_MASK
-		elif mod == 'A':
-			modifiers = modifiers | InputEvent.ALT_MASK
-		else:
-			raise ValueError, 'Invalid modifier in '+key
+    fields = string.split(key, '-')
+    key = fields[-1]
+    mods = fields[:-1]
 
-	return KeyStroke.getKeyStroke(_keynames[key], modifiers)
+    modifiers = 0
+    for mod in mods:
+        if mod == 'C':
+            modifiers = modifiers | InputEvent.CTRL_MASK
+        elif mod == 'S':
+            modifiers = modifiers | InputEvent.SHIFT_MASK
+        # Meta and Alt don't currently work right
+        elif mod == 'M':
+            modifiers = modifiers | InputEvent.META_MASK
+        elif mod == 'A':
+            modifiers = modifiers | InputEvent.ALT_MASK
+        else:
+            raise ValueError, 'Invalid modifier in '+key
+
+    return KeyStroke.getKeyStroke(_keynames[key], modifiers)
 
 
 def makeAction(o):
-	if isinstance(o, Action): return o
-	if callable(o): return Action(o)
+    if isinstance(o, Action):
+        return o
+    if callable(o):
+        return Action(o)
+
 
 class Keymap:
-	__keynames = {}
-	__defaultKeymap = text.JTextComponent.getKeymap(text.JTextComponent.DEFAULT_KEYMAP)
+    __keynames = {}
+    __defaultKeymap = text.JTextComponent.getKeymap(
+        text.JTextComponent.DEFAULT_KEYMAP)
+
+    def __init__(self, bindings={}, parent=__defaultKeymap):
+        self.keymap = text.JTextComponent.addKeymap(None, parent)
+        for key, action in bindings.items():
+            self.bind(key, action)
 
-	def __init__(self, bindings={}, parent=__defaultKeymap):
-		self.keymap = text.JTextComponent.addKeymap(None, parent)
-		for key, action in bindings.items():
-			self.bind(key, action)
+    def bind(self, key, action):
+        self.keymap.addActionForKeyStroke(
+            getKeyStroke(key), makeAction(action))
 
-	def bind(self, key, action):
-		self.keymap.addActionForKeyStroke(getKeyStroke(key), makeAction(action))
+    def __tojava__(self, c):
+        if isinstance(self.keymap, c):
+            return self.keymap
 
-	def __tojava__(self, c):
-		if isinstance(self.keymap, c):
-			return self.keymap
 
 if __name__ == '__main__':
-	km = Keymap()
-	class T:
-		def __init__(self, message):
-			self.message = message
-			self.__name__ = message
-		def __call__(self):
-			print self.message
+    km = Keymap()
+
+    class T:
+        def __init__(self, message):
+            self.message = message
+            self.__name__ = message
+
+        def __call__(self):
+            print self.message
 
-	km.bind('x', T('x'))
-	km.bind('C-x', T('C-x'))
-	km.bind('A-x', T('A-x'))
-	km.bind('up', T('up'))
-	km.bind('enter', T('enter'))
-	km.bind('tab', T('tab'))
-	km.bind('S-tab', T('S-tab'))
-
+    km.bind('x', T('x'))
+    km.bind('C-x', T('C-x'))
+    km.bind('A-x', T('A-x'))
+    km.bind('up', T('up'))
+    km.bind('enter', T('enter'))
+    km.bind('tab', T('tab'))
+    km.bind('S-tab', T('S-tab'))
 
-	text = "hello\nworld"
+    text = "hello\nworld"
 
-	from pawt import swing, test
+    from pawt import swing, test
 
-	doc = swing.text.DefaultStyledDocument()
-	doc.insertString(0, text, None)
-	edit = swing.JTextPane(doc)
-	edit.keymap = km
+    doc = swing.text.DefaultStyledDocument()
+    doc.insertString(0, text, None)
+    edit = swing.JTextPane(doc)
+    edit.keymap = km
 
-	test(edit, size=(150,80))
+    test(edit, size=(150, 80))
diff --git a/Demo/swing/JythonConsole/Styles.py b/Demo/swing/JythonConsole/Styles.py
--- a/Demo/swing/JythonConsole/Styles.py
+++ b/Demo/swing/JythonConsole/Styles.py
@@ -1,34 +1,35 @@
 from pawt.swing.text import StyleContext, StyleConstants, TabSet, TabStop
 import string
 
+
 class Styles:
-	def __init__(self, context=None):
-		if context is None:
-			context = StyleContext()
-		self.context = context
-		self.default = self.context.getStyle(StyleContext.DEFAULT_STYLE)
+    def __init__(self, context=None):
+        if context is None:
+            context = StyleContext()
+        self.context = context
+        self.default = self.context.getStyle(StyleContext.DEFAULT_STYLE)
 
-	def add(self, name, parent=None, tabsize=None, **keywords):
-		if parent is None:
-			parent = self.default
-		style = self.context.addStyle(name, parent)
+    def add(self, name, parent=None, tabsize=None, **keywords):
+        if parent is None:
+            parent = self.default
+        style = self.context.addStyle(name, parent)
 
-		for key, value in keywords.items():
-			key = string.upper(key[0])+key[1:]
-			meth = getattr(StyleConstants, "set"+key)
-			meth(style, value)
+        for key, value in keywords.items():
+            key = string.upper(key[0])+key[1:]
+            meth = getattr(StyleConstants, "set"+key)
+            meth(style, value)
 
-		if tabsize is not None:
-			charWidth=StyleConstants.getFontSize(style)
-			tabs = []
-			for i in range(20):
-				tabs.append(TabStop(i*tabsize*charWidth))
-			StyleConstants.setTabSet(style, TabSet(tabs))
-		return style
+        if tabsize is not None:
+            charWidth = StyleConstants.getFontSize(style)
+            tabs = []
+            for i in range(20):
+                tabs.append(TabStop(i*tabsize*charWidth))
+            StyleConstants.setTabSet(style, TabSet(tabs))
+        return style
 
-	def get(self, stylename):
-		return self.context.getStyle(stylename)
+    def get(self, stylename):
+        return self.context.getStyle(stylename)
 
-	def __tojava__(self, c):
-		if isinstance(self.context, c):
-			return self.context
\ No newline at end of file
+    def __tojava__(self, c):
+        if isinstance(self.context, c):
+            return self.context
diff --git a/Demo/swing/ListDemo.py b/Demo/swing/ListDemo.py
--- a/Demo/swing/ListDemo.py
+++ b/Demo/swing/ListDemo.py
@@ -3,4 +3,3 @@
 lst = swing.JList(['a', 'b', 'c'])
 
 swing.test(lst)
-
diff --git a/Demo/swing/ObjectTree.py b/Demo/swing/ObjectTree.py
--- a/Demo/swing/ObjectTree.py
+++ b/Demo/swing/ObjectTree.py
@@ -9,8 +9,7 @@
 import java
 
 leaves = (None, TypeType, IntType, StringType, FloatType, NoneType,
-	  BuiltinFunctionType, BuiltinMethodType)
-
+          BuiltinFunctionType, BuiltinMethodType)
 
 
 class PyEnumeration(java.util.Enumeration):
@@ -26,13 +25,13 @@
         return self.seq[self.index-1]
 
 
-
 def classattrs(c, attrs):
     for base in c.__bases__:
         classattrs(base, attrs)
     for name in c.__dict__.keys():
         attrs[name] = 1
 
+
 def mydir(obj):
     attrs = {}
     if hasattr(obj, '__class__'):
@@ -44,6 +43,7 @@
     ret.sort()
     return ret
 
+
 def shortrepr(obj):
     r = repr(obj)
     if len(r) > 80:
@@ -51,7 +51,6 @@
     return r
 
 
-
 class ObjectNode(swing.tree.TreeNode):
     def __init__(self, parent, name, object):
         self.myparent = parent
@@ -60,7 +59,7 @@
 
     def getChildren(self):
         if hasattr(self, 'mychildren'):
-	    return self.mychildren
+            return self.mychildren
 
         if self.isLeaf():
             self.mychildren = None
@@ -69,10 +68,10 @@
         children = []
         for name in mydir(self.object):
             if name[:2] == '__':
-		continue
+                continue
             try:
                 children.append(ObjectNode(self, name,
-					   getattr(self.object, name)))
+                                           getattr(self.object, name)))
             except TypeError:
                 print 'type error on', name, self.object
         self.mychildren = children
@@ -102,7 +101,7 @@
         index = 0
         for child in self.getChildren():
             if child == node:
-		return index
+                return index
             index = index+1
         return -1
 
@@ -113,13 +112,13 @@
         return self.name+' = '+shortrepr(self.object)
 
 
-
 if __name__ == '__main__':
     class foo:
-        bar=99
-        eggs='hello'
+        bar = 99
+        eggs = 'hello'
+
         class baz:
-            x,y,z=1,2,3
+            x, y, z = 1, 2, 3
         func = range
 
     import __main__
diff --git a/Demo/swing/TreeDemo.py b/Demo/swing/TreeDemo.py
--- a/Demo/swing/TreeDemo.py
+++ b/Demo/swing/TreeDemo.py
@@ -4,47 +4,51 @@
 """
 
 data = {
-	'PyObject': {
-        'PyInteger':None,
-        'PyFloat':None,
-        'PyComplex':None,
+    'PyObject': {
+        'PyInteger': None,
+        'PyFloat': None,
+        'PyComplex': None,
         'PySequence': {
-        	'PyArray':None,
-            'PyList':None,
-            'PyTuple':None,
-            'PyString':None,
+            'PyArray': None,
+            'PyList': None,
+            'PyTuple': None,
+            'PyString': None,
         },
         'PyClass': {
-            'PyJavaClass':None,
+            'PyJavaClass': None,
         },
-	},
-    'sys':None,
-    'Py':None,
-    'PyException':None,
-    '__builtin__':None,
-    'ThreadState':None,
+    },
+    'sys': None,
+    'Py': None,
+    'PyException': None,
+    '__builtin__': None,
+    'ThreadState': None,
 }
 
 
 from pawt import swing
 Node = swing.tree.DefaultMutableTreeNode
 
+
 def addNode(tree, key, value):
-	node = Node(key)
-	tree.add(node)
-	if value is not None:
-		addLeaves(node, value.items())
+    node = Node(key)
+    tree.add(node)
+    if value is not None:
+        addLeaves(node, value.items())
+
 
 def addLeaves(node, items):
-	items.sort()
-	for key, value in items:
-		addNode(node, key, value)
+    items.sort()
+    for key, value in items:
+        addNode(node, key, value)
+
 
 def makeTree(name, data):
-	tree = Node('A Few JPython Classes')
-	addLeaves(tree, data.items())
-	return tree
+    tree = Node('A Few JPython Classes')
+    addLeaves(tree, data.items())
+    return tree
+
 
 if __name__ == '__main__':
-	tree = makeTree('Some JPython Classes', data)
-	swing.test(swing.JScrollPane(swing.JTree(tree)))
+    tree = makeTree('Some JPython Classes', data)
+    swing.test(swing.JScrollPane(swing.JTree(tree)))
diff --git a/Demo/swing/simple.py b/Demo/swing/simple.py
--- a/Demo/swing/simple.py
+++ b/Demo/swing/simple.py
@@ -7,8 +7,10 @@
 from pawt import swing
 import java
 
+
 def exit(e): java.lang.System.exit(0)
 
+
 frame = swing.JFrame('Swing Example', visible=1)
 button = swing.JButton('Close Me!', actionPerformed=exit)
 frame.contentPane.add(button)

-- 
Repository URL: https://hg.python.org/jython


More information about the Jython-checkins mailing list