From ae2be16844c02c4ff89004f12a0a4fbf9a161c75 Mon Sep 17 00:00:00 2001 From: Numerigraphe - Lionel Sausin Date: Mon, 7 Nov 2011 16:45:56 +0100 Subject: [PATCH] [FIX] unmutable defaults in report bzr revid: ls@numerigraphe.fr-20111107154556-eofj5s55tkqntsty --- openerp/report/render/rml2html/utils.py | 4 ++- openerp/report/render/rml2pdf/trml2pdf.py | 30 +++++++++++++++++------ openerp/report/render/rml2pdf/utils.py | 4 ++- openerp/report/render/rml2txt/rml2txt.py | 12 ++++++--- openerp/report/render/rml2txt/utils.py | 4 ++- 5 files changed, 39 insertions(+), 15 deletions(-) diff --git a/openerp/report/render/rml2html/utils.py b/openerp/report/render/rml2html/utils.py index 9d1d15da14c..b811cc5d47b 100644 --- a/openerp/report/render/rml2html/utils.py +++ b/openerp/report/render/rml2html/utils.py @@ -48,7 +48,9 @@ def tuple_int_get(node, attr_name, default=None): def bool_get(value): return (str(value)=="1") or (value.lower()=='yes') -def attr_get(node, attrs, dict={}): +def attr_get(node, attrs, dict=None): + if dict is None: + dict = {} res = {} for name in attrs: if node.get(name): diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py index 09690fb75c2..639d62a1aa9 100644 --- a/openerp/report/render/rml2pdf/trml2pdf.py +++ b/openerp/report/render/rml2pdf/trml2pdf.py @@ -226,7 +226,9 @@ class _rml_styles(object,): return style class _rml_doc(object): - def __init__(self, node, localcontext, images={}, path='.', title=None): + def __init__(self, node, localcontext, images=None, path='.', title=None): + if images is None: + images = {} self.localcontext = localcontext self.etree = node self.filename = self.etree.get('filename') @@ -311,7 +313,9 @@ class _rml_doc(object): self.canvas.save() class _rml_canvas(object): - def __init__(self, canvas, localcontext, doc_tmpl=None, doc=None, images={}, path='.', title=None): + def __init__(self, canvas, localcontext, doc_tmpl=None, doc=None, images=None, path='.', title=None): + if images is None: + images = {} self.localcontext = localcontext self.canvas = canvas self.styles = doc.styles @@ -564,7 +568,9 @@ class _rml_canvas(object): tags[n.tag](n) class _rml_draw(object): - def __init__(self, localcontext ,node, styles, images={}, path='.', title=None): + def __init__(self, localcontext, node, styles, images=None, path='.', title=None): + if images is None: + images = {} self.localcontext = localcontext self.node = node self.styles = styles @@ -595,10 +601,12 @@ class _rml_Illustration(platypus.flowables.Flowable): class _rml_flowable(object): def __init__(self, doc, localcontext, images=None, path='.', title=None): + if images is None: + images = {} self.localcontext = localcontext self.doc = doc self.styles = doc.styles - self.images = images or {} + self.images = images self.path = path self.title = title self._logger = logging.getLogger('report.rml.flowable') @@ -890,7 +898,9 @@ class TinyDocTemplate(platypus.BaseDocTemplate): self.canv._pageNumber = 0 class _rml_template(object): - def __init__(self, localcontext, out, node, doc, images={}, path='.', title=None): + def __init__(self, localcontext, out, node, doc, images=None, path='.', title=None): + if images is None: + images = {} if not localcontext: localcontext={'internal_header':True} self.localcontext = localcontext @@ -951,12 +961,12 @@ class _rml_template(object): fis.append(PageCount()) self.doc_tmpl.build(fis) -def parseNode(rml, localcontext=None,fout=None, images=None, path='.',title=None): - node = etree.XML(rml) +def parseNode(rml, localcontext=None, fout=None, images=None, path='.', title=None): if localcontext is None: localcontext = {} if images is None: images = {} + node = etree.XML(rml) r = _rml_doc(node, localcontext, images, path, title=title) #try to override some font mappings try: @@ -972,7 +982,11 @@ def parseNode(rml, localcontext=None,fout=None, images=None, path='.',title=None r.render(fp) return fp.getvalue() -def parseString(rml, localcontext = {},fout=None, images={}, path='.',title=None): +def parseString(rml, localcontext=None, fout=None, images=None, path='.', title=None): + if localcontext is None: + localcontext = {} + if images is None: + images = {} node = etree.XML(rml) r = _rml_doc(node, localcontext, images, path, title=title) diff --git a/openerp/report/render/rml2pdf/utils.py b/openerp/report/render/rml2pdf/utils.py index 656045c5c62..cd6b629d84f 100644 --- a/openerp/report/render/rml2pdf/utils.py +++ b/openerp/report/render/rml2pdf/utils.py @@ -179,7 +179,9 @@ def tuple_int_get(node, attr_name, default=None): def bool_get(value): return (str(value)=="1") or (value.lower()=='yes') -def attr_get(node, attrs, dict={}): +def attr_get(node, attrs, dict=None): + if dict is None: + dict = {} res = {} for name in attrs: if node.get(name): diff --git a/openerp/report/render/rml2txt/rml2txt.py b/openerp/report/render/rml2txt/rml2txt.py index b6e5b54c357..3e0fcf37bdd 100755 --- a/openerp/report/render/rml2txt/rml2txt.py +++ b/openerp/report/render/rml2txt/rml2txt.py @@ -375,7 +375,7 @@ class _rml_draw_style(object): return ';'.join(['%s:%s' % (x[0],x[1]) for x in self.style[tag].items()]) class _rml_template(object): - def __init__(self, localcontext, out, node, doc, images={}, path='.', title=None): + def __init__(self, localcontext, out, node, doc, images=None, path='.', title=None): self.localcontext = localcontext self.frame_pos = -1 self.frames = [] @@ -465,7 +465,7 @@ class _rml_template(object): return result class _rml_doc(object): - def __init__(self, node, localcontext, images={}, path='.', title=None): + def __init__(self, node, localcontext, images=None, path='.', title=None): self.localcontext = localcontext self.etree = node self.filename = self.etree.get('filename') @@ -495,14 +495,18 @@ class _rml_doc(object): self.result += '\n' out.write( self.result) -def parseNode(rml, localcontext = {},fout=None, images={}, path='.',title=None): +def parseNode(rml, localcontext = {},fout=None, images=None, path='.',title=None): + if images is None: + images = {} node = etree.XML(rml) r = _rml_doc(node, localcontext, images, path, title=title) fp = StringIO.StringIO() r.render(fp) return fp.getvalue() -def parseString(rml, localcontext = {},fout=None, images={}, path='.',title=None): +def parseString(rml, localcontext = {},fout=None, images=None, path='.',title=None): + if images is None: + images = {} node = etree.XML(rml) r = _rml_doc(node, localcontext, images, path, title=title) if fout: diff --git a/openerp/report/render/rml2txt/utils.py b/openerp/report/render/rml2txt/utils.py index d967b64c53d..122411afb2d 100644 --- a/openerp/report/render/rml2txt/utils.py +++ b/openerp/report/render/rml2txt/utils.py @@ -112,7 +112,9 @@ def tuple_int_get(node, attr_name, default=None): def bool_get(value): return (str(value)=="1") or (value.lower()=='yes') -def attr_get(node, attrs, dict={}): +def attr_get(node, attrs, dict=None): + if dict is None: + dict = {} res = {} for name in attrs: if node.get(name):