def __set__(self, instance, value): try: value = validate_value(self.datatype, value) except ValueError as e: raise exc.InvalidInput(self.name, value, six.text_type(e)) dataholder = self._get_dataholder(instance) if value is Unset: if hasattr(dataholder, self.key): delattr(dataholder, self.key) else: setattr(dataholder, self.key, value)
def binary_fromsoap(datatype, el, ns): if el.get(nil_qn) == 'true': return None if el.get(type_qn) not in (None, 'xs:base64Binary'): raise exc.InvalidInput(el.tag, ET.tostring(el)) return base64.decodestring(el.text.encode('ascii'))
def datetime_fromsoap(datatype, el, ns): if el.get(nil_qn) == 'true': return None if el.get(type_qn) not in (None, 'xs:dateTime'): raise exc.InvalidInput(el.tag, ET.tostring(el)) return parse_isodatetime(el.text)
def bool_fromsoap(datatype, el, ns): if el.get(nil_qn) == 'true': return None if el.get(type_qn) not in (None, 'xs:boolean'): raise exc.InvalidInput(el.tag, ET.tostring(el)) return el.text.lower() != 'false'
def text_fromsoap(datatype, el, ns): if el.get(nil_qn) == 'true': return None if el.get(type_qn) not in (None, 'xs:string'): raise exc.InvalidInput(el.tag, ET.tostring(el)) return datatype(el.text if el.text else '')
def bytes_fromsoap(datatype, el, ns): if el.get(nil_qn) == 'true': return None if el.get(type_qn) not in (None, 'xs:string'): raise exc.InvalidInput(el.tag, ET.tostring(el)) return el.text.encode('ascii') if el.text else six.b('')