def iter_decode(self, text, validation='lax', **kwargs):
_text = self.normalize(text)
if validation != 'skip' and self.patterns:
for error in self.patterns(_text):
yield error
try:
result = self.to_python(_text)
except (ValueError, DecimalException) as err:
if validation == 'skip':
yield unicode_type(_text)
else:
yield XMLSchemaDecodeError(self, text, self.to_python, reason=str(err))
yield None
return
if validation != 'skip':
for validator in self.validators:
for error in validator(result):
yield error
if isinstance(result, Decimal):
try:
result = kwargs.get('decimal_type')(result)
except TypeError:
pass
yield result
评论列表
文章目录