Tried reportlab on python 3.4... failed

Glenn Linderman <[email protected]>
Newsgroups gmane.comp.python.reportlab.user
Message-ID <[email protected]>
Since reportlab was one of a very few reasons I have python 2.7 
installed, I have watched with anticipation the development of reportlab 
for python 3. Today I decided to try it, because I tried to operate on a 
file with a non-ASCII character in it, and python 2.7 doesn't like 
those, so rather than rename the file, I installed reportlab in Python 
3.4.1 via pip. The install seemed to go fine.

I tweaked the launching of my PDF generator to launch it via Python 
3.4.1 instead of python 2.7. Since it has been a while since I looked at 
that code, I figured I would get a bunch of Python 2->3 sort of errors, 
but... not yet...

Instead, on the call to mkdoc(), I got a traceback, from mkdoc() down 
here it is:

  in mkdoc:
     doc.build( elements, onFirstPage=mkpage )
   File 
"c:\python34\lib\site-packages\reportlab\platypus\doctemplate.py", line 
1127, in build
      BaseDocTemplate.build(self,flowables, canvasmaker=canvasmaker)
   File 
"c:\python34\lib\site-packages\reportlab\platypus\doctemplate.py", line 
8 90, in build
     self.handle_flowable(flowables)
   File 
"c:\python34\lib\site-packages\reportlab\platypus\doctemplate.py", line 
773, in handle_flowable
     if frame.add(f, canv, trySplit=self.allowSplitting):
   File "c:\python34\lib\site-packages\reportlab\platypus\frames.py", 
line 161, in _add
     w, h = flowable.wrap(aW, h)
   File "c:\python34\lib\site-packages\reportlab\platypus\paragraph.py", 
line 1035, in wrap
     blPara = self.breakLines([first_line_width, later_widths])
   File "c:\python34\lib\site-packages\reportlab\platypus\paragraph.py", 
line 1203, in breakLines
     splitLongWords = style.splitLongWords
AttributeError: 'MyParaSt' object has no attribute 'splitLongWords'


The definition for MyParaSt is as follows... works fine in reportlab 2.5 
on python 2.7....

class MyParaSt(PropertySet):
     defaults = {
         'fontName': 'Times-New-Roman',
         'fontSize': defsize,
         'leading': deflead,
         'leftIndent': 0,
         'rightIndent': 0,
         'firstLineIndent': 0,
         'alignment': TA_LEFT,
         'spaceBefore': 0,
         'spaceAfter': 0,
         'bulletFontName': 'Times-New-Roman',
         'bulletFontSize': 10,
         'bulletIndent': 0,
         'textColor': black,
         'backColor': None,
         'wordWrap': None,
         'borderWidth': 0,
         'borderPadding': 0,
         'borderColor': None,
         'borderRadius': None,
         'allowWidows': 1,
         'allowOrphans': 0,
         'textTransform': None,
             #uppercase lowercase (captitalize not yet) or None or absent
         }

I'm not exactly sure why I have a MyParaSt, since it has been a long 
time since I wrote this, but I would guess it might have been to set the 
default font(s)?  Maybe there would have been a better way, like only 
changing the items I wanted to change, rather than creating my whole new 
own defaults hash? I probably cut-n-pasted this idea from somewhere, 
though, and maybe it wasn't the best idea?

Where should I start reading? I did do a search and it seems 
splitLongWords is relatively new...
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.