Update of /cvsroot/pythonreports/PythonReports/PythonReports
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32275
Modified Files:
builder.py
Log Message:
Builder: delay text_drivers initialization until run,
added backend selection parameters for __init__
Index: builder.py
===================================================================
RCS file: /cvsroot/pythonreports/PythonReports/PythonReports/builder.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** builder.py 1 Nov 2006 11:05:19 -0000 1.1
--- builder.py 4 Nov 2006 14:38:24 -0000 1.2
***************
*** 2,5 ****
--- 2,7 ----
# FIXME: column-based variables are not intelligible
"""History (most recent first):
+ 04-nov-2006 [als] Builder: delay text_drivers initialization until run,
+ added backend selection parameters for __init__
20-oct-2006 [als] Barcode X dimension attr renamed to "module"
20-oct-2006 [als] Structure moved to datatypes
***************
*** 936,944 ****
layout_parents = {}
! def __init__(self, template, data=(), parameters=None, item_callback=None):
"""Initialize builder
Parameters:
! template: PRT file name or ElementTree With loaded report template
data: report data sequence
parameters: values for report parameters
--- 938,949 ----
layout_parents = {}
! def __init__(self, template, data=(), parameters=None,
! item_callback=None, text_driver=None, image_driver=None,
! ):
"""Initialize builder
Parameters:
! template: PRT file name or ElementTree
! with loaded report template
data: report data sequence
parameters: values for report parameters
***************
*** 947,950 ****
--- 952,959 ----
that will be called without arguments
for each item of the data sequence.
+ text_backend: optional name of preferred text
+ driver backend, e.g. "wx" or "Tk".
+ image_backend: optional name of preferred image
+ driver backend, e.g. "wx".
"""
***************
*** 959,964 ****
self.parameters = {}
self.callback = item_callback
! self.text_driver_factory = drivers.get_driver("Text")
! self.image_driver_factory = drivers.get_driver("Image")
self.basedir = template.getroot().get("basedir", None)
if not self.basedir:
--- 968,973 ----
self.parameters = {}
self.callback = item_callback
! self.text_driver_factory = drivers.get_driver("Text", text_backend)
! self.image_driver_factory = drivers.get_driver("Image", image_backend)
self.basedir = template.getroot().get("basedir", None)
if not self.basedir:
***************
*** 969,974 ****
self.variables = [Variable(_item)
for _item in template.variables.itervalues()]
- self.text_drivers = dict([(_name, self.text_driver_factory(_font))
- for (_name, _font) in template.fonts.iteritems()])
# image collections:
# - kept in files
--- 978,981 ----
***************
*** 1199,1202 ****
--- 1206,1212 ----
else:
_callback = self.callback
+ # initialize fonts - moved from __init__() to allow backend switching
+ self.text_drivers = dict([(_name, self.text_driver_factory(_font))
+ for (_name, _font) in template.fonts.iteritems()])
_data_iter = self.start(data, parameters)
if _callback:
|