Projet

Général

Profil

0001-utils-initialize-converter-when-creating-XMLSchema-3.patch

Benjamin Dauvergne, 13 février 2020 13:49

Télécharger (1,59 ko)

Voir les différences:

Subject: [PATCH 1/2] utils: initialize converter when creating XMLSchema
 (#39818)

Also implement Converter.copy() as XMLSchema.__init__ copy
the given converter.
 passerelle/utils/xml.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
passerelle/utils/xml.py
94 94
        self.transformer = kwargs.pop('transformer', None)
95 95
        super(TransformConverter, self).__init__(*args, **kwargs)
96 96

  
97
    def copy(self, **kwargs):
98
        transformer = kwargs.pop('transformer', self.transformer)
99
        new = super(TransformConverter, self).copy(**kwargs)
100
        new.transformer = transformer
101
        return new
102

  
97 103
    def element_decode(self, data, xsd_element, level=0):
98 104
        if self.transformer:
99 105
            if xsd_element.type.name in getattr(self.transformer, 'type_map', {}):
......
126 132

  
127 133
    def __init__(self, xml_schema, root_element):
128 134
        if not isinstance(xml_schema, xmlschema.XMLSchema):
129
            xml_schema = xmlschema.XMLSchema(xml_schema)
135
            xml_schema = xmlschema.XMLSchema(xml_schema, converter=TransformConverter(transformer=self))
130 136
        self.xml_schema = xml_schema
131 137
        self.root_element = root_element
132 138
        self.json_schema = {
133
-