Fixed up tabs and whitespace in all source files
authorandy_robinson
Tue, 20 Jan 2004 22:50:32 +0000
changeset 2200 be0cfccc662a
parent 2199 a103025414f5
child 2201 aa4ec6c9942c
Fixed up tabs and whitespace in all source files
reportlab/demos/odyssey/odyssey.py
reportlab/docs/userguide/ch2a_fonts.py
reportlab/docs/userguide/ch3_pdffeatures.py
reportlab/graphics/charts/areas.py
reportlab/graphics/charts/barcharts.py
reportlab/graphics/charts/doughnut.py
reportlab/graphics/charts/piecharts.py
reportlab/graphics/charts/textlabels.py
reportlab/graphics/charts/utils3d.py
reportlab/graphics/samples/bubble.py
reportlab/graphics/samples/clustered_bar.py
reportlab/graphics/samples/clustered_column.py
reportlab/graphics/samples/exploded_pie.py
reportlab/graphics/samples/filled_radar.py
reportlab/graphics/samples/line_chart.py
reportlab/graphics/samples/linechart_with_markers.py
reportlab/graphics/samples/radar.py
reportlab/graphics/samples/runall.py
reportlab/graphics/samples/scatter.py
reportlab/graphics/samples/scatter_lines.py
reportlab/graphics/samples/scatter_lines_markers.py
reportlab/graphics/samples/simple_pie.py
reportlab/graphics/samples/stacked_bar.py
reportlab/graphics/samples/stacked_column.py
reportlab/graphics/widgetbase.py
reportlab/graphics/widgets/eventcal.py
reportlab/lib/fonts.py
reportlab/lib/utils.py
reportlab/pdfbase/pdfdoc.py
reportlab/pdfbase/pdfmetrics.py
reportlab/pdfbase/pdfutils.py
reportlab/pdfgen/canvas.py
reportlab/pdfgen/pdfimages.py
reportlab/platypus/doctemplate.py
reportlab/platypus/figures.py
reportlab/platypus/flowables.py
reportlab/platypus/frames.py
reportlab/platypus/para.py
reportlab/platypus/paragraph.py
reportlab/platypus/paraparser.py
reportlab/platypus/tables.py
reportlab/rl_config.py
reportlab/test/test_graphics_layout.py
reportlab/test/test_images.py
reportlab/test/test_invariant.py
reportlab/test/test_lib_utils.py
reportlab/test/test_pdfbase_postscript.py
reportlab/test/test_pdfgen_links.py
reportlab/test/test_rl_accel.py
reportlab/test/test_source_chars.py
reportlab/test/test_table_layout.py
reportlab/tools/docco/graphdocpy.py
reportlab/tools/pythonpoint/demos/slidebox.py
reportlab/tools/pythonpoint/pythonpoint.py
reportlab/tools/pythonpoint/stdparser.py
reportlab/tools/pythonpoint/styles/htu.py
--- a/reportlab/demos/odyssey/odyssey.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/demos/odyssey/odyssey.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/demos/odyssey/odyssey.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/demos/odyssey/odyssey.py,v 1.13 2003/09/11 22:07:34 andy_robinson Exp $
-__version__=''' $Id: odyssey.py,v 1.13 2003/09/11 22:07:34 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/demos/odyssey/odyssey.py,v 1.14 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: odyssey.py,v 1.14 2004/01/20 22:50:31 andy_robinson Exp $ '''
 ___doc__=''
 #odyssey.py
 #
@@ -32,8 +32,8 @@
 except ImportError:
     ACCEL = 0
 
-    
-    
+
+
 
 from reportlab.lib.units import inch, cm
 from reportlab.lib.pagesizes import A4
@@ -146,7 +146,7 @@
                 pages, elapsed, speed, fileSize)
     import md5
     print 'file digest: %s' % md5.md5(open('odyssey.pdf','rb').read()).hexdigest()
-    
+
 if __name__=='__main__':
     quiet = ('-q' in sys.argv)
     run(verbose = not quiet)
\ No newline at end of file
--- a/reportlab/docs/userguide/ch2a_fonts.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/docs/userguide/ch2a_fonts.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,7 +1,7 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/docs/userguide/ch2_graphics.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/docs/userguide/ch2a_fonts.py,v 1.10 2003/11/18 11:18:14 johnprecedo Exp $
+#$Header: /tmp/reportlab/reportlab/docs/userguide/ch2a_fonts.py,v 1.11 2004/01/20 22:50:31 andy_robinson Exp $
 from reportlab.tools.docco.rl_doc_utils import *
 from reportlab.lib.codecharts import SingleByteEncodingChart
 from reportlab.platypus import Image
@@ -637,7 +637,7 @@
 wrote pmout\\renderPM12.pct
 wrote pmout\\index.html""")
 
-disc("""This runs a number of tests progressing from a "Hello World" test, through various tests of  
+disc("""This runs a number of tests progressing from a "Hello World" test, through various tests of
 Lines; text strings in a number of sizes, fonts, colours and alignments; the basic shapes; translated
 and rotated groups; scaled coordinates; rotated strings; nested groups; anchoring and non-standard fonts.""")
 
--- a/reportlab/docs/userguide/ch3_pdffeatures.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/docs/userguide/ch3_pdffeatures.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,7 +1,7 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/docs/userguide/ch3_pdffeatures.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/docs/userguide/ch3_pdffeatures.py,v 1.5 2003/04/05 22:02:26 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/docs/userguide/ch3_pdffeatures.py,v 1.6 2004/01/20 22:50:31 andy_robinson Exp $
 from reportlab.tools.docco.rl_doc_utils import *
 
 
@@ -89,7 +89,7 @@
 disc("""
 Sometimes you want the destination of a jump to be some part of a page.
 The $FitR$ fitType allows you to identify a particular rectangle, scaling
-the area to fit the entire page. 
+the area to fit the entire page.
 """)
 
 disc("""
@@ -128,7 +128,7 @@
 disc("""
 <i>Note:</i> Two previous bookmark methods are supported but deprecated now
 that bookmarkPage is so general.  These are $bookmarkHorizontalAbsolute$
-and $bookmarkHorizontal$. 
+and $bookmarkHorizontal$.
 """)
 
 heading3("Defining internal links")
--- a/reportlab/graphics/charts/areas.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/charts/areas.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,10 +1,10 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/charts/areas.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/charts/areas.py,v 1.6 2003/09/16 15:32:53 johnprecedo Exp $
+#$Header: /tmp/reportlab/reportlab/graphics/charts/areas.py,v 1.7 2004/01/20 22:50:31 andy_robinson Exp $
 """This module defines a Area mixin classes
 """
-__version__=''' $Id: areas.py,v 1.6 2003/09/16 15:32:53 johnprecedo Exp $ '''
+__version__=''' $Id: areas.py,v 1.7 2004/01/20 22:50:31 andy_robinson Exp $ '''
 from reportlab.lib.validators import isNumber, isColor, isColorOrNone, isNoneOrShape
 from reportlab.graphics.widgetbase import Widget
 from reportlab.graphics.shapes import Rect, Group, Line, Polygon
@@ -73,13 +73,13 @@
                         c = strokeColor
                     if not strokeWidth: strokeWidth = 0.5
                     if fillColor or strokeColor or c:
-                        bg = Polygon([x,y,x,y+h,x+_3d_dx,y+h+_3d_dy,x+w+_3d_dx,y+h+_3d_dy,x+w+_3d_dx,y+_3d_dy,x+w,y], 
+                        bg = Polygon([x,y,x,y+h,x+_3d_dx,y+h+_3d_dy,x+w+_3d_dx,y+h+_3d_dy,x+w+_3d_dx,y+_3d_dy,x+w,y],
                             strokeColor=strokeColor or c or grey, strokeWidth=strokeWidth, fillColor=fillColor)
                         g.add(bg)
                         g.add(Line(x,y,x+_3d_dx,y+_3d_dy, strokeWidth=0.5, strokeColor=c))
                         g.add(Line(x+_3d_dx,y+_3d_dy, x+_3d_dx,y+h+_3d_dy,strokeWidth=0.5, strokeColor=c))
                         fc = Blacker(c, getattr(self,'_3d_blacken',0.8))
-                        g.add(Polygon([x,y,x+_3d_dx,y+_3d_dy,x+w+_3d_dx,y+_3d_dy,x+w,y], 
+                        g.add(Polygon([x,y,x+_3d_dx,y+_3d_dy,x+w+_3d_dx,y+_3d_dy,x+w,y],
                             strokeColor=strokeColor or c or grey, strokeWidth=strokeWidth, fillColor=fc))
                         bg = Line(x+_3d_dx,y+_3d_dy, x+w+_3d_dx,y+_3d_dy,strokeWidth=0.5, strokeColor=c)
                     else:
--- a/reportlab/graphics/charts/barcharts.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/charts/barcharts.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,7 +1,7 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/charts/barcharts.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/charts/barcharts.py,v 1.83 2003/11/24 22:40:44 rgbecker Exp $
+#$Header: /tmp/reportlab/reportlab/graphics/charts/barcharts.py,v 1.84 2004/01/20 22:50:31 andy_robinson Exp $
 """This module defines a variety of Bar Chart components.
 
 The basic flavors are Side-by-side, available in horizontal and
@@ -9,7 +9,7 @@
 
 Stacked and percentile bar charts to follow...
 """
-__version__=''' $Id: barcharts.py,v 1.83 2003/11/24 22:40:44 rgbecker Exp $ '''
+__version__=''' $Id: barcharts.py,v 1.84 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 import string, copy
 from types import FunctionType, StringType
@@ -184,7 +184,7 @@
             cA.gridEnd = vA._x+vA._length
             vA.gridStart = cA._y
             vA.gridEnd = cA._y+cA._length
-        
+
         cA.makeGrid(g,parent=self)
         vA.makeGrid(g,parent=self)
         g.add(self.makeBars())
--- a/reportlab/graphics/charts/doughnut.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/charts/doughnut.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,7 +1,7 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/charts/doughnut.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/charts/doughnut.py,v 1.6 2003/09/09 09:58:00 johnprecedo Exp $
+#$Header: /tmp/reportlab/reportlab/graphics/charts/doughnut.py,v 1.7 2004/01/20 22:50:31 andy_robinson Exp $
 # doughnut chart
 
 """Doughnut chart
@@ -10,7 +10,7 @@
 Can handle multiple series (which produce concentric 'rings' in the chart).
 
 """
-__version__=''' $Id: doughnut.py,v 1.6 2003/09/09 09:58:00 johnprecedo Exp $ '''
+__version__=''' $Id: doughnut.py,v 1.7 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 import copy
 from math import sin, cos, pi
@@ -209,7 +209,7 @@
                         cx = centerx + popdistance * cos(aveAngleRadians)
                         cy = centery + popdistance * sin(aveAngleRadians)
 
-                    if type(n) in (ListType,TupleType): 
+                    if type(n) in (ListType,TupleType):
                         theSector = Wedge(cx, cy, xradius+(sn*iradius)-iradius, a1, a2, yradius=yradius+(sn*iradius)-iradius, radius1=yradius+(sn*iradius)-(2*iradius))
                     else:
                         theSector = Wedge(cx, cy, xradius, a1, a2, yradius=yradius, radius1=iradius)
@@ -277,7 +277,7 @@
                 theSector.strokeDashArray = sectorStyle.strokeDashArray
 
                 g.add(theSector)
-                
+
                 # now draw a label
                 if labels[i] != "":
                     averageAngle = (a1+a2)/2.0
--- a/reportlab/graphics/charts/piecharts.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/charts/piecharts.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,7 +1,7 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/charts/piecharts.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/charts/piecharts.py,v 1.38 2003/09/16 13:32:27 rgbecker Exp $
+#$Header: /tmp/reportlab/reportlab/graphics/charts/piecharts.py,v 1.39 2004/01/20 22:50:31 andy_robinson Exp $
 # experimental pie chart script.  Two types of pie - one is a monolithic
 #widget with all top-level properties, the other delegates most stuff to
 #a wedges collection whic lets you customize the group or every individual
@@ -12,7 +12,7 @@
 This permits you to customize and pop out individual wedges;
 supports elliptical and circular pies.
 """
-__version__=''' $Id: piecharts.py,v 1.38 2003/09/16 13:32:27 rgbecker Exp $ '''
+__version__=''' $Id: piecharts.py,v 1.39 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 import copy
 from math import sin, cos, pi
@@ -29,7 +29,7 @@
 from reportlab.pdfgen.canvas import Canvas
 from reportlab.graphics.shapes import Group, Drawing, Ellipse, Wedge, String, STATE_DEFAULTS, ArcPath, Polygon
 from reportlab.graphics.widgetbase import Widget, TypedPropertyCollection, PropHolder
-from textlabels import Label 
+from textlabels import Label
 
 _ANGLE2BOXANCHOR={0:'w', 45:'sw', 90:'s', 135:'se', 180:'e', 225:'ne', 270:'n', 315: 'nw', -45: 'nw'}
 class WedgeLabel(Label):
@@ -610,7 +610,7 @@
         n = len(data)
         _sl3d = self._sl3d = []
         g = Group()
-        last = _360(self.startAngle) 
+        last = _360(self.startAngle)
         a0 = self.direction=='clockwise' and -1 or 1
         for v in data:
             v *= a0
--- a/reportlab/graphics/charts/textlabels.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/charts/textlabels.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/charts/textlabels.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/charts/textlabels.py,v 1.31 2003/12/10 14:39:42 rgbecker Exp $
-__version__=''' $Id: textlabels.py,v 1.31 2003/12/10 14:39:42 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/graphics/charts/textlabels.py,v 1.32 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: textlabels.py,v 1.32 2004/01/20 22:50:31 andy_robinson Exp $ '''
 import string
 
 from reportlab.lib import colors
@@ -235,7 +235,7 @@
         elif boxAnchor in ['s','sw','se']:
             self._top = self._height-topPadding
         else:
-            self._top = 0.5*self._eheight 
+            self._top = 0.5*self._eheight
         self._bottom = self._top - self._eheight
 
         if boxAnchor in ['ne','e','se']:
--- a/reportlab/graphics/charts/utils3d.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/charts/utils3d.py	Tue Jan 20 22:50:32 2004 +0000
@@ -187,7 +187,7 @@
 
     find_intersections returns a sequence of 4-tuples
         i, j, x, y
-    
+
     where i is a data index j is an insertion position for data[i]
     and x, y are coordinates of an intersection of series data[i]
     with some other series. If correctly implemented we get all such
--- a/reportlab/graphics/samples/bubble.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/bubble.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,68 +6,68 @@
 from excelcolors import *
 
 class Bubble(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.lines[0].strokeColor = color01
-		self.chart.lines[1].strokeColor = color02
-		self.chart.lines[2].strokeColor = color03
-		self.chart.lines[3].strokeColor = color04
-		self.chart.lines[4].strokeColor = color05
-		self.chart.lines[5].strokeColor = color06
-		self.chart.lines[6].strokeColor = color07
-		self.chart.lines[7].strokeColor = color08
-		self.chart.lines[8].strokeColor = color09
-		self.chart.lines[9].strokeColor = color10
-		self.chart.lines.symbol.kind        ='Circle'
-		self.chart.lines.symbol.size        = 15
-		self.chart.fillColor         = backgroundGrey
-		self.chart.lineLabels.fontName              = 'Helvetica'
-		self.chart.xValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.xValueAxis.labels.fontSize       = 7
-		self.chart.xValueAxis.forceZero             = 0
-		self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (350,450))]
-		self.chart.xValueAxis.avoidBoundFrac           = 1
-		self.chart.xValueAxis.gridEnd                  = 115
-		self.chart.xValueAxis.tickDown                 = 3
-		self.chart.xValueAxis.visibleGrid              = 1
-		self.chart.yValueAxis.tickLeft              = 3
-		self.chart.yValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.yValueAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.chart.lineLabelFormat  = None
-		self.chart.xLabel           = 'X Axis'
-		self.chart.y                = 30
-		self.chart.yLabel           = 'Y Axis'
-		self.chart.yValueAxis.labelTextFormat     = '%d'
-		self.chart.yValueAxis.forceZero           = 1
-		self.chart.xValueAxis.forceZero           = 1
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.lines[0].strokeColor = color01
+        self.chart.lines[1].strokeColor = color02
+        self.chart.lines[2].strokeColor = color03
+        self.chart.lines[3].strokeColor = color04
+        self.chart.lines[4].strokeColor = color05
+        self.chart.lines[5].strokeColor = color06
+        self.chart.lines[6].strokeColor = color07
+        self.chart.lines[7].strokeColor = color08
+        self.chart.lines[8].strokeColor = color09
+        self.chart.lines[9].strokeColor = color10
+        self.chart.lines.symbol.kind        ='Circle'
+        self.chart.lines.symbol.size        = 15
+        self.chart.fillColor         = backgroundGrey
+        self.chart.lineLabels.fontName              = 'Helvetica'
+        self.chart.xValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.xValueAxis.labels.fontSize       = 7
+        self.chart.xValueAxis.forceZero             = 0
+        self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (350,450))]
+        self.chart.xValueAxis.avoidBoundFrac           = 1
+        self.chart.xValueAxis.gridEnd                  = 115
+        self.chart.xValueAxis.tickDown                 = 3
+        self.chart.xValueAxis.visibleGrid              = 1
+        self.chart.yValueAxis.tickLeft              = 3
+        self.chart.yValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.yValueAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.chart.lineLabelFormat  = None
+        self.chart.xLabel           = 'X Axis'
+        self.chart.y                = 30
+        self.chart.yLabel           = 'Y Axis'
+        self.chart.yValueAxis.labelTextFormat     = '%d'
+        self.chart.yValueAxis.forceZero           = 1
+        self.chart.xValueAxis.forceZero           = 1
 
 
-		self._add(self,0,name='preview',validate=None,desc=None)
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	Bubble().save(formats=['pdf'],outDir=None,fnRoot='bubble')
+    Bubble().save(formats=['pdf'],outDir=None,fnRoot='bubble')
--- a/reportlab/graphics/samples/clustered_bar.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/clustered_bar.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,79 +6,79 @@
 from reportlab.graphics.charts.textlabels import Label
 
 class ClusteredBar(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,HorizontalBarChart(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.bars[0].fillColor = color01
-		self.chart.bars[1].fillColor = color02
-		self.chart.bars[2].fillColor = color03
-		self.chart.bars[3].fillColor = color04
-		self.chart.bars[4].fillColor = color05
-		self.chart.bars[5].fillColor = color06
-		self.chart.bars[6].fillColor = color07
-		self.chart.bars[7].fillColor = color08
-		self.chart.bars[8].fillColor = color09
-		self.chart.bars[9].fillColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.barLabels.fontName              = 'Helvetica'
-		self.chart.valueAxis.labels.fontName       = 'Helvetica'
-		self.chart.valueAxis.labels.fontSize       = 6
-		self.chart.valueAxis.forceZero             = 1
-		self.chart.data             = [(100, 150, 180), (125, 180, 200)]
-		self.chart.groupSpacing     = 15
-		self.chart.valueAxis.avoidBoundFrac           = 1
-		self.chart.valueAxis.gridEnd                  = 80
-		self.chart.valueAxis.tickDown                 = 3
-		self.chart.valueAxis.visibleGrid              = 1
-		self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
-		self.chart.categoryAxis.tickLeft              = 3
-		self.chart.categoryAxis.labels.fontName       = 'Helvetica'
-		self.chart.categoryAxis.labels.fontSize       = 6
-		self.chart.categoryAxis.labels.dx             = -3
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
-		self.XLabel.fontName       = 'Helvetica'
-		self.XLabel.fontSize       = 7
-		self.XLabel.x              = 85
-		self.XLabel.y              = 10
-		self.XLabel.textAnchor     ='middle'
-		self.XLabel.maxWidth       = 100
-		self.XLabel.height         = 20
-		self.XLabel._text          = "X Axis"
-		self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
-		self.YLabel.fontName       = 'Helvetica'
-		self.YLabel.fontSize       = 7
-		self.YLabel.x              = 12
-		self.YLabel.y              = 80
-		self.YLabel.angle          = 90
-		self.YLabel.textAnchor     ='middle'
-		self.YLabel.maxWidth       = 100
-		self.YLabel.height         = 20
-		self.YLabel._text          = "Y Axis"
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,HorizontalBarChart(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.bars[0].fillColor = color01
+        self.chart.bars[1].fillColor = color02
+        self.chart.bars[2].fillColor = color03
+        self.chart.bars[3].fillColor = color04
+        self.chart.bars[4].fillColor = color05
+        self.chart.bars[5].fillColor = color06
+        self.chart.bars[6].fillColor = color07
+        self.chart.bars[7].fillColor = color08
+        self.chart.bars[8].fillColor = color09
+        self.chart.bars[9].fillColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.barLabels.fontName              = 'Helvetica'
+        self.chart.valueAxis.labels.fontName       = 'Helvetica'
+        self.chart.valueAxis.labels.fontSize       = 6
+        self.chart.valueAxis.forceZero             = 1
+        self.chart.data             = [(100, 150, 180), (125, 180, 200)]
+        self.chart.groupSpacing     = 15
+        self.chart.valueAxis.avoidBoundFrac           = 1
+        self.chart.valueAxis.gridEnd                  = 80
+        self.chart.valueAxis.tickDown                 = 3
+        self.chart.valueAxis.visibleGrid              = 1
+        self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
+        self.chart.categoryAxis.tickLeft              = 3
+        self.chart.categoryAxis.labels.fontName       = 'Helvetica'
+        self.chart.categoryAxis.labels.fontSize       = 6
+        self.chart.categoryAxis.labels.dx             = -3
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
+        self.XLabel.fontName       = 'Helvetica'
+        self.XLabel.fontSize       = 7
+        self.XLabel.x              = 85
+        self.XLabel.y              = 10
+        self.XLabel.textAnchor     ='middle'
+        self.XLabel.maxWidth       = 100
+        self.XLabel.height         = 20
+        self.XLabel._text          = "X Axis"
+        self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
+        self.YLabel.fontName       = 'Helvetica'
+        self.YLabel.fontSize       = 7
+        self.YLabel.x              = 12
+        self.YLabel.y              = 80
+        self.YLabel.angle          = 90
+        self.YLabel.textAnchor     ='middle'
+        self.YLabel.maxWidth       = 100
+        self.YLabel.height         = 20
+        self.YLabel._text          = "Y Axis"
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	ClusteredBar().save(formats=['pdf'],outDir=None,fnRoot='clustered_bar')
\ No newline at end of file
+    ClusteredBar().save(formats=['pdf'],outDir=None,fnRoot='clustered_bar')
\ No newline at end of file
--- a/reportlab/graphics/samples/clustered_column.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/clustered_column.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,78 +6,78 @@
 from reportlab.graphics.charts.textlabels import Label
 
 class ClusteredColumn(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,VerticalBarChart(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.bars[0].fillColor = color01
-		self.chart.bars[1].fillColor = color02
-		self.chart.bars[2].fillColor = color03
-		self.chart.bars[3].fillColor = color04
-		self.chart.bars[4].fillColor = color05
-		self.chart.bars[5].fillColor = color06
-		self.chart.bars[6].fillColor = color07
-		self.chart.bars[7].fillColor = color08
-		self.chart.bars[8].fillColor = color09
-		self.chart.bars[9].fillColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.barLabels.fontName              = 'Helvetica'
-		self.chart.valueAxis.labels.fontName       = 'Helvetica'
-		self.chart.valueAxis.labels.fontSize       = 7
-		self.chart.valueAxis.forceZero             = 1
-		self.chart.data             = [(100, 150, 180), (125, 180, 200)]
-		self.chart.groupSpacing     = 15
-		self.chart.valueAxis.avoidBoundFrac           = 1
-		self.chart.valueAxis.gridEnd                  = 115
-		self.chart.valueAxis.tickLeft                 = 3
-		self.chart.valueAxis.visibleGrid              = 1
-		self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
-		self.chart.categoryAxis.tickDown              = 3
-		self.chart.categoryAxis.labels.fontName       = 'Helvetica'
-		self.chart.categoryAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth  = 180
-		self.Title.height    = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
-		self.XLabel.fontName       = 'Helvetica'
-		self.XLabel.fontSize       = 7
-		self.XLabel.x              = 85
-		self.XLabel.y              = 10
-		self.XLabel.textAnchor     ='middle'
-		self.XLabel.maxWidth       = 100
-		self.XLabel.height         = 20
-		self.XLabel._text           = "X Axis"
-		self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
-		self.YLabel.fontName       = 'Helvetica'
-		self.YLabel.fontSize       = 7
-		self.YLabel.x              = 12
-		self.YLabel.y              = 80
-		self.YLabel.angle          = 90
-		self.YLabel.textAnchor     ='middle'
-		self.YLabel.maxWidth       = 100
-		self.YLabel.height         = 20
-		self.YLabel._text           = "Y Axis"
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,VerticalBarChart(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.bars[0].fillColor = color01
+        self.chart.bars[1].fillColor = color02
+        self.chart.bars[2].fillColor = color03
+        self.chart.bars[3].fillColor = color04
+        self.chart.bars[4].fillColor = color05
+        self.chart.bars[5].fillColor = color06
+        self.chart.bars[6].fillColor = color07
+        self.chart.bars[7].fillColor = color08
+        self.chart.bars[8].fillColor = color09
+        self.chart.bars[9].fillColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.barLabels.fontName              = 'Helvetica'
+        self.chart.valueAxis.labels.fontName       = 'Helvetica'
+        self.chart.valueAxis.labels.fontSize       = 7
+        self.chart.valueAxis.forceZero             = 1
+        self.chart.data             = [(100, 150, 180), (125, 180, 200)]
+        self.chart.groupSpacing     = 15
+        self.chart.valueAxis.avoidBoundFrac           = 1
+        self.chart.valueAxis.gridEnd                  = 115
+        self.chart.valueAxis.tickLeft                 = 3
+        self.chart.valueAxis.visibleGrid              = 1
+        self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
+        self.chart.categoryAxis.tickDown              = 3
+        self.chart.categoryAxis.labels.fontName       = 'Helvetica'
+        self.chart.categoryAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth  = 180
+        self.Title.height    = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
+        self.XLabel.fontName       = 'Helvetica'
+        self.XLabel.fontSize       = 7
+        self.XLabel.x              = 85
+        self.XLabel.y              = 10
+        self.XLabel.textAnchor     ='middle'
+        self.XLabel.maxWidth       = 100
+        self.XLabel.height         = 20
+        self.XLabel._text           = "X Axis"
+        self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
+        self.YLabel.fontName       = 'Helvetica'
+        self.YLabel.fontSize       = 7
+        self.YLabel.x              = 12
+        self.YLabel.y              = 80
+        self.YLabel.angle          = 90
+        self.YLabel.textAnchor     ='middle'
+        self.YLabel.maxWidth       = 100
+        self.YLabel.height         = 20
+        self.YLabel._text           = "Y Axis"
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	ClusteredColumn().save(formats=['pdf'],outDir=None,fnRoot='clustered_column')
+    ClusteredColumn().save(formats=['pdf'],outDir=None,fnRoot='clustered_column')
--- a/reportlab/graphics/samples/exploded_pie.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/exploded_pie.py	Tue Jan 20 22:50:32 2004 +0000
@@ -7,59 +7,59 @@
 from reportlab.graphics.charts.textlabels import Label
 
 class ExplodedPie(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,Pie(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 100
-		self.chart.height     = 100
-		self.chart.x          = 25
-		self.chart.y          = 25
-		self.chart.slices[0].fillColor = color01
-		self.chart.slices[1].fillColor = color02
-		self.chart.slices[2].fillColor = color03
-		self.chart.slices[3].fillColor = color04
-		self.chart.slices[4].fillColor = color05
-		self.chart.slices[5].fillColor = color06
-		self.chart.slices[6].fillColor = color07
-		self.chart.slices[7].fillColor = color08
-		self.chart.slices[8].fillColor = color09
-		self.chart.slices[9].fillColor = color10
-		self.chart.data                = (100, 150, 180)
-		self.chart.startAngle          = -90
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'North'), (color02, 'South'), (color03, 'Central')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 160
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.Legend.columnMaximum  = 10
-		self.chart.slices.strokeWidth  = 1
-		self.chart.slices.fontName     = 'Helvetica'
-		self.background                = ShadedRect()
-		self.background.fillColorStart = backgroundGrey
-		self.background.fillColorEnd   = backgroundGrey
-		self.background.numShades      = 1
-		self.background.strokeWidth    = 0.5
-		self.background.x              = 20
-		self.background.y              = 20
-		self.chart.slices.popout       = 5
-		self.background.height         = 110
-		self.background.width          = 110
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,Pie(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 100
+        self.chart.height     = 100
+        self.chart.x          = 25
+        self.chart.y          = 25
+        self.chart.slices[0].fillColor = color01
+        self.chart.slices[1].fillColor = color02
+        self.chart.slices[2].fillColor = color03
+        self.chart.slices[3].fillColor = color04
+        self.chart.slices[4].fillColor = color05
+        self.chart.slices[5].fillColor = color06
+        self.chart.slices[6].fillColor = color07
+        self.chart.slices[7].fillColor = color08
+        self.chart.slices[8].fillColor = color09
+        self.chart.slices[9].fillColor = color10
+        self.chart.data                = (100, 150, 180)
+        self.chart.startAngle          = -90
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'North'), (color02, 'South'), (color03, 'Central')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 160
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.Legend.columnMaximum  = 10
+        self.chart.slices.strokeWidth  = 1
+        self.chart.slices.fontName     = 'Helvetica'
+        self.background                = ShadedRect()
+        self.background.fillColorStart = backgroundGrey
+        self.background.fillColorEnd   = backgroundGrey
+        self.background.numShades      = 1
+        self.background.strokeWidth    = 0.5
+        self.background.x              = 20
+        self.background.y              = 20
+        self.chart.slices.popout       = 5
+        self.background.height         = 110
+        self.background.width          = 110
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	ExplodedPie().save(formats=['pdf'],outDir=None,fnRoot='exploded_pie')
\ No newline at end of file
+    ExplodedPie().save(formats=['pdf'],outDir=None,fnRoot='exploded_pie')
\ No newline at end of file
--- a/reportlab/graphics/samples/filled_radar.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/filled_radar.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,49 +6,49 @@
 from excelcolors import *
 
 class FilledRadarChart(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,SpiderChart(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 90
-		self.chart.height     = 90
-		self.chart.x          = 45
-		self.chart.y          = 25
-		self.chart.strands[0].fillColor  = color01
-		self.chart.strands[1].fillColor  = color02
-		self.chart.strands[2].fillColor  = color03
-		self.chart.strands[3].fillColor  = color04
-		self.chart.strands[4].fillColor  = color05
-		self.chart.strands[5].fillColor  = color06
-		self.chart.strands[6].fillColor  = color07
-		self.chart.strands[7].fillColor  = color08
-		self.chart.strands[8].fillColor  = color09
-		self.chart.strands[9].fillColor  = color10
-		self.chart.strands.fontName      = 'Helvetica'
-		self.chart.strands.fontSize      = 6
-		self.chart.fillColor             = backgroundGrey
-		self.chart.data                  = [(125, 180, 200), (100, 150, 180)]
-		self.chart.labels                = ['North', 'South', 'Central']
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,SpiderChart(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 90
+        self.chart.height     = 90
+        self.chart.x          = 45
+        self.chart.y          = 25
+        self.chart.strands[0].fillColor  = color01
+        self.chart.strands[1].fillColor  = color02
+        self.chart.strands[2].fillColor  = color03
+        self.chart.strands[3].fillColor  = color04
+        self.chart.strands[4].fillColor  = color05
+        self.chart.strands[5].fillColor  = color06
+        self.chart.strands[6].fillColor  = color07
+        self.chart.strands[7].fillColor  = color08
+        self.chart.strands[8].fillColor  = color09
+        self.chart.strands[9].fillColor  = color10
+        self.chart.strands.fontName      = 'Helvetica'
+        self.chart.strands.fontSize      = 6
+        self.chart.fillColor             = backgroundGrey
+        self.chart.data                  = [(125, 180, 200), (100, 150, 180)]
+        self.chart.labels                = ['North', 'South', 'Central']
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	FilledRadarChart().save(formats=['pdf'],outDir=None,fnRoot='filled_radar')
\ No newline at end of file
+    FilledRadarChart().save(formats=['pdf'],outDir=None,fnRoot='filled_radar')
\ No newline at end of file
--- a/reportlab/graphics/samples/line_chart.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/line_chart.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,78 +6,78 @@
 from excelcolors import *
 
 class LineChart(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,LinePlot(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.lines[0].strokeColor = color01
-		self.chart.lines[1].strokeColor = color02
-		self.chart.lines[2].strokeColor = color03
-		self.chart.lines[3].strokeColor = color04
-		self.chart.lines[4].strokeColor = color05
-		self.chart.lines[5].strokeColor = color06
-		self.chart.lines[6].strokeColor = color07
-		self.chart.lines[7].strokeColor = color08
-		self.chart.lines[8].strokeColor = color09
-		self.chart.lines[9].strokeColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.lineLabels.fontName              = 'Helvetica'
-		self.chart.xValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.xValueAxis.labels.fontSize       = 7
-		self.chart.xValueAxis.forceZero             = 0
-		self.chart.data             = [((0, 50), (100,100), (200,200), (250,210), (300,300), (400,500)), ((0, 150), (100,200), (200,300), (250,200), (300,400), (400, 600))]
-		self.chart.xValueAxis.avoidBoundFrac           = 1
-		self.chart.xValueAxis.gridEnd                  = 115
-		self.chart.xValueAxis.tickDown                 = 3
-		self.chart.xValueAxis.visibleGrid              = 1
-		self.chart.yValueAxis.tickLeft              = 3
-		self.chart.yValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.yValueAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
-		self.XLabel.fontName       = 'Helvetica'
-		self.XLabel.fontSize       = 7
-		self.XLabel.x              = 85
-		self.XLabel.y              = 10
-		self.XLabel.textAnchor     ='middle'
-		self.XLabel.maxWidth       = 100
-		self.XLabel.height         = 20
-		self.XLabel._text          = "X Axis"
-		self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
-		self.YLabel.fontName       = 'Helvetica'
-		self.YLabel.fontSize       = 7
-		self.YLabel.x              = 12
-		self.YLabel.y              = 80
-		self.YLabel.angle          = 90
-		self.YLabel.textAnchor     ='middle'
-		self.YLabel.maxWidth       = 100
-		self.YLabel.height         = 20
-		self.YLabel._text          = "Y Axis"
-		self.chart.yValueAxis.forceZero           = 1
-		self.chart.xValueAxis.forceZero           = 1
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,LinePlot(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.lines[0].strokeColor = color01
+        self.chart.lines[1].strokeColor = color02
+        self.chart.lines[2].strokeColor = color03
+        self.chart.lines[3].strokeColor = color04
+        self.chart.lines[4].strokeColor = color05
+        self.chart.lines[5].strokeColor = color06
+        self.chart.lines[6].strokeColor = color07
+        self.chart.lines[7].strokeColor = color08
+        self.chart.lines[8].strokeColor = color09
+        self.chart.lines[9].strokeColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.lineLabels.fontName              = 'Helvetica'
+        self.chart.xValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.xValueAxis.labels.fontSize       = 7
+        self.chart.xValueAxis.forceZero             = 0
+        self.chart.data             = [((0, 50), (100,100), (200,200), (250,210), (300,300), (400,500)), ((0, 150), (100,200), (200,300), (250,200), (300,400), (400, 600))]
+        self.chart.xValueAxis.avoidBoundFrac           = 1
+        self.chart.xValueAxis.gridEnd                  = 115
+        self.chart.xValueAxis.tickDown                 = 3
+        self.chart.xValueAxis.visibleGrid              = 1
+        self.chart.yValueAxis.tickLeft              = 3
+        self.chart.yValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.yValueAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
+        self.XLabel.fontName       = 'Helvetica'
+        self.XLabel.fontSize       = 7
+        self.XLabel.x              = 85
+        self.XLabel.y              = 10
+        self.XLabel.textAnchor     ='middle'
+        self.XLabel.maxWidth       = 100
+        self.XLabel.height         = 20
+        self.XLabel._text          = "X Axis"
+        self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
+        self.YLabel.fontName       = 'Helvetica'
+        self.YLabel.fontSize       = 7
+        self.YLabel.x              = 12
+        self.YLabel.y              = 80
+        self.YLabel.angle          = 90
+        self.YLabel.textAnchor     ='middle'
+        self.YLabel.maxWidth       = 100
+        self.YLabel.height         = 20
+        self.YLabel._text          = "Y Axis"
+        self.chart.yValueAxis.forceZero           = 1
+        self.chart.xValueAxis.forceZero           = 1
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	LineChart().save(formats=['pdf'],outDir=None,fnRoot='line_chart')
+    LineChart().save(formats=['pdf'],outDir=None,fnRoot='line_chart')
--- a/reportlab/graphics/samples/linechart_with_markers.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/linechart_with_markers.py	Tue Jan 20 22:50:32 2004 +0000
@@ -7,88 +7,88 @@
 from excelcolors import *
 
 class LineChartWithMarkers(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,LinePlot(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.lines[0].strokeColor = color01
-		self.chart.lines[1].strokeColor = color02
-		self.chart.lines[2].strokeColor = color03
-		self.chart.lines[3].strokeColor = color04
-		self.chart.lines[4].strokeColor = color05
-		self.chart.lines[5].strokeColor = color06
-		self.chart.lines[6].strokeColor = color07
-		self.chart.lines[7].strokeColor = color08
-		self.chart.lines[8].strokeColor = color09
-		self.chart.lines[9].strokeColor = color10
-		self.chart.lines[0].symbol = makeMarker('FilledSquare')
-		self.chart.lines[1].symbol = makeMarker('FilledDiamond')
-		self.chart.lines[2].symbol = makeMarker('FilledStarFive')
-		self.chart.lines[3].symbol = makeMarker('FilledTriangle')
-		self.chart.lines[4].symbol = makeMarker('FilledCircle')
-		self.chart.lines[5].symbol = makeMarker('FilledPentagon')
-		self.chart.lines[6].symbol = makeMarker('FilledStarSix')
-		self.chart.lines[7].symbol = makeMarker('FilledHeptagon')
-		self.chart.lines[8].symbol = makeMarker('FilledOctagon')
-		self.chart.lines[9].symbol = makeMarker('FilledCross')
-		self.chart.fillColor       = backgroundGrey
-		self.chart.lineLabels.fontName              = 'Helvetica'
-		self.chart.xValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.xValueAxis.labels.fontSize       = 7
-		self.chart.xValueAxis.forceZero             = 0
-		self.chart.data             = [((0, 50), (100,100), (200,200), (250,210), (300,300), (400,500)), ((0, 150), (100,200), (200,300), (250,200), (300,400), (400, 600))]
-		self.chart.xValueAxis.avoidBoundFrac           = 1
-		self.chart.xValueAxis.gridEnd                  = 115
-		self.chart.xValueAxis.tickDown                 = 3
-		self.chart.xValueAxis.visibleGrid              = 1
-		self.chart.yValueAxis.tickLeft              = 3
-		self.chart.yValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.yValueAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
-		self.XLabel.fontName       = 'Helvetica'
-		self.XLabel.fontSize       = 7
-		self.XLabel.x              = 85
-		self.XLabel.y              = 10
-		self.XLabel.textAnchor     ='middle'
-		self.XLabel.maxWidth       = 100
-		self.XLabel.height         = 20
-		self.XLabel._text          = "X Axis"
-		self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
-		self.YLabel.fontName       = 'Helvetica'
-		self.YLabel.fontSize       = 7
-		self.YLabel.x              = 12
-		self.YLabel.y              = 80
-		self.YLabel.angle          = 90
-		self.YLabel.textAnchor     ='middle'
-		self.YLabel.maxWidth       = 100
-		self.YLabel.height         = 20
-		self.YLabel._text          = "Y Axis"
-		self.chart.yValueAxis.forceZero           = 1
-		self.chart.xValueAxis.forceZero           = 1
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,LinePlot(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.lines[0].strokeColor = color01
+        self.chart.lines[1].strokeColor = color02
+        self.chart.lines[2].strokeColor = color03
+        self.chart.lines[3].strokeColor = color04
+        self.chart.lines[4].strokeColor = color05
+        self.chart.lines[5].strokeColor = color06
+        self.chart.lines[6].strokeColor = color07
+        self.chart.lines[7].strokeColor = color08
+        self.chart.lines[8].strokeColor = color09
+        self.chart.lines[9].strokeColor = color10
+        self.chart.lines[0].symbol = makeMarker('FilledSquare')
+        self.chart.lines[1].symbol = makeMarker('FilledDiamond')
+        self.chart.lines[2].symbol = makeMarker('FilledStarFive')
+        self.chart.lines[3].symbol = makeMarker('FilledTriangle')
+        self.chart.lines[4].symbol = makeMarker('FilledCircle')
+        self.chart.lines[5].symbol = makeMarker('FilledPentagon')
+        self.chart.lines[6].symbol = makeMarker('FilledStarSix')
+        self.chart.lines[7].symbol = makeMarker('FilledHeptagon')
+        self.chart.lines[8].symbol = makeMarker('FilledOctagon')
+        self.chart.lines[9].symbol = makeMarker('FilledCross')
+        self.chart.fillColor       = backgroundGrey
+        self.chart.lineLabels.fontName              = 'Helvetica'
+        self.chart.xValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.xValueAxis.labels.fontSize       = 7
+        self.chart.xValueAxis.forceZero             = 0
+        self.chart.data             = [((0, 50), (100,100), (200,200), (250,210), (300,300), (400,500)), ((0, 150), (100,200), (200,300), (250,200), (300,400), (400, 600))]
+        self.chart.xValueAxis.avoidBoundFrac           = 1
+        self.chart.xValueAxis.gridEnd                  = 115
+        self.chart.xValueAxis.tickDown                 = 3
+        self.chart.xValueAxis.visibleGrid              = 1
+        self.chart.yValueAxis.tickLeft              = 3
+        self.chart.yValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.yValueAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
+        self.XLabel.fontName       = 'Helvetica'
+        self.XLabel.fontSize       = 7
+        self.XLabel.x              = 85
+        self.XLabel.y              = 10
+        self.XLabel.textAnchor     ='middle'
+        self.XLabel.maxWidth       = 100
+        self.XLabel.height         = 20
+        self.XLabel._text          = "X Axis"
+        self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
+        self.YLabel.fontName       = 'Helvetica'
+        self.YLabel.fontSize       = 7
+        self.YLabel.x              = 12
+        self.YLabel.y              = 80
+        self.YLabel.angle          = 90
+        self.YLabel.textAnchor     ='middle'
+        self.YLabel.maxWidth       = 100
+        self.YLabel.height         = 20
+        self.YLabel._text          = "Y Axis"
+        self.chart.yValueAxis.forceZero           = 1
+        self.chart.xValueAxis.forceZero           = 1
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	LineChartWithMarkers().save(formats=['pdf'],outDir=None,fnRoot='linechart_with_markers')
+    LineChartWithMarkers().save(formats=['pdf'],outDir=None,fnRoot='linechart_with_markers')
--- a/reportlab/graphics/samples/radar.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/radar.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,61 +6,61 @@
 from reportlab.graphics.charts.textlabels import Label
 
 class RadarChart(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,SpiderChart(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 90
-		self.chart.height     = 90
-		self.chart.x          = 45
-		self.chart.y          = 25
-		self.chart.strands[0].strokeColor= color01
-		self.chart.strands[1].strokeColor= color02
-		self.chart.strands[2].strokeColor= color03
-		self.chart.strands[3].strokeColor= color04
-		self.chart.strands[4].strokeColor= color05
-		self.chart.strands[5].strokeColor= color06
-		self.chart.strands[6].strokeColor= color07
-		self.chart.strands[7].strokeColor= color08
-		self.chart.strands[8].strokeColor= color09
-		self.chart.strands[9].strokeColor= color10
-		self.chart.strands[0].fillColor  = None
-		self.chart.strands[1].fillColor  = None
-		self.chart.strands[2].fillColor  = None
-		self.chart.strands[3].fillColor  = None
-		self.chart.strands[4].fillColor  = None
-		self.chart.strands[5].fillColor  = None
-		self.chart.strands[6].fillColor  = None
-		self.chart.strands[7].fillColor  = None
-		self.chart.strands[8].fillColor  = None
-		self.chart.strands[9].fillColor  = None
-		self.chart.strands.strokeWidth   = 1
-		self.chart.strands.fontName      = 'Helvetica'
-		self.chart.strands.fontSize      = 6
-		self.chart.fillColor             = backgroundGrey
-		self.chart.data                  = [(125, 180, 200), (100, 150, 180)]
-		self.chart.labels                = ['North', 'South', 'Central']
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.chart.strands.strokeWidth     = 1
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,SpiderChart(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 90
+        self.chart.height     = 90
+        self.chart.x          = 45
+        self.chart.y          = 25
+        self.chart.strands[0].strokeColor= color01
+        self.chart.strands[1].strokeColor= color02
+        self.chart.strands[2].strokeColor= color03
+        self.chart.strands[3].strokeColor= color04
+        self.chart.strands[4].strokeColor= color05
+        self.chart.strands[5].strokeColor= color06
+        self.chart.strands[6].strokeColor= color07
+        self.chart.strands[7].strokeColor= color08
+        self.chart.strands[8].strokeColor= color09
+        self.chart.strands[9].strokeColor= color10
+        self.chart.strands[0].fillColor  = None
+        self.chart.strands[1].fillColor  = None
+        self.chart.strands[2].fillColor  = None
+        self.chart.strands[3].fillColor  = None
+        self.chart.strands[4].fillColor  = None
+        self.chart.strands[5].fillColor  = None
+        self.chart.strands[6].fillColor  = None
+        self.chart.strands[7].fillColor  = None
+        self.chart.strands[8].fillColor  = None
+        self.chart.strands[9].fillColor  = None
+        self.chart.strands.strokeWidth   = 1
+        self.chart.strands.fontName      = 'Helvetica'
+        self.chart.strands.fontSize      = 6
+        self.chart.fillColor             = backgroundGrey
+        self.chart.data                  = [(125, 180, 200), (100, 150, 180)]
+        self.chart.labels                = ['North', 'South', 'Central']
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.chart.strands.strokeWidth     = 1
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	RadarChart().save(formats=['pdf'],outDir=None,fnRoot='radar')
\ No newline at end of file
+    RadarChart().save(formats=['pdf'],outDir=None,fnRoot='radar')
\ No newline at end of file
--- a/reportlab/graphics/samples/runall.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/runall.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,4 +1,4 @@
-# runs all the GUIedit charts in this directory - 
+# runs all the GUIedit charts in this directory -
 # makes a PDF sample for eaxh existing chart type
 import sys
 import glob
@@ -57,4 +57,3 @@
             print '   if format is missing the following formats are assumed: pdf,pict,png'
             print '   -h prints this message'
             raise
-            
\ No newline at end of file
--- a/reportlab/graphics/samples/scatter.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/scatter.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,66 +6,66 @@
 from excelcolors import *
 
 class Scatter(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.lines[0].strokeColor = color01
-		self.chart.lines[1].strokeColor = color02
-		self.chart.lines[2].strokeColor = color03
-		self.chart.lines[3].strokeColor = color04
-		self.chart.lines[4].strokeColor = color05
-		self.chart.lines[5].strokeColor = color06
-		self.chart.lines[6].strokeColor = color07
-		self.chart.lines[7].strokeColor = color08
-		self.chart.lines[8].strokeColor = color09
-		self.chart.lines[9].strokeColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.lineLabels.fontName              = 'Helvetica'
-		self.chart.xValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.xValueAxis.labels.fontSize       = 7
-		self.chart.xValueAxis.forceZero             = 0
-		self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (400,500)), ((100,200), (200,300), (250,200), (300,400), (400, 600))]
-		self.chart.xValueAxis.avoidBoundFrac           = 1
-		self.chart.xValueAxis.gridEnd                  = 115
-		self.chart.xValueAxis.tickDown                 = 3
-		self.chart.xValueAxis.visibleGrid              = 1
-		self.chart.yValueAxis.tickLeft              = 3
-		self.chart.yValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.yValueAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.chart.lineLabelFormat  = None
-		self.chart.xLabel           = 'X Axis'
-		self.chart.y                = 30
-		self.chart.yLabel           = 'Y Axis'
-		self.chart.yValueAxis.labelTextFormat     = '%d'
-		self.chart.yValueAxis.forceZero           = 1
-		self.chart.xValueAxis.forceZero           = 1
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.lines[0].strokeColor = color01
+        self.chart.lines[1].strokeColor = color02
+        self.chart.lines[2].strokeColor = color03
+        self.chart.lines[3].strokeColor = color04
+        self.chart.lines[4].strokeColor = color05
+        self.chart.lines[5].strokeColor = color06
+        self.chart.lines[6].strokeColor = color07
+        self.chart.lines[7].strokeColor = color08
+        self.chart.lines[8].strokeColor = color09
+        self.chart.lines[9].strokeColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.lineLabels.fontName              = 'Helvetica'
+        self.chart.xValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.xValueAxis.labels.fontSize       = 7
+        self.chart.xValueAxis.forceZero             = 0
+        self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (400,500)), ((100,200), (200,300), (250,200), (300,400), (400, 600))]
+        self.chart.xValueAxis.avoidBoundFrac           = 1
+        self.chart.xValueAxis.gridEnd                  = 115
+        self.chart.xValueAxis.tickDown                 = 3
+        self.chart.xValueAxis.visibleGrid              = 1
+        self.chart.yValueAxis.tickLeft              = 3
+        self.chart.yValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.yValueAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.chart.lineLabelFormat  = None
+        self.chart.xLabel           = 'X Axis'
+        self.chart.y                = 30
+        self.chart.yLabel           = 'Y Axis'
+        self.chart.yValueAxis.labelTextFormat     = '%d'
+        self.chart.yValueAxis.forceZero           = 1
+        self.chart.xValueAxis.forceZero           = 1
 
 
-		self._add(self,0,name='preview',validate=None,desc=None)
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	Scatter().save(formats=['pdf'],outDir=None,fnRoot='scatter')
+    Scatter().save(formats=['pdf'],outDir=None,fnRoot='scatter')
--- a/reportlab/graphics/samples/scatter_lines.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/scatter_lines.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,77 +6,77 @@
 from excelcolors import *
 
 class ScatterLines(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.lines[0].strokeColor = color01
-		self.chart.lines[1].strokeColor = color02
-		self.chart.lines[2].strokeColor = color03
-		self.chart.lines[3].strokeColor = color04
-		self.chart.lines[4].strokeColor = color05
-		self.chart.lines[5].strokeColor = color06
-		self.chart.lines[6].strokeColor = color07
-		self.chart.lines[7].strokeColor = color08
-		self.chart.lines[8].strokeColor = color09
-		self.chart.lines[9].strokeColor = color10
-		self.chart.lines[0].symbol = None
-		self.chart.lines[1].symbol = None
-		self.chart.lines[2].symbol = None
-		self.chart.lines[3].symbol = None
-		self.chart.lines[4].symbol = None
-		self.chart.lines[5].symbol = None
-		self.chart.lines[6].symbol = None
-		self.chart.lines[7].symbol = None
-		self.chart.lines[8].symbol = None
-		self.chart.lines[9].symbol = None
-		self.chart.fillColor         = backgroundGrey
-		self.chart.lineLabels.fontName              = 'Helvetica'
-		self.chart.xValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.xValueAxis.labels.fontSize       = 7
-		self.chart.xValueAxis.forceZero             = 0
-		self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (400,500)), ((100,200), (200,300), (250,200), (300,400), (400, 600))]
-		self.chart.xValueAxis.avoidBoundFrac           = 1
-		self.chart.xValueAxis.gridEnd                  = 115
-		self.chart.xValueAxis.tickDown                 = 3
-		self.chart.xValueAxis.visibleGrid              = 1
-		self.chart.yValueAxis.tickLeft              = 3
-		self.chart.yValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.yValueAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.chart.lineLabelFormat  = None
-		self.chart.xLabel           = 'X Axis'
-		self.chart.y                = 30
-		self.chart.yLabel           = 'Y Axis'
-		self.chart.yValueAxis.gridEnd             = 115
-		self.chart.yValueAxis.visibleGrid         = 1
-		self.chart.yValueAxis.labelTextFormat     = '%d'
-		self.chart.yValueAxis.forceZero           = 1
-		self.chart.xValueAxis.forceZero           = 1
-		self.chart.joinedLines                    = 1
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.lines[0].strokeColor = color01
+        self.chart.lines[1].strokeColor = color02
+        self.chart.lines[2].strokeColor = color03
+        self.chart.lines[3].strokeColor = color04
+        self.chart.lines[4].strokeColor = color05
+        self.chart.lines[5].strokeColor = color06
+        self.chart.lines[6].strokeColor = color07
+        self.chart.lines[7].strokeColor = color08
+        self.chart.lines[8].strokeColor = color09
+        self.chart.lines[9].strokeColor = color10
+        self.chart.lines[0].symbol = None
+        self.chart.lines[1].symbol = None
+        self.chart.lines[2].symbol = None
+        self.chart.lines[3].symbol = None
+        self.chart.lines[4].symbol = None
+        self.chart.lines[5].symbol = None
+        self.chart.lines[6].symbol = None
+        self.chart.lines[7].symbol = None
+        self.chart.lines[8].symbol = None
+        self.chart.lines[9].symbol = None
+        self.chart.fillColor         = backgroundGrey
+        self.chart.lineLabels.fontName              = 'Helvetica'
+        self.chart.xValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.xValueAxis.labels.fontSize       = 7
+        self.chart.xValueAxis.forceZero             = 0
+        self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (400,500)), ((100,200), (200,300), (250,200), (300,400), (400, 600))]
+        self.chart.xValueAxis.avoidBoundFrac           = 1
+        self.chart.xValueAxis.gridEnd                  = 115
+        self.chart.xValueAxis.tickDown                 = 3
+        self.chart.xValueAxis.visibleGrid              = 1
+        self.chart.yValueAxis.tickLeft              = 3
+        self.chart.yValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.yValueAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.chart.lineLabelFormat  = None
+        self.chart.xLabel           = 'X Axis'
+        self.chart.y                = 30
+        self.chart.yLabel           = 'Y Axis'
+        self.chart.yValueAxis.gridEnd             = 115
+        self.chart.yValueAxis.visibleGrid         = 1
+        self.chart.yValueAxis.labelTextFormat     = '%d'
+        self.chart.yValueAxis.forceZero           = 1
+        self.chart.xValueAxis.forceZero           = 1
+        self.chart.joinedLines                    = 1
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	ScatterLines().save(formats=['pdf'],outDir=None,fnRoot='scatter_lines')
+    ScatterLines().save(formats=['pdf'],outDir=None,fnRoot='scatter_lines')
--- a/reportlab/graphics/samples/scatter_lines_markers.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/scatter_lines_markers.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,67 +6,67 @@
 from excelcolors import *
 
 class ScatterLinesMarkers(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.lines[0].strokeColor = color01
-		self.chart.lines[1].strokeColor = color02
-		self.chart.lines[2].strokeColor = color03
-		self.chart.lines[3].strokeColor = color04
-		self.chart.lines[4].strokeColor = color05
-		self.chart.lines[5].strokeColor = color06
-		self.chart.lines[6].strokeColor = color07
-		self.chart.lines[7].strokeColor = color08
-		self.chart.lines[8].strokeColor = color09
-		self.chart.lines[9].strokeColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.lineLabels.fontName              = 'Helvetica'
-		self.chart.xValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.xValueAxis.labels.fontSize       = 7
-		self.chart.xValueAxis.forceZero             = 0
-		self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (400,500)), ((100,200), (200,300), (250,200), (300,400), (400, 600))]
-		self.chart.xValueAxis.avoidBoundFrac           = 1
-		self.chart.xValueAxis.gridEnd                  = 115
-		self.chart.xValueAxis.tickDown                 = 3
-		self.chart.xValueAxis.visibleGrid              = 1
-		self.chart.yValueAxis.tickLeft              = 3
-		self.chart.yValueAxis.labels.fontName       = 'Helvetica'
-		self.chart.yValueAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.chart.lineLabelFormat  = None
-		self.chart.xLabel           = 'X Axis'
-		self.chart.y                = 30
-		self.chart.yLabel           = 'Y Axis'
-		self.chart.yValueAxis.gridEnd             = 115
-		self.chart.yValueAxis.visibleGrid         = 1
-		self.chart.yValueAxis.labelTextFormat     = '%d'
-		self.chart.yValueAxis.forceZero           = 1
-		self.chart.xValueAxis.forceZero           = 1
-		self.chart.joinedLines                    = 1
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,ScatterPlot(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.lines[0].strokeColor = color01
+        self.chart.lines[1].strokeColor = color02
+        self.chart.lines[2].strokeColor = color03
+        self.chart.lines[3].strokeColor = color04
+        self.chart.lines[4].strokeColor = color05
+        self.chart.lines[5].strokeColor = color06
+        self.chart.lines[6].strokeColor = color07
+        self.chart.lines[7].strokeColor = color08
+        self.chart.lines[8].strokeColor = color09
+        self.chart.lines[9].strokeColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.lineLabels.fontName              = 'Helvetica'
+        self.chart.xValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.xValueAxis.labels.fontSize       = 7
+        self.chart.xValueAxis.forceZero             = 0
+        self.chart.data             = [((100,100), (200,200), (250,210), (300,300), (400,500)), ((100,200), (200,300), (250,200), (300,400), (400, 600))]
+        self.chart.xValueAxis.avoidBoundFrac           = 1
+        self.chart.xValueAxis.gridEnd                  = 115
+        self.chart.xValueAxis.tickDown                 = 3
+        self.chart.xValueAxis.visibleGrid              = 1
+        self.chart.yValueAxis.tickLeft              = 3
+        self.chart.yValueAxis.labels.fontName       = 'Helvetica'
+        self.chart.yValueAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.chart.lineLabelFormat  = None
+        self.chart.xLabel           = 'X Axis'
+        self.chart.y                = 30
+        self.chart.yLabel           = 'Y Axis'
+        self.chart.yValueAxis.gridEnd             = 115
+        self.chart.yValueAxis.visibleGrid         = 1
+        self.chart.yValueAxis.labelTextFormat     = '%d'
+        self.chart.yValueAxis.forceZero           = 1
+        self.chart.xValueAxis.forceZero           = 1
+        self.chart.joinedLines                    = 1
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	ScatterLinesMarkers().save(formats=['pdf'],outDir=None,fnRoot='scatter_lines_markers')
+    ScatterLinesMarkers().save(formats=['pdf'],outDir=None,fnRoot='scatter_lines_markers')
--- a/reportlab/graphics/samples/simple_pie.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/simple_pie.py	Tue Jan 20 22:50:32 2004 +0000
@@ -7,55 +7,55 @@
 from excelcolors import *
 
 class SimplePie(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,Pie(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 100
-		self.chart.height     = 100
-		self.chart.x          = 25
-		self.chart.y          = 25
-		self.chart.slices[0].fillColor = color01
-		self.chart.slices[1].fillColor = color02
-		self.chart.slices[2].fillColor = color03
-		self.chart.slices[3].fillColor = color04
-		self.chart.slices[4].fillColor = color05
-		self.chart.slices[5].fillColor = color06
-		self.chart.slices[6].fillColor = color07
-		self.chart.slices[7].fillColor = color08
-		self.chart.slices[8].fillColor = color09
-		self.chart.slices[9].fillColor = color10
-		self.chart.data                = (100, 150, 180)
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'North'), (color02, 'South'),(color03, 'Central')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 160
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self.chart.slices.strokeWidth  = 1
-		self.chart.slices.fontName     = 'Helvetica'
-		self.background                = ShadedRect()
-		self.background.fillColorStart = backgroundGrey
-		self.background.fillColorEnd   = backgroundGrey
-		self.background.numShades      = 1
-		self.background.strokeWidth    = 0.5
-		self.background.x              = 25
-		self.background.y              = 25
-		self.Legend.columnMaximum  = 10
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,Pie(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 100
+        self.chart.height     = 100
+        self.chart.x          = 25
+        self.chart.y          = 25
+        self.chart.slices[0].fillColor = color01
+        self.chart.slices[1].fillColor = color02
+        self.chart.slices[2].fillColor = color03
+        self.chart.slices[3].fillColor = color04
+        self.chart.slices[4].fillColor = color05
+        self.chart.slices[5].fillColor = color06
+        self.chart.slices[6].fillColor = color07
+        self.chart.slices[7].fillColor = color08
+        self.chart.slices[8].fillColor = color09
+        self.chart.slices[9].fillColor = color10
+        self.chart.data                = (100, 150, 180)
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'North'), (color02, 'South'),(color03, 'Central')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 160
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self.chart.slices.strokeWidth  = 1
+        self.chart.slices.fontName     = 'Helvetica'
+        self.background                = ShadedRect()
+        self.background.fillColorStart = backgroundGrey
+        self.background.fillColorEnd   = backgroundGrey
+        self.background.numShades      = 1
+        self.background.strokeWidth    = 0.5
+        self.background.x              = 25
+        self.background.y              = 25
+        self.Legend.columnMaximum  = 10
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	SimplePie().save(formats=['pdf'],outDir=None,fnRoot=None)
\ No newline at end of file
+    SimplePie().save(formats=['pdf'],outDir=None,fnRoot=None)
\ No newline at end of file
--- a/reportlab/graphics/samples/stacked_bar.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/stacked_bar.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,80 +6,80 @@
 from excelcolors import *
 
 class StackedBar(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,HorizontalBarChart(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.bars[0].fillColor = color01
-		self.chart.bars[1].fillColor = color02
-		self.chart.bars[2].fillColor = color03
-		self.chart.bars[3].fillColor = color04
-		self.chart.bars[4].fillColor = color05
-		self.chart.bars[5].fillColor = color06
-		self.chart.bars[6].fillColor = color07
-		self.chart.bars[7].fillColor = color08
-		self.chart.bars[8].fillColor = color09
-		self.chart.bars[9].fillColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.barLabels.fontName              = 'Helvetica'
-		self.chart.valueAxis.labels.fontName       = 'Helvetica'
-		self.chart.valueAxis.labels.fontSize       = 6
-		self.chart.valueAxis.forceZero             = 1
-		self.chart.data             = [(100, 150, 180), (125, 180, 200)]
-		self.chart.groupSpacing     = 15
-		self.chart.valueAxis.avoidBoundFrac           = 1
-		self.chart.valueAxis.gridEnd                  = 80
-		self.chart.valueAxis.tickDown                 = 3
-		self.chart.valueAxis.visibleGrid              = 1
-		self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
-		self.chart.categoryAxis.tickLeft              = 3
-		self.chart.categoryAxis.labels.fontName       = 'Helvetica'
-		self.chart.categoryAxis.labels.fontSize       = 6
-		self.chart.categoryAxis.labels.dx             = -3
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
-		self.XLabel.fontName       = 'Helvetica'
-		self.XLabel.fontSize       = 7
-		self.XLabel.x              = 85
-		self.XLabel.y              = 10
-		self.XLabel.textAnchor     ='middle'
-		self.XLabel.maxWidth       = 100
-		self.XLabel.height         = 20
-		self.XLabel._text           = "X Axis"
-		self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
-		self.YLabel.fontName       = 'Helvetica'
-		self.YLabel.fontSize       = 7
-		self.YLabel.x              = 12
-		self.YLabel.y              = 80
-		self.YLabel.angle          = 90
-		self.YLabel.textAnchor     ='middle'
-		self.YLabel.maxWidth       = 100
-		self.YLabel.height         = 20
-		self.YLabel._text          = "Y Axis"
-		self.chart.categoryAxis.style='stacked'
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,HorizontalBarChart(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.bars[0].fillColor = color01
+        self.chart.bars[1].fillColor = color02
+        self.chart.bars[2].fillColor = color03
+        self.chart.bars[3].fillColor = color04
+        self.chart.bars[4].fillColor = color05
+        self.chart.bars[5].fillColor = color06
+        self.chart.bars[6].fillColor = color07
+        self.chart.bars[7].fillColor = color08
+        self.chart.bars[8].fillColor = color09
+        self.chart.bars[9].fillColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.barLabels.fontName              = 'Helvetica'
+        self.chart.valueAxis.labels.fontName       = 'Helvetica'
+        self.chart.valueAxis.labels.fontSize       = 6
+        self.chart.valueAxis.forceZero             = 1
+        self.chart.data             = [(100, 150, 180), (125, 180, 200)]
+        self.chart.groupSpacing     = 15
+        self.chart.valueAxis.avoidBoundFrac           = 1
+        self.chart.valueAxis.gridEnd                  = 80
+        self.chart.valueAxis.tickDown                 = 3
+        self.chart.valueAxis.visibleGrid              = 1
+        self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
+        self.chart.categoryAxis.tickLeft              = 3
+        self.chart.categoryAxis.labels.fontName       = 'Helvetica'
+        self.chart.categoryAxis.labels.fontSize       = 6
+        self.chart.categoryAxis.labels.dx             = -3
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
+        self.XLabel.fontName       = 'Helvetica'
+        self.XLabel.fontSize       = 7
+        self.XLabel.x              = 85
+        self.XLabel.y              = 10
+        self.XLabel.textAnchor     ='middle'
+        self.XLabel.maxWidth       = 100
+        self.XLabel.height         = 20
+        self.XLabel._text           = "X Axis"
+        self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
+        self.YLabel.fontName       = 'Helvetica'
+        self.YLabel.fontSize       = 7
+        self.YLabel.x              = 12
+        self.YLabel.y              = 80
+        self.YLabel.angle          = 90
+        self.YLabel.textAnchor     ='middle'
+        self.YLabel.maxWidth       = 100
+        self.YLabel.height         = 20
+        self.YLabel._text          = "Y Axis"
+        self.chart.categoryAxis.style='stacked'
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	StackedBar().save(formats=['pdf'],outDir=None,fnRoot='stacked_bar')
\ No newline at end of file
+    StackedBar().save(formats=['pdf'],outDir=None,fnRoot='stacked_bar')
\ No newline at end of file
--- a/reportlab/graphics/samples/stacked_column.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/samples/stacked_column.py	Tue Jan 20 22:50:32 2004 +0000
@@ -6,79 +6,79 @@
 from excelcolors import *
 
 class StackedColumn(_DrawingEditorMixin,Drawing):
-	def __init__(self,width=200,height=150,*args,**kw):
-		apply(Drawing.__init__,(self,width,height)+args,kw)
-		self._add(self,VerticalBarChart(),name='chart',validate=None,desc="The main chart")
-		self.chart.width      = 115
-		self.chart.height     = 80
-		self.chart.x          = 30
-		self.chart.y          = 40
-		self.chart.bars[0].fillColor = color01
-		self.chart.bars[1].fillColor = color02
-		self.chart.bars[2].fillColor = color03
-		self.chart.bars[3].fillColor = color04
-		self.chart.bars[4].fillColor = color05
-		self.chart.bars[5].fillColor = color06
-		self.chart.bars[6].fillColor = color07
-		self.chart.bars[7].fillColor = color08
-		self.chart.bars[8].fillColor = color09
-		self.chart.bars[9].fillColor = color10
-		self.chart.fillColor         = backgroundGrey
-		self.chart.barLabels.fontName              = 'Helvetica'
-		self.chart.valueAxis.labels.fontName       = 'Helvetica'
-		self.chart.valueAxis.labels.fontSize       = 7
-		self.chart.valueAxis.forceZero             = 1
-		self.chart.data             = [(100, 150, 180), (125, 180, 200)]
-		self.chart.groupSpacing     = 15
-		self.chart.valueAxis.avoidBoundFrac           = 1
-		self.chart.valueAxis.gridEnd                  = 115
-		self.chart.valueAxis.tickLeft                 = 3
-		self.chart.valueAxis.visibleGrid              = 1
-		self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
-		self.chart.categoryAxis.tickDown              = 3
-		self.chart.categoryAxis.labels.fontName       = 'Helvetica'
-		self.chart.categoryAxis.labels.fontSize       = 7
-		self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
-		self.Title.fontName   = 'Helvetica-Bold'
-		self.Title.fontSize   = 7
-		self.Title.x          = 100
-		self.Title.y          = 135
-		self.Title._text      = 'Chart Title'
-		self.Title.maxWidth   = 180
-		self.Title.height     = 20
-		self.Title.textAnchor ='middle'
-		self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
-		self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
-		self.Legend.fontName       = 'Helvetica'
-		self.Legend.fontSize       = 7
-		self.Legend.x              = 153
-		self.Legend.y              = 85
-		self.Legend.dxTextSpace    = 5
-		self.Legend.dy             = 5
-		self.Legend.dx             = 5
-		self.Legend.deltay         = 5
-		self.Legend.alignment      ='right'
-		self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
-		self.XLabel.fontName       = 'Helvetica'
-		self.XLabel.fontSize       = 7
-		self.XLabel.x              = 85
-		self.XLabel.y              = 10
-		self.XLabel.textAnchor     ='middle'
-		self.XLabel.maxWidth       = 100
-		self.XLabel.height         = 20
-		self.XLabel._text          = "X Axis"
-		self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
-		self.YLabel.fontName       = 'Helvetica'
-		self.YLabel.fontSize       = 7
-		self.YLabel.x              = 12
-		self.YLabel.y              = 80
-		self.YLabel.angle          = 90
-		self.YLabel.textAnchor     ='middle'
-		self.YLabel.maxWidth       = 100
-		self.YLabel.height         = 20
-		self.YLabel._text          = "Y Axis"
-		self.chart.categoryAxis.style='stacked'
-		self._add(self,0,name='preview',validate=None,desc=None)
+    def __init__(self,width=200,height=150,*args,**kw):
+        apply(Drawing.__init__,(self,width,height)+args,kw)
+        self._add(self,VerticalBarChart(),name='chart',validate=None,desc="The main chart")
+        self.chart.width      = 115
+        self.chart.height     = 80
+        self.chart.x          = 30
+        self.chart.y          = 40
+        self.chart.bars[0].fillColor = color01
+        self.chart.bars[1].fillColor = color02
+        self.chart.bars[2].fillColor = color03
+        self.chart.bars[3].fillColor = color04
+        self.chart.bars[4].fillColor = color05
+        self.chart.bars[5].fillColor = color06
+        self.chart.bars[6].fillColor = color07
+        self.chart.bars[7].fillColor = color08
+        self.chart.bars[8].fillColor = color09
+        self.chart.bars[9].fillColor = color10
+        self.chart.fillColor         = backgroundGrey
+        self.chart.barLabels.fontName              = 'Helvetica'
+        self.chart.valueAxis.labels.fontName       = 'Helvetica'
+        self.chart.valueAxis.labels.fontSize       = 7
+        self.chart.valueAxis.forceZero             = 1
+        self.chart.data             = [(100, 150, 180), (125, 180, 200)]
+        self.chart.groupSpacing     = 15
+        self.chart.valueAxis.avoidBoundFrac           = 1
+        self.chart.valueAxis.gridEnd                  = 115
+        self.chart.valueAxis.tickLeft                 = 3
+        self.chart.valueAxis.visibleGrid              = 1
+        self.chart.categoryAxis.categoryNames         = ['North', 'South', 'Central']
+        self.chart.categoryAxis.tickDown              = 3
+        self.chart.categoryAxis.labels.fontName       = 'Helvetica'
+        self.chart.categoryAxis.labels.fontSize       = 7
+        self._add(self,Label(),name='Title',validate=None,desc="The title at the top of the chart")
+        self.Title.fontName   = 'Helvetica-Bold'
+        self.Title.fontSize   = 7
+        self.Title.x          = 100
+        self.Title.y          = 135
+        self.Title._text      = 'Chart Title'
+        self.Title.maxWidth   = 180
+        self.Title.height     = 20
+        self.Title.textAnchor ='middle'
+        self._add(self,Legend(),name='Legend',validate=None,desc="The legend or key for the chart")
+        self.Legend.colorNamePairs = [(color01, 'Widgets'), (color02, 'Sprockets')]
+        self.Legend.fontName       = 'Helvetica'
+        self.Legend.fontSize       = 7
+        self.Legend.x              = 153
+        self.Legend.y              = 85
+        self.Legend.dxTextSpace    = 5
+        self.Legend.dy             = 5
+        self.Legend.dx             = 5
+        self.Legend.deltay         = 5
+        self.Legend.alignment      ='right'
+        self._add(self,Label(),name='XLabel',validate=None,desc="The label on the horizontal axis")
+        self.XLabel.fontName       = 'Helvetica'
+        self.XLabel.fontSize       = 7
+        self.XLabel.x              = 85
+        self.XLabel.y              = 10
+        self.XLabel.textAnchor     ='middle'
+        self.XLabel.maxWidth       = 100
+        self.XLabel.height         = 20
+        self.XLabel._text          = "X Axis"
+        self._add(self,Label(),name='YLabel',validate=None,desc="The label on the vertical axis")
+        self.YLabel.fontName       = 'Helvetica'
+        self.YLabel.fontSize       = 7
+        self.YLabel.x              = 12
+        self.YLabel.y              = 80
+        self.YLabel.angle          = 90
+        self.YLabel.textAnchor     ='middle'
+        self.YLabel.maxWidth       = 100
+        self.YLabel.height         = 20
+        self.YLabel._text          = "Y Axis"
+        self.chart.categoryAxis.style='stacked'
+        self._add(self,0,name='preview',validate=None,desc=None)
 
 if __name__=="__main__": #NORUNTESTS
-	StackedColumn().save(formats=['pdf'],outDir=None,fnRoot='stacked_column')
+    StackedColumn().save(formats=['pdf'],outDir=None,fnRoot='stacked_column')
--- a/reportlab/graphics/widgetbase.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/widgetbase.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/widgetbase.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/widgetbase.py,v 1.34 2003/08/03 12:46:23 andy_robinson Exp $
-__version__=''' $Id: widgetbase.py,v 1.34 2003/08/03 12:46:23 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/graphics/widgetbase.py,v 1.35 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: widgetbase.py,v 1.35 2004/01/20 22:50:31 andy_robinson Exp $ '''
 import string
 
 from reportlab.graphics import shapes
@@ -396,7 +396,7 @@
 
 class Sizer(Widget):
     "Container to show size of all enclosed objects"
-    
+
     _attrMap = AttrMap(BASE=shapes.SolidShape,
         contents = AttrMapValue(isListOfShapes,desc="Contained drawable elements"),
         )
@@ -404,7 +404,7 @@
         self.contents = []
         self.fillColor = colors.cyan
         self.strokeColor = colors.magenta
-        
+
         for elem in elements:
             self.add(elem)
 
@@ -434,7 +434,7 @@
             return shapes.getRectsBounds(b)
         else:
             return (0,0,0,0)
-        
+
     def draw(self):
         g = shapes.Group()
         (x1, y1, x2, y2) = self.getBounds()
--- a/reportlab/graphics/widgets/eventcal.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/graphics/widgets/eventcal.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,11 +1,11 @@
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/graphics/widgets/eventcal.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/graphics/widgets/eventcal.py,v 1.4 2003/04/01 10:30:16 fuzzypuffin Exp $
+#$Header: /tmp/reportlab/reportlab/graphics/widgets/eventcal.py,v 1.5 2004/01/20 22:50:31 andy_robinson Exp $
 # Event Calendar widget
 # author: Andy Robinson
-"""This file is a 
+"""This file is a
 """
-__version__=''' $Id: eventcal.py,v 1.4 2003/04/01 10:30:16 fuzzypuffin Exp $ '''
+__version__=''' $Id: eventcal.py,v 1.5 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 from reportlab.lib import colors
 from reportlab.lib.validators import *
@@ -28,7 +28,7 @@
         self.trackRowHeight = 20
         self.data = []  # list of Event objects
         self.trackNames = None
-        
+
         self.startTime = None  #displays ALL data on day if not set
         self.endTime = None    # displays ALL data on day if not set
         self.day = 0
@@ -49,7 +49,7 @@
         self._talksVisible = self.getRelevantTalks(self.data)
         self._trackCount = len(self.getAllTracks())
         self.computeStartAndEndTimes()
-        self._colLeftEdges = [self.x]        
+        self._colLeftEdges = [self.x]
         if self.timeColWidth is None:
             w = self.width / (1 + self._trackCount)
             self._colWidths = [w] * (1+ self._trackCount)
@@ -86,10 +86,10 @@
                 else:
                     if start + duration > self._endTime:
                         self._endTime = start + duration
-                
-                
+
 
-        
+
+
     def getAllTracks(self):
         tracks = []
         for (title, speaker, trackId, day, hours, duration) in self.data:
@@ -98,7 +98,7 @@
                     tracks.append(trackId)
         tracks.sort()
         return tracks
-        
+
     def getRelevantTalks(self, talkList):
         "Scans for tracks actually used"
         used = []
@@ -106,7 +106,7 @@
             (title, speaker, trackId, day, hours, duration) = talk
             assert trackId <> 0, "trackId must be None or 1,2,3... zero not allowed!"
             if day == self.day:
-                if (((self.startTime is None) or ((hours + duration) >= self.startTime)) 
+                if (((self.startTime is None) or ((hours + duration) >= self.startTime))
                 and ((self.endTime is None) or (hours <= self.endTime))):
                     used.append(talk)
         return used
@@ -114,11 +114,11 @@
     def scaleTime(self, theTime):
         "Return y-value corresponding to times given"
         axisHeight = self.height - self.trackRowHeight
-        # compute fraction between 0 and 1, 0 is at start of period        
+        # compute fraction between 0 and 1, 0 is at start of period
         proportionUp = ((theTime - self._startTime) / (self._endTime - self._startTime))
-        y = self.y + axisHeight - (axisHeight * proportionUp)        
+        y = self.y + axisHeight - (axisHeight * proportionUp)
         return y
-            
+
 
     def getTalkRect(self, startTime, duration, trackId, text):
         "Return shapes for a specific talk"
@@ -130,7 +130,7 @@
         if trackId is None:
             #spans all columns
             x = self._colLeftEdges[1]
-            width = self.width - self._colWidths[0] 
+            width = self.width - self._colWidths[0]
         else:
             #trackId is 1-based and these arrays have the margin info in column
             #zero, so no need to add 1
@@ -149,10 +149,10 @@
         g.add(r)
         g.add(lab)
 
-        #now for a label        
+        #now for a label
         # would expect to color-code and add text
         return g
-            
+
     def draw(self):
         self.computeSize()
         g = Group()
@@ -173,19 +173,19 @@
 
         for talk in self._talksVisible:
             (title, speaker, trackId, day, start, duration) = talk
-            r = self.getTalkRect(start, duration, trackId, title + '\n' + speaker) 
+            r = self.getTalkRect(start, duration, trackId, title + '\n' + speaker)
             g.add(r)
 
 
         return g
-    
+
 
 
 
 def test():
     "Make a conference event for day 1 of UP Python 2003"
-    
-    
+
+
     d = Drawing(400,200)
 
     cal = EventCalendar()
@@ -195,7 +195,7 @@
         # these might be better as objects instead of tuples, since I
         # predict a large number of "optionsl" variables to affect
         # formatting in future.
-        
+
         #title, speaker, track id, day, start time (hrs), duration (hrs)
         # track ID is 1-based not zero-based!
         ('Keynote: Why design another programming language?',  'Guido van Rossum', None, 1, 9.0, 1.0),
@@ -244,7 +244,7 @@
         ("A Common Vendor ABI for C++ -- GCC's why, what and not", 'Nathan Sidwell & Gabriel Dos Reis', 4, 2, 16.0, 1.5),
         ("The Timing and Cost of Choices", 'Hubert Matthews', 5, 2, 16.0, 1.5),
 
-        ('Birds of a Feather meeting', '', None, 2, 17.5, 2.0),        
+        ('Birds of a Feather meeting', '', None, 2, 17.5, 2.0),
 
         ('Keynote: The Cost of C &amp; C++ Compatibility', 'Andy Koenig', None, 3, 9.0, 1.0),
 
@@ -254,8 +254,8 @@
         ('Extreme Hour (XH): (workshop) - Jutta Eckstein and Nico Josuttis', 'Jutta Ecstein', 4, 2, 10.5, 1.5),
         ('The Lambda Library : Unnamed Functions for C++', 'Jaako Jarvi', 5, 2, 10.5, 1.5),
 
-        ('lunch, short presentations, vendor presentations', '', None, 3, 12.0, 2.0),        
-        
+        ('lunch, short presentations, vendor presentations', '', None, 3, 12.0, 2.0),
+
         ('Reflective Metaprogramming', 'Daveed Vandevoorde', 1, 3, 14.0, 1.5),
         ('Advanced Template Issues and Solutions (double session)', 'Herb Sutter',2, 3, 14.0, 3),
         ('Concurrent Programming in Java (double session)', 'Angelika Langer', 3, 3, 14.0, 3),
@@ -275,8 +275,8 @@
         ('Generic Build Support - A Pragmatic Approach to the Software Build Process', 'Randy Marques', 3, 5, 10.5, 1.5),
         ('How to Handle Project Managers: a survival guide', 'Barb Byro',  4, 5, 10.5, 1.5),
 
-        ('lunch, ACCU AGM', '', None, 5, 12.0, 2.0), 
-        
+        ('lunch, ACCU AGM', '', None, 5, 12.0, 2.0),
+
         ('Sauce: An OO recursive descent parser; its design and implementation.', 'Jon Jagger', 1, 5, 14.0, 1.5),
         ('GNIRTS ESAC REWOL -  Bringing the UNIX filters to the C++ iostream library.', 'JC van Winkel', 2, 5, 14.0, 1.5),
         ('Pattern Writing: Live and Direct', 'Frank Buschmann & Kevlin Henney',  3, 5, 14.0, 3.0),
@@ -285,8 +285,8 @@
         ('Honey, I Shrunk the Threads: Compile-time checked multithreaded transactions in C++', 'Andrei Alexandrescu', 1, 5, 16.0, 1.5),
         ('Fun and Functionality with Functors', 'Lois Goldthwaite', 2, 5, 16.0, 1.5),
         ('Agile Enough?', 'Alan Griffiths', 4, 5, 16.0, 1.5),
-        ("Conference Closure: A brief plenary session", '', None, 5, 17.5, 0.5),        
-        
+        ("Conference Closure: A brief plenary session", '', None, 5, 17.5, 0.5),
+
         ]
 
     #return cal
@@ -302,4 +302,3 @@
 
 if __name__=='__main__':
     test()
-    
\ No newline at end of file
--- a/reportlab/lib/fonts.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/lib/fonts.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,8 +2,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/lib/fonts.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/lib/fonts.py,v 1.15 2002/11/16 18:56:42 andy_robinson Exp $
-__version__=''' $Id: fonts.py,v 1.15 2002/11/16 18:56:42 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/lib/fonts.py,v 1.16 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: fonts.py,v 1.16 2004/01/20 22:50:31 andy_robinson Exp $ '''
 import string, sys, os
 ###############################################################################
 #   A place to put useful font stuff
@@ -39,13 +39,13 @@
             ('helvetica', 1, 0) :'Helvetica-Bold',
             ('helvetica', 0, 1) :'Helvetica-Oblique',
             ('helvetica', 1, 1) :'Helvetica-BoldOblique',
-  
+
             # TTF fonts
             ('timesnew', 0, 0) :'Times New Roman',
             ('timesnew', 1, 0) :'Times New Roman-Bold',
             ('timesnew', 0, 1) :'Times New Roman-Italic',
             ('timesnew', 1, 1) :'Times New Roman-BoldItalic',
- 
+
             ('courier new', 0, 0) :'Courier New',
             ('courier new', 1, 0) :'Courier New-Bold',
             ('courier new', 0, 1) :'Courier New-Italic',
@@ -55,27 +55,27 @@
             ('verdana', 1, 0) :'Verdana-Bold',
             ('verdana', 0, 1) :'Verdana-Italic',
             ('verdana', 1, 1) :'Verdana-BoldItalic',
- 
+
             ('arial', 0, 0) :'Arial',
             ('arial', 1, 0) :'Arial-Bold',
             ('arial', 0, 1) :'Arial-Italic',
             ('arial', 1, 1) :'Arial-BoldItalic',
- 
+
             ('arialnarrow', 0, 0) :'Arial Narrow',
             ('arialnarrow', 1, 0) :'Arial Narrow-Bold',
             ('arialnarrow', 0, 1) :'Arial Narrow-Italic',
             ('arialnarrow', 1, 1) :'Arial Narrow-BoldItalic',
- 
+
             ('bookmanos', 0, 0) :'Bookman Old Style',
             ('bookmanos', 1, 0) :'Bookman Old Style-Bold',
             ('bookmanos', 0, 1) :'Bookman Old Style-Italic',
             ('bookmanos', 1, 1) :'Bookman Old Style-BoldItalic',
- 
+
             ('georgia', 0, 0) :'Georgia',
             ('georgia', 1, 0) :'Georgia-Bold',
             ('georgia', 0, 1) :'Georgia-Italic',
             ('georgia', 1, 1) :'Georgia-BoldItalic',
- 
+
             ('trebuchet', 0, 0) :'Trebuchet MS',
             ('trebuchet', 1, 0) :'Trebuchet MS-Bold',
             ('trebuchet', 0, 1) :'Trebuchet MS-Italic',
--- a/reportlab/lib/utils.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/lib/utils.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/lib/utils.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/lib/utils.py,v 1.57 2003/12/02 17:36:04 rgbecker Exp $
-__version__=''' $Id: utils.py,v 1.57 2003/12/02 17:36:04 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/lib/utils.py,v 1.58 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: utils.py,v 1.58 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 import string, os, sys
 from types import *
@@ -130,7 +130,7 @@
         import pprint
         pp = pprint.pprint
         print 'path=',pp(path)
-        
+
     #make import errors a bit more informative
     opath = sys.path
     try:
@@ -156,7 +156,7 @@
     #print 'name=%s, tokens=%s' % (name, tokens)
     if len(tokens) == 1:
         setattr(obj, name, value)
-    else:        
+    else:
         most = string.join(tokens[:-1], '.')
         last = tokens[-1]
         #print 'most=%s, last=%s' % (most, last)
@@ -326,7 +326,7 @@
             else:
                 self._width, self._height = self._image.size
         return (self._width, self._height)
-            
+
     def getRGBData(self):
         "Return byte array of RGB data as string"
         if self._data is None:
@@ -350,7 +350,7 @@
             else:
                 rgb = self._image.convert('RGB')
                 self._data = rgb.tostring()
-        return self._data  
+        return self._data
 
     def getImageData(self):
         width, height = self.getSize()
--- a/reportlab/pdfbase/pdfdoc.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/pdfbase/pdfdoc.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfbase/pdfdoc.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/pdfbase/pdfdoc.py,v 1.89 2004/01/20 09:42:10 andy_robinson Exp $
-__version__=''' $Id: pdfdoc.py,v 1.89 2004/01/20 09:42:10 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/pdfbase/pdfdoc.py,v 1.90 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: pdfdoc.py,v 1.90 2004/01/20 22:50:31 andy_robinson Exp $ '''
 __doc__="""
 The module pdfdoc.py handles the 'outer structure' of PDF documents, ensuring that
 all objects are properly cross-referenced and indexed to the nearest byte.  The
@@ -1741,7 +1741,7 @@
 class PDFPostScriptXObject:
     "For embedding PD (e.g. tray commands) in PDF"
     def __init__(self, content=None):
-        self.content = content 
+        self.content = content
 
     def format(self, document):
         S = PDFStream()
--- a/reportlab/pdfbase/pdfmetrics.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/pdfbase/pdfmetrics.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfbase/pdfmetrics.py?cvsroot=reportlab
 #$Header $
-__version__=''' $Id: pdfmetrics.py,v 1.65 2003/11/12 15:23:01 rgbecker Exp $ '''
+__version__=''' $Id: pdfmetrics.py,v 1.66 2004/01/20 22:50:31 andy_robinson Exp $ '''
 __doc__="""
 This provides a database of font metric information and
 efines Font, Encoding and TypeFace classes aimed at end users.
@@ -140,7 +140,7 @@
     def _loadBuiltInData(self, name):
         """Called for the built in 14 fonts.  Gets their glyph data.
         We presume they never change so this can be a shared reference."""
-	name = str(name)	#needed for pycanvas&jython/2.1 compatibility
+        name = str(name)    #needed for pycanvas&jython/2.1 compatibility
         self.glyphWidths = _fontdata.widthsByFontGlyph[name]
         self.glyphNames = self.glyphWidths.keys()
         self.ascent,self.descent = _fontdata.ascent_descent[name]
--- a/reportlab/pdfbase/pdfutils.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/pdfbase/pdfutils.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfbase/pdfutils.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/pdfbase/pdfutils.py,v 1.39 2003/09/09 18:13:33 rgbecker Exp $
-__version__=''' $Id: pdfutils.py,v 1.39 2003/09/09 18:13:33 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/pdfbase/pdfutils.py,v 1.40 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: pdfutils.py,v 1.40 2004/01/20 22:50:31 andy_robinson Exp $ '''
 __doc__=''
 # pdfutils.py - everything to do with images, streams,
 # compression, and some constants
@@ -35,10 +35,10 @@
             raise IOError, 'No such cached image %s' % filename
     else:
         img = ImageReader(filename)
-        
+
         imgwidth, imgheight = img.getSize()
         raw = img.getRGBData()
-        
+
         code = []
         code.append('BI')   # begin image
         # this describes what is in the image itself
--- a/reportlab/pdfgen/canvas.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/pdfgen/canvas.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfgen/canvas.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/pdfgen/canvas.py,v 1.119 2004/01/20 09:42:10 andy_robinson Exp $
-__version__=''' $Id: canvas.py,v 1.119 2004/01/20 09:42:10 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/pdfgen/canvas.py,v 1.120 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: canvas.py,v 1.120 2004/01/20 22:50:31 andy_robinson Exp $ '''
 __doc__="""
 The Canvas object is the primary interface for creating PDF files. See
 doc/userguide.pdf for copious examples.
@@ -703,8 +703,8 @@
             self._doc.addForm(rawName, psObj)
         self._code.append("/%s Do" % regName)
         self._formsinuse.append(rawName)
-        
-        
+
+
         #
 
     def textAnnotation0(self, contents, Rect=None, addtopage=1, name=None, **kw):
--- a/reportlab/pdfgen/pdfimages.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/pdfgen/pdfimages.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfgen/pdfimages.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/pdfgen/pdfimages.py,v 1.18 2003/09/08 16:16:04 rgbecker Exp $
-__version__=''' $Id: pdfimages.py,v 1.18 2003/09/08 16:16:04 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/pdfgen/pdfimages.py,v 1.19 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: pdfimages.py,v 1.19 2004/01/20 22:50:31 andy_robinson Exp $ '''
 __doc__="""
 Image functionality sliced out of canvas.py for generalization
 """
@@ -22,7 +22,7 @@
     from a PIL Image object, a filename (in which case it uses PIL),
     an image we previously cached (optimisation, hardly used these
     days) or a JPEG (which PDF supports natively)."""
-    
+
     def __init__(self, image, x,y, width=None, height=None, caching=0):
         self.image = image
         self.point = (x,y)
--- a/reportlab/platypus/doctemplate.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/doctemplate.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,9 +1,9 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/doctemplate.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/doctemplate.py,v 1.71 2004/01/13 11:20:45 rgbecker Exp $
+#$Header: /tmp/reportlab/reportlab/platypus/doctemplate.py,v 1.72 2004/01/20 22:50:31 andy_robinson Exp $
 
-__version__=''' $Id: doctemplate.py,v 1.71 2004/01/13 11:20:45 rgbecker Exp $ '''
+__version__=''' $Id: doctemplate.py,v 1.72 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 __doc__="""
 This module contains the core structure of platypus.
@@ -115,7 +115,7 @@
 
     def identity(self, maxLen=None):
         return "ActionFlowable: %s" % str(self.action)
-    
+
 class NextFrameFlowable(ActionFlowable):
     def __init__(self,ix,resume=0):
         ActionFlowable.__init__(self,('nextFrame',ix,resume))
@@ -147,7 +147,7 @@
 
     This allows one to have a 'context-sensitive' indentation
     and makes nested lists way easier.
-    """    
+    """
 
     def __init__(self, left=0, right=0):
         self.left = left
@@ -156,7 +156,7 @@
     def apply(self, doc):
         doc.frame._leftExtraIndent = doc.frame._leftExtraIndent + self.left
         doc.frame._rightExtraIndent = doc.frame._rightExtraIndent + self.right
-        
+
 
 class NextPageTemplate(ActionFlowable):
     """When you get to the next page, use the template specified (change to two column, for example)  """
@@ -320,7 +320,7 @@
         #context sensitive margins - set by story, not from outside
         self._leftExtraIndent = 0.0
         self._rightExtraIndent = 0.0
-        
+
         self._calc()
         self.afterInit()
 
@@ -426,7 +426,7 @@
         ''' Handles the semantics of the end of a frame. This includes the selection of
             the next frame or if this is the last frame then invoke pageEnd.
         '''
-        
+
         self._leftExtraIndent = self.frame._leftExtraIndent
         self._rightExtraIndent = self.frame._rightExtraIndent
 
--- a/reportlab/platypus/figures.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/figures.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,9 +1,9 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/docs/tools/platdemos.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/figures.py,v 1.16 2004/01/10 15:59:18 rgbecker Exp $
+#$Header: /tmp/reportlab/reportlab/platypus/figures.py,v 1.17 2004/01/20 22:50:31 andy_robinson Exp $
 """This includes some demos of platypus for use in the API proposal"""
-__version__=''' $Id: figures.py,v 1.16 2004/01/10 15:59:18 rgbecker Exp $ '''
+__version__=''' $Id: figures.py,v 1.17 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 import os
 
@@ -168,7 +168,7 @@
         self.captionStyle = ParagraphStyle(
             'Caption',
             fontName='Times', #'Helvetica-Oblique',
-            fontSize=4, #8, 
+            fontSize=4, #8,
             spaceBefore=9, #3,
             alignment=TA_CENTER
             )
@@ -212,7 +212,7 @@
     def drawFigure(self):
         self.canv.drawInlineImage(self.filename,
                                   0, 0,self.width, self.figureHeight)
-        
+
 class DrawingFigure(FlexFigure):
     """Drawing with a caption below it.  Clunky, scaling fails."""
     def __init__(self, modulename, classname, caption, baseDir=None, background=None):
@@ -225,7 +225,7 @@
                             caption,
                             background)
         self.growToFit = 1
-        
+
     def drawFigure(self):
         self.canv.scale(self._scaleFactor, self._scaleFactor)
         self.drawing.drawOn(self.canv, 0, 0)
--- a/reportlab/platypus/flowables.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/flowables.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/flowables.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/flowables.py,v 1.44 2004/01/07 22:58:54 andy_robinson Exp $
-__version__=''' $Id: flowables.py,v 1.44 2004/01/07 22:58:54 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/platypus/flowables.py,v 1.45 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: flowables.py,v 1.45 2004/01/20 22:50:31 andy_robinson Exp $ '''
 __doc__="""
 A flowable is a "floating element" in a document whose exact position is determined by the
 other elements that precede it, such as a paragraph, a diagram interspersed between paragraphs,
@@ -47,7 +47,7 @@
         self.startLinePos = -1
         self.endLineNo = -1
         self.endLinePos = -1
-        
+
 #############################################################
 #   Flowable Objects - a base class and a few examples.
 #   One is just a box to get some metrics.  We also have
@@ -75,7 +75,7 @@
         #optional holder for trace info
         self._traceInfo = None
         self._showBoundary = None
-        
+
 
     def _drawOn(self,canv):
         '''ensure canv is set on and then draw'''
@@ -513,13 +513,13 @@
 class FailOnWrap(Flowable):
     def wrap(self, availWidth, availHeight):
         raise ValueError("FailOnWrap flowable wrapped and failing as ordered!")
-    
+
     def draw(self):
         pass
 
 class FailOnDraw(Flowable):
     def wrap(self, availWidth, availHeight):
         return (0,0)
-    
+
     def draw(self):
         raise ValueError("FailOnDraw flowable drawn, and failing as ordered!")
--- a/reportlab/platypus/frames.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/frames.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,9 +1,9 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/frames.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/frames.py,v 1.21 2003/08/11 11:39:39 rgbecker Exp $
+#$Header: /tmp/reportlab/reportlab/platypus/frames.py,v 1.22 2004/01/20 22:50:31 andy_robinson Exp $
 
-__version__=''' $Id: frames.py,v 1.21 2003/08/11 11:39:39 rgbecker Exp $ '''
+__version__=''' $Id: frames.py,v 1.22 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 __doc__="""
 """
@@ -68,7 +68,7 @@
         # to adjust edges e.g. to do nested lists
         self._leftExtraIndent = 0.0
         self._rightExtraIndent = 0.0
-        
+
         # if we want a boundary to be shown
         self.showBoundary = showBoundary
 
@@ -103,7 +103,7 @@
 
     def _getAvailableWidth(self):
         return self._aW - self._leftExtraIndent - self._rightExtraIndent
-    
+
     def _add(self, flowable, canv, trySplit=0):
         """ Draws the flowable at the current position.
         Returns 1 if successful, 0 if it would not fit.
@@ -147,7 +147,7 @@
         s = 0
         if not self._atTop: s = flowable.getSpaceBefore()
         flowable.canv = canv    #some flowables might need this
-        
+
         #print 'asked table to split.  _aW = %0.2f, y-p-s=%0.2f' % (self._aW, y-p-s)
         r = flowable.split(self._aW, y-p-s)
         del flowable.canv
--- a/reportlab/platypus/para.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/para.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2160,7 +2160,7 @@
                             n = atoi(name[1:])
                     except atoi_error:
                         n = -1
-                    if 0<=n<=255: fragment = chr(n)+fragment[semi+1:] 
+                    if 0<=n<=255: fragment = chr(n)+fragment[semi+1:]
                     elif symenc.has_key(n):
                         fragment = fragment[semi+1:]
                         (f,b,i) = engine.shiftfont(program, face="symbol")
--- a/reportlab/platypus/paragraph.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/paragraph.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/paragraph.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/paragraph.py,v 1.71 2003/12/17 17:31:01 rgbecker Exp $
-__version__=''' $Id: paragraph.py,v 1.71 2003/12/17 17:31:01 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/platypus/paragraph.py,v 1.72 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: paragraph.py,v 1.72 2004/01/20 22:50:31 andy_robinson Exp $ '''
 from string import split, strip, join, whitespace, find
 from operator import truth
 from types import StringType, ListType
@@ -375,7 +375,7 @@
         It will also be able to handle any MathML specified Greek characters.
     """
     def __init__(self, text, style, bulletText = None, frags=None, caseSensitive=1):
-        self.caseSensitive = caseSensitive 
+        self.caseSensitive = caseSensitive
         self._setup(text, style, bulletText, frags, cleanBlockQuotedText)
 
 
@@ -936,7 +936,7 @@
             dumpParagraphFrags(P)
             w,h = P.wrap(6*72, 9.7*72)
             dumpParagraphLines(P)
-        
+
     if flagged(7):
         text = """<para align="CENTER" fontSize="24" leading="30"><b>Generated by:</b>\tDilbert</para>"""
         P=Paragraph(text, styleSheet['Code'])
--- a/reportlab/platypus/paraparser.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/paraparser.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/paraparser.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/paraparser.py,v 1.53 2003/09/09 18:13:33 rgbecker Exp $
-__version__=''' $Id: paraparser.py,v 1.53 2003/09/09 18:13:33 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/platypus/paraparser.py,v 1.54 2004/01/20 22:50:32 andy_robinson Exp $
+__version__=''' $Id: paraparser.py,v 1.54 2004/01/20 22:50:32 andy_robinson Exp $ '''
 import string
 import re
 from types import TupleType
@@ -137,7 +137,7 @@
         setattr(obj,k,v)
 
 #Named character entities intended to be supported from the special font
-#with additions suggested by Christoph Zwerschke who also suggested the 
+#with additions suggested by Christoph Zwerschke who also suggested the
 #numeric entity names that follow.
 greeks = {
     'Alpha': 'A',
--- a/reportlab/platypus/tables.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/platypus/tables.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/tables.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/platypus/tables.py,v 1.71 2004/01/09 09:46:17 rgbecker Exp $
-__version__=''' $Id: tables.py,v 1.71 2004/01/09 09:46:17 rgbecker Exp $ '''
+#$Header: /tmp/reportlab/reportlab/platypus/tables.py,v 1.72 2004/01/20 22:50:32 andy_robinson Exp $
+__version__=''' $Id: tables.py,v 1.72 2004/01/20 22:50:32 andy_robinson Exp $ '''
 
 __doc__="""
 Tables are created by passing the constructor a tuple of column widths, a tuple of row heights and the data in
@@ -361,7 +361,7 @@
                     if t>h: h = t   #record a new maximum
                     j = j + 1
                 H[i] = h
-            if None not in H: hmax = lim 
+            if None not in H: hmax = lim
 
         height = self._height = reduce(operator.add, H[:hmax], 0)
         #print "height, H", height, H
--- a/reportlab/rl_config.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/rl_config.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,8 +1,8 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/rl_config.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/rl_config.py,v 1.39 2003/09/08 14:16:37 andy_robinson Exp $
-__version__=''' $Id: rl_config.py,v 1.39 2003/09/08 14:16:37 andy_robinson Exp $ '''
+#$Header: /tmp/reportlab/reportlab/rl_config.py,v 1.40 2004/01/20 22:50:31 andy_robinson Exp $
+__version__=''' $Id: rl_config.py,v 1.40 2004/01/20 22:50:31 andy_robinson Exp $ '''
 
 allowTableBoundsErrors = 1 # set to 0 to die on too large elements in tables in debug (recommend 1 for production use)
 shapeChecking =             1
@@ -74,7 +74,7 @@
     else we use the given default'''
     V = ('T1SearchPath','CMapSearchPath', 'TTFSearchPath',
                 'shapeChecking', 'defaultEncoding',
-                'pageCompression', 'defaultPageSize', 'defaultImageCaching', 
+                'pageCompression', 'defaultPageSize', 'defaultImageCaching',
                 'ZLIB_WARNINGS', 'warnOnMissingFontGlyphs', 'verbose', 'emptyTableAction',
                 'invariant','eps_preview_transparent',
                 )
--- a/reportlab/test/test_graphics_layout.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_graphics_layout.py	Tue Jan 20 22:50:32 2004 +0000
@@ -1,7 +1,7 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/test/test_graphics_layout.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/test/test_graphics_layout.py,v 1.1 2003/08/03 12:46:23 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/test/test_graphics_layout.py,v 1.2 2004/01/20 22:50:32 andy_robinson Exp $
 """
 Tests for getBounds methods of various graphical widgets
 """
@@ -27,7 +27,7 @@
     def testCircle(self):
         s = shapes.Circle(100, 50, 10)
         assert s.getBounds() == (90,40,110,60)
-        
+
     def testEllipse(self):
         s = shapes.Ellipse(100, 50, 10, 5)
         assert s.getBounds() == (90,45,110,55)
@@ -53,7 +53,7 @@
         g.add(shapes.Rect(0,0,10,10))
         g.add(shapes.Rect(50,50,10,10))
         assert g.getBounds() == (0,0,60,60)
-        
+
         g.translate(40,40)
         assert g.getBounds() == (40,40,100,100)
 
@@ -71,8 +71,8 @@
         siz = Sizer()
         siz.add(vbc, 'vbc')
         assert siz.getBounds()[0:2] <> (0,0)
-        
-        
+
+
 def makeSuite():
     return makeSuiteForClasses(BoundsTestCase)
 
--- a/reportlab/test/test_images.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_images.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfgen/test/test_images.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/test/test_images.py,v 1.3 2003/09/11 22:00:15 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/test/test_images.py,v 1.4 2004/01/20 22:50:32 andy_robinson Exp $
 __version__=''' $Id'''
 __doc__="""Tests to do with image handling.
 
@@ -40,10 +40,10 @@
         assert os.path.isfile(imageFileName), "%s not found!" % imageFileName
 
         ir = ImageReader(imageFileName)
-        assert ir.getSize() == (110,44)        
+        assert ir.getSize() == (110,44)
         pixels = ir.getRGBData()
         assert md5.md5(pixels).hexdigest() == '02e000bf3ffcefe9fc9660c95d7e27cf'
-        
+
 
 def makeSuite():
     return makeSuiteForClasses(ReaderTestCase)
--- a/reportlab/test/test_invariant.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_invariant.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfgen/test/test_invariant.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/test/test_invariant.py,v 1.4 2003/12/02 15:21:17 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/test/test_invariant.py,v 1.5 2004/01/20 22:50:32 andy_robinson Exp $
 __version__=''' $Id'''
 __doc__="""Verfy that if in invariant mode, repeated runs
 make identical file.  This does NOT test across platforms
@@ -16,7 +16,7 @@
 class InvarTestCase(unittest.TestCase):
     "Simplest test that makes PDF"
     def test(self):
-        
+
         c = Canvas(filename, invariant=1, pageCompression=0)
         c.setFont('Helvetica-Bold', 36)
         c.drawString(100,700, 'Hello World')
@@ -34,7 +34,7 @@
         raw2 = open(filename, 'rb').read()
 
         assert raw1 == raw2, 'repeated runs differ!'
-        
+
 
 
 def makeSuite():
--- a/reportlab/test/test_lib_utils.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_lib_utils.py	Tue Jan 20 22:50:32 2004 +0000
@@ -26,7 +26,7 @@
         fn = os.path.join(D,'stdparser.py')
         if os.path.isfile(fn) or os.path.isfile(fn+'c') or os.path.isfile(fn+'o'):
             m1 = recursiveImport('stdparser', baseDir=D)
-        
+
     def test3(self):
         "ensure CWD is on the path"
         rlDir = os.path.dirname(reportlab.__file__)
@@ -57,7 +57,7 @@
         inch = recursiveGetAttr(reportlab, 'lib.units.inch')
         assert inch == 72
 
-        recursiveSetAttr(reportlab, 'lib.units.cubit', 18*inch)        
+        recursiveSetAttr(reportlab, 'lib.units.cubit', 18*inch)
         cubit = recursiveGetAttr(reportlab, 'lib.units.cubit')
         assert cubit == 18*inch
 
@@ -68,12 +68,12 @@
         recursiveSetAttr(drawing, 'barchart.valueAxis.valueMax', 72)
         theMax = recursiveGetAttr(drawing, 'barchart.valueAxis.valueMax')
         assert theMax == 72
-        
+
+
 
-        
-        
-        
-        
+
+
+
 
 
 def makeSuite():
--- a/reportlab/test/test_pdfbase_postscript.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_pdfbase_postscript.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #copyright ReportLab Inc. 2000
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/pdfgen/test/test_hello.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/test/test_pdfbase_postscript.py,v 1.1 2004/01/20 09:42:10 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/test/test_pdfbase_postscript.py,v 1.2 2004/01/20 22:50:32 andy_robinson Exp $
 __version__=''' $Id'''
 __doc__="""Tests Postscript XObjects.
 
@@ -34,8 +34,8 @@
         c.drawString(100,640, '"Hello PostScript" below.  In ordinary Acrobat Reader')
         c.drawString(100,620, 'we expect to see nothing.')
         c.addPostScriptCommand('/Helvetica findfont 48 scalefont setfont 100 400 moveto (Hello PostScript) show')
-        
-        
+
+
         c.save()
 
     def testTray(self):
@@ -56,8 +56,8 @@
         c.drawString(100,640, '"Hello PostScript" below.  In ordinary Acrobat Reader')
         c.drawString(100,620, 'we expect to see nothing.')
         c.addPostScriptCommand('/Helvetica findfont 48 scalefont setfont 100 400 moveto (Hello PostScript) show')
-        
-        
+
+
         c.save()
 
 def makeSuite():
@@ -70,4 +70,3 @@
     print 'saved test_pdfgen_postscript_visible.pdf'
     print 'saved test_pdfgen_postscript_tray.pdf'
 
-    
\ No newline at end of file
--- a/reportlab/test/test_pdfgen_links.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_pdfgen_links.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #this test and associates functionality kinds donated by Ian Sparks.
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/test/test_pdfgen_links.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/test/test_pdfgen_links.py,v 1.1 2003/03/14 00:05:16 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/test/test_pdfgen_links.py,v 1.2 2004/01/20 22:50:32 andy_robinson Exp $
 """
 Tests for internal links and destinations
 """
@@ -39,7 +39,7 @@
     "Test classes."
     def test1(self):
 
-        c = canvas.Canvas(fn,pagesize=letter)    
+        c = canvas.Canvas(fn,pagesize=letter)
         #Page 1
         c.setFont("Courier", 10)
         markPage(c)
@@ -74,7 +74,7 @@
         #Create link to FitR on page 3
         c.saveState()
         c.setFont("Courier", 14)
-        c.setFillColor(colors.blue) 
+        c.setFillColor(colors.blue)
         c.drawString(inch+20,inch+20,"Click to jump to the meaning of life")
         c.linkAbsolute("","MOL",(inch+10,inch+10,6*inch,2*inch))
         c.restoreState()
@@ -82,7 +82,7 @@
         #Create linkAbsolute to page 2
         c.saveState()
         c.setFont("Courier", 14)
-        c.setFillColor(colors.green) 
+        c.setFillColor(colors.green)
         c.drawString(4*inch,4*inch,"Jump to 2.5 inch position on page 2")
         c.linkAbsolute("","HYPER_1",(3.75*inch,3.75*inch,8.25*inch,4.25*inch))
         c.restoreState()
@@ -123,10 +123,10 @@
 
         #Horizontal absolute test from page 1. Note that because of the page size used on page 3 all this will do
         #is put the view centered on the bookmark. If you want to see it "up close and personal" change page3 to be
-        #the same page size as the other pages. 
+        #the same page size as the other pages.
         c.saveState()
         c.setFont("Courier", 14)
-        c.setFillColor(colors.green) 
+        c.setFillColor(colors.green)
         c.drawString(2.5*inch,2.5*inch,"This line is hyperlinked from page 1")
     #    c.bookmarkHorizontalAbsolute("HYPER_1",3*inch) #slightly higher than the text otherwise text is of screen above.
         c.bookmarkPage("HYPER_1",fitType="XYZ",top=2.5*inch,bottom=2*inch)
@@ -163,7 +163,7 @@
         #Add link from page 1
         c.saveState()
         c.setFont("Courier", 40)
-        c.setFillColor(colors.green) 
+        c.setFillColor(colors.green)
         c.drawString(5*inch,6*inch,"42")
         c.bookmarkPage("MOL",fitType="FitR",left=4*inch,top=7*inch,bottom=4*inch,right=6*inch)
 
--- a/reportlab/test/test_rl_accel.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_rl_accel.py	Tue Jan 20 22:50:32 2004 +0000
@@ -5,7 +5,7 @@
 from reportlab.test.utils import makeSuiteForClasses
 
 class RlAccelTestCase(unittest.TestCase):
-    
+
     def testFpStr(self):
         # should give siz decimal places if less than 1.
         # if more, give up to seven sig figs
@@ -28,7 +28,7 @@
     def testEscapePDF(self):
         from _rl_accel import escapePDF
         assert escapePDF('(test)')=='\\(test\\)'
-        
+
     def test_instanceEscapePDF(self):
         from _rl_accel import _instanceEscapePDF
         assert _instanceEscapePDF('', '(test)')=='\\(test\\)'
--- a/reportlab/test/test_source_chars.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_source_chars.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/test/test_source_chars.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/test/test_source_chars.py,v 1.4 2002/11/04 16:37:34 rgbecker Exp $
+#$Header: /tmp/reportlab/reportlab/test/test_source_chars.py,v 1.5 2004/01/20 22:50:32 andy_robinson Exp $
 
 """This tests for things in source files.  Initially, absence of tabs :-)
 """
@@ -42,7 +42,7 @@
                 badChars = badChars + spaces
 
         if badChars <> 0:
-            self.output.write("file %s contains %d trailing spaces, or %0.2f%% wastage" % (filename, badChars, 100.0*badChars/initSize))
+            self.output.write("file %s contains %d trailing spaces, or %0.2f%% wastage\n" % (filename, badChars, 100.0*badChars/initSize))
 
     def testFiles(self):
         topDir = os.path.dirname(reportlab.__file__)
--- a/reportlab/test/test_table_layout.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/test/test_table_layout.py	Tue Jan 20 22:50:32 2004 +0000
@@ -33,7 +33,7 @@
             ['North','Spam',100,110,120,130,460],
             ['North','Eggs',101,111,121,131,464],
             ['North','Guinness',102,112,122,132,468],
-            
+
             ['South','Spam',100,110,120,130,460],
             ['South','Eggs',101,111,121,131,464],
             ['South','Guinness',102,112,122,132,468],
@@ -53,7 +53,7 @@
         styNormal = styleSheet['Normal']
         styNormal.spaceBefore = 6
         styNormal.spaceAfter = 6
-        
+
         data = (
             ('', 'Jan', 'Feb', 'Mar','Apr','May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'),
             ('Mugs', 0, 4, 17, 3, 21, 47, 12, 33, 2, -2, 44, 89),
@@ -110,7 +110,7 @@
         lst.append(t3)
         lst.append(Spacer(18,18))
 
-        
+
         colWidths = (None, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32)
         t3 = Table(data3, colWidths, None)
         t3.setStyle(GRID_STYLE)
@@ -238,7 +238,7 @@
 
             ('BOX', (6,0), (6,1), 1.0, colors.black),
 
-            # do fatter boxes around some cells            
+            # do fatter boxes around some cells
             ('BOX', (0,0), (-1,1), 2.0, colors.black),
             ('BOX', (0,2), (-1,4), 2.0, colors.black),
             ('BOX', (0,5), (-1,7), 2.0, colors.black),
@@ -279,7 +279,7 @@
         taken into account. ALL the cells in the leftmost column
         have a vertical span (or are occluded by others which do)
         but it can still work out a sane width for them.
-        
+
         """, styNormal))
 
         data = self.getDataBlock()
@@ -304,7 +304,7 @@
         height calculation for its 'row'.  Under the hood it is in the
         same row as the second Spam, but this row gets a height based on
         its own contents and not the cell with the paragraph.
-        
+
         """, styNormal))
 
 
@@ -323,7 +323,7 @@
         To really get this right would involve multiple passes through all the cells
         applying rules until everything which can be sized is sized (possibly
         backtracking), applying increasingly dumb and brutal
-        rules on each pass. 
+        rules on each pass.
         """, styNormal))
         data = self.getDataBlock()
         data[0][2] = Paragraph("Let's <b>really mess things up</b> with a <i>paragraph</i>.",styNormal)
@@ -350,4 +350,3 @@
     unittest.TextTestRunner().run(makeSuite())
     print 'saved test_table_layout.pdf'
 
-    
\ No newline at end of file
--- a/reportlab/tools/docco/graphdocpy.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/tools/docco/graphdocpy.py	Tue Jan 20 22:50:32 2004 +0000
@@ -2,7 +2,7 @@
 #copyright ReportLab Inc. 2000-2001
 #see license.txt for license details
 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/lib/graphdocpy.py?cvsroot=reportlab
-#$Header: /tmp/reportlab/reportlab/tools/docco/graphdocpy.py,v 1.21 2003/04/17 23:37:39 andy_robinson Exp $
+#$Header: /tmp/reportlab/reportlab/tools/docco/graphdocpy.py,v 1.22 2004/01/20 22:50:32 andy_robinson Exp $
 
 """Generate documentation for reportlab.graphics classes.
 
@@ -1031,12 +1031,12 @@
 def makeGraphicsReference(outfilename):
     "Make graphics_reference.pdf"
     builder = GraphPdfDocBuilder0()
-    
+
     builder.begin(name='reportlab.graphics', typ='package')
     documentPackage0('reportlab.graphics', builder, {'isSilent': 0})
     builder.end(outfilename)
     print 'made graphics reference in %s' % outfilename
-    
+
 def main():
     "Handle command-line options and trigger corresponding action."
 
--- a/reportlab/tools/pythonpoint/demos/slidebox.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/tools/pythonpoint/demos/slidebox.py	Tue Jan 20 22:50:32 2004 +0000
@@ -4,26 +4,26 @@
 from rlextra.graphics.guiedit.datacharts import ODBCDataSource, CSVDataSource, DataAssociation, DataAwareDrawing
 
 class SlideBoxDrawing(_DrawingEditorMixin,DataAwareDrawing):
-	def __init__(self,width=400,height=200,*args,**kw):
-		apply(DataAwareDrawing.__init__,(self,width,height)+args,kw)
-		self._add(self,SlideBox(),name='SlideBox',validate=None,desc='The main chart')
-		self.height          = 40
-		self.width           = 168
-		#self.dataSource = ODBCDataSource()
-		self.dataSource = CSVDataSource()
-		self.dataSource.filename = 'slidebox.csv'
-		self.dataSource.integerColumns = ['chartId','value','numberOfBoxes']
-		self.dataSource.sql  = 'SELECT chartId,numberOfBoxes,label,value FROM generic_slidebox'
-		self.dataSource.associations.size = 4
-		self.dataSource.associations.element00 = DataAssociation(column=0, target='chartId', assocType='scalar')
-		self.dataSource.associations.element01 = DataAssociation(column=1, target='SlideBox.numberOfBoxes', assocType='scalar')
-		self.dataSource.associations.element02 = DataAssociation(column=2, target='SlideBox.sourceLabelText', assocType='scalar')
-		self.dataSource.associations.element03 = DataAssociation(column=3, target='SlideBox.trianglePosition', assocType='scalar')
-		self.verbose         = 1
-		self.formats         = ['eps', 'pdf']
-		self.outDir          = './output/'
-		self.fileNamePattern = 'slidebox%03d'
-		
+    def __init__(self,width=400,height=200,*args,**kw):
+        apply(DataAwareDrawing.__init__,(self,width,height)+args,kw)
+        self._add(self,SlideBox(),name='SlideBox',validate=None,desc='The main chart')
+        self.height          = 40
+        self.width           = 168
+        #self.dataSource = ODBCDataSource()
+        self.dataSource = CSVDataSource()
+        self.dataSource.filename = 'slidebox.csv'
+        self.dataSource.integerColumns = ['chartId','value','numberOfBoxes']
+        self.dataSource.sql  = 'SELECT chartId,numberOfBoxes,label,value FROM generic_slidebox'
+        self.dataSource.associations.size = 4
+        self.dataSource.associations.element00 = DataAssociation(column=0, target='chartId', assocType='scalar')
+        self.dataSource.associations.element01 = DataAssociation(column=1, target='SlideBox.numberOfBoxes', assocType='scalar')
+        self.dataSource.associations.element02 = DataAssociation(column=2, target='SlideBox.sourceLabelText', assocType='scalar')
+        self.dataSource.associations.element03 = DataAssociation(column=3, target='SlideBox.trianglePosition', assocType='scalar')
+        self.verbose         = 1
+        self.formats         = ['eps', 'pdf']
+        self.outDir          = './output/'
+        self.fileNamePattern = 'slidebox%03d'
+
 
 if __name__=="__main__": #NORUNTESTS
-	SlideBoxDrawing().go()
+    SlideBoxDrawing().go()
--- a/reportlab/tools/pythonpoint/pythonpoint.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/tools/pythonpoint/pythonpoint.py	Tue Jan 20 22:50:32 2004 +0000
@@ -234,7 +234,7 @@
                 itd[i] = 0
             if i > 0 and itd[i-1] == 0:
                 itd[i-1] = 1
-                
+
     itd[len(itd)-1] = 0
 
     for i in range(len(itd)):
@@ -602,7 +602,7 @@
         in rawtext.  We need to escape this to get back to
         something the Platypus parser can accept"""
         pass
-    
+
     def getFlowable(self):
 ##        print 'rawText for para:'
 ##        print repr(self.rawtext)
@@ -965,7 +965,7 @@
     except ImportError:
         return
     pars = pyRXP.Parser().parse(rawdata)
-    
+
 def process(datafile, notes=0, handout=0, printout=0, cols=0, verbose=0, outDir=None, datafilename=None):
     "Process one PythonPoint source file."
     if not hasattr(datafile, "read"):
@@ -976,8 +976,8 @@
     rawdata = datafile.read()
 
     #if pyRXP present, use it to check and get line numbers for errors...
-    validate(rawdata)        
-    
+    validate(rawdata)
+
     return _process(rawdata, datafilename, notes, handout, printout, cols, verbose, outDir)
 
 def _process(rawdata, datafilename, notes=0, handout=0, printout=0, cols=0, verbose=0, outDir=None):
--- a/reportlab/tools/pythonpoint/stdparser.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/tools/pythonpoint/stdparser.py	Tue Jan 20 22:50:32 2004 +0000
@@ -617,7 +617,7 @@
 
 
     def start_line(self, args):
-        self.pack_slide('line', args)            
+        self.pack_slide('line', args)
         self._curLine = pythonpoint.PPLine(
                     self.ceval('line',args,'x1'),
                     self.ceval('line',args,'y1'),
@@ -755,7 +755,7 @@
         showBoundary = int(args.get("showBoundary", "0"))
 
         hAlign = args.get("hAlign", "CENTER")
-        
+
 
         # the path for the imports should include:
         # 1. document directory
@@ -770,7 +770,7 @@
             importPath.extend(sys.path)
         else:
             importPath.insert(0, dirName)
-        
+
         modul = recursiveImport(moduleName, baseDir=importPath)
         func = getattr(modul, funcName)
         drawing = func()
--- a/reportlab/tools/pythonpoint/styles/htu.py	Tue Jan 20 09:42:10 2004 +0000
+++ b/reportlab/tools/pythonpoint/styles/htu.py	Tue Jan 20 22:50:32 2004 +0000
@@ -27,7 +27,7 @@
 
     stylesheet = {}
     ParagraphStyle = styles.ParagraphStyle
-    
+
     para = ParagraphStyle('Normal', None)   #the ancestor of all
     para.fontName = 'Verdana'
     para.fontSize = 28
@@ -39,7 +39,7 @@
     para = ParagraphStyle('BodyText', stylesheet['Normal'])
     para.spaceBefore = 12
     stylesheet['BodyText'] = para
-    
+
     #Indented, for lists
     para = ParagraphStyle('Indent', stylesheet['Normal'])
     para.leftIndent = 60
@@ -49,7 +49,7 @@
     para = ParagraphStyle('Centered', stylesheet['Normal'])
     para.alignment = TA_CENTER
     stylesheet['Centered'] = para
-    
+
     para = ParagraphStyle('BigCentered', stylesheet['Normal'])
     para.fontSize = 32
     para.alignment = TA_CENTER
@@ -67,14 +67,14 @@
     para.leading = 58
     para.alignment = TA_CENTER
     stylesheet['Title'] = para
-    
+
     para = ParagraphStyle('Heading1', stylesheet['Normal'])
     para.fontName = 'Arial Narrow-Bold'
     para.fontSize = 40
     para.leading = 44
     para.alignment = TA_CENTER
     stylesheet['Heading1'] = para
-    
+
     para = ParagraphStyle('Heading2', stylesheet['Normal'])
     para.fontName = 'Verdana'
     para.fontSize = 32
@@ -82,7 +82,7 @@
     para.spaceBefore = 32
     para.spaceAfter = 12
     stylesheet['Heading2'] = para
-    
+
     para = ParagraphStyle('Heading3', stylesheet['Normal'])
     para.fontName = 'Verdana'
     para.spaceBefore = 20