xmlclass/xmlclass.py
changeset 86 4f1dbdb0bed2
parent 85 fd17b0e0fd7e
child 87 ce2607713931
equal deleted inserted replaced
85:fd17b0e0fd7e 86:4f1dbdb0bed2
    89          else:
    89          else:
    90             raise ValueError, "\"%s\" is not a valid boolean!"%value
    90             raise ValueError, "\"%s\" is not a valid boolean!"%value
    91     elif type_compute in ["unsignedLong","long","integer"]:
    91     elif type_compute in ["unsignedLong","long","integer"]:
    92         return int(value)
    92         return int(value)
    93     elif type_compute == "decimal":
    93     elif type_compute == "decimal":
    94         return float(value)
    94         computed_value = float(value)
       
    95         if computed_value % 1 == 0:
       
    96             return int(computed_value)
       
    97         return computed_value
    95     elif type_compute in ["string","anyURI","NMTOKEN","language"]:
    98     elif type_compute in ["string","anyURI","NMTOKEN","language"]:
    96         return value
    99         return value
    97     elif type_compute == "time":
   100     elif type_compute == "time":
    98         result = time_model.match(value)
   101         result = time_model.match(value)
    99         if result:
   102         if result:
   738                 else:
   741                 else:
   739                     text += ComputeValue(self.value)
   742                     text += ComputeValue(self.value)
   740                 return text
   743                 return text
   741             elif values[1] == "attribute":
   744             elif values[1] == "attribute":
   742                 value = getattr(self, attr, None)
   745                 value = getattr(self, attr, None)
   743                 if values[0].startswith("cls"):
   746                 if value != None:
   744                     value = value.getValue()
   747                     if values[0].startswith("cls"):
   745                 computed_value = ComputeValue(value)
   748                         value = value.getValue()
       
   749                     computed_value = ComputeValue(value)
       
   750                 else:
       
   751                     computed_value = None
   746                 if values[2] != "optional" or value != computed_value:
   752                 if values[2] != "optional" or value != computed_value:
   747                     if len(bases) > 0:
   753                     if len(bases) > 0:
   748                         base_extras[attr] = value
   754                         base_extras[attr] = value
   749                     else:
   755                     else:
   750                         if not first and not self.singleLineAttributes:
   756                         if not first and not self.singleLineAttributes: