Projet

Général

Profil

0007-utils-xml-handle-new-xsd_type-parameter-on-element_d.patch

Nicolas Roche, 11 mars 2022 15:38

Télécharger (2,36 ko)

Voir les différences:

Subject: [PATCH 7/9] utils/xml: handle new xsd_type parameter on
 element_decode (#62631)

 passerelle/utils/xml.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
passerelle/utils/xml.py
108 108
        super(TransformConverter, self).__init__(*args, **kwargs)
109 109

  
110 110
    def copy(self, **kwargs):
111 111
        transformer = kwargs.pop('transformer', self.transformer)
112 112
        new = super(TransformConverter, self).copy(**kwargs)
113 113
        new.transformer = transformer
114 114
        return new
115 115

  
116
    def element_decode(self, data, xsd_element, level=0):
116
    def element_decode(self, data, xsd_element, *args):
117 117
        if self.transformer:
118 118
            if xsd_element.type.name in getattr(self.transformer, 'type_map', {}):
119 119
                mapped = self.transformer.type_map[xsd_element.type.name]
120 120
                if hasattr(self.transformer, 'decode_%s' % mapped):
121 121
                    data = getattr(self.transformer, 'decode_%s' % mapped)(data)
122
        return super(TransformConverter, self).element_decode(data, xsd_element, level=level)
122
        return super(TransformConverter, self).element_decode(data, xsd_element, *args)
123 123

  
124
    def element_encode(self, obj, xsd_element, level=0):
124
    def element_encode(self, obj, xsd_element, *args):
125 125
        if self.transformer:
126 126
            if xsd_element.type.name in getattr(self.transformer, 'type_map', {}):
127 127
                mapped = self.transformer.type_map[xsd_element.type.name]
128 128
                if hasattr(self.transformer, 'encode_%s' % mapped):
129 129
                    obj = getattr(self.transformer, 'encode_%s' % mapped)(obj)
130
        return super(TransformConverter, self).element_encode(obj, xsd_element, level=level)
130
        return super(TransformConverter, self).element_encode(obj, xsd_element, *args)
131 131

  
132 132

  
133 133
class JSONSchemaFromXMLSchema(object):
134 134
    SIMPLE_TYPE_MAPPING = {
135 135
        xmlschema_names.XSD_STRING: 'string',
136 136
        xmlschema_names.XSD_INTEGER: 'integer',
137 137
        xmlschema_names.XSD_INT: 'integer',
138 138
        xmlschema_names.XSD_POSITIVE_INTEGER: 'integer',
139
-