equal
deleted
inserted
replaced
42 if name is not None: |
42 if name is not None: |
43 text += "</%s>\n" % name |
43 text += "</%s>\n" % name |
44 return text |
44 return text |
45 return generateXMLTextMethod |
45 return generateXMLTextMethod |
46 |
46 |
47 def GenerateFloatXMLText(extra_values=[]): |
47 def GenerateFloatXMLText(extra_values=[], decimal=None): |
|
48 float_format = ("{:.%dg}" % decimal).format if decimal is not None else str |
48 def generateXMLTextMethod(value, name=None, indent=0): |
49 def generateXMLTextMethod(value, name=None, indent=0): |
49 text = "" |
50 text = "" |
50 if name is not None: |
51 if name is not None: |
51 ind1, ind2 = getIndent(indent, name) |
52 ind1, ind2 = getIndent(indent, name) |
52 text += ind1 + "<%s>" % name |
53 text += ind1 + "<%s>" % name |
53 if value in extra_values or value % 1 != 0 or isinstance(value, IntType): |
54 if value in extra_values or value % 1 != 0 or isinstance(value, IntType): |
54 text += str(value) |
55 text += float_format(value) |
55 else: |
56 else: |
56 text += "%.0f" % value |
57 text += "%.0f" % value |
57 if name is not None: |
58 if name is not None: |
58 text += "</%s>\n" % name |
59 text += "</%s>\n" % name |
59 return text |
60 return text |
2267 "decimal": { |
2268 "decimal": { |
2268 "type": SIMPLETYPE, |
2269 "type": SIMPLETYPE, |
2269 "basename": "decimal", |
2270 "basename": "decimal", |
2270 "extract": GenerateFloatExtraction("decimal"), |
2271 "extract": GenerateFloatExtraction("decimal"), |
2271 "facets": DECIMAL_FACETS, |
2272 "facets": DECIMAL_FACETS, |
2272 "generate": GenerateFloatXMLText(), |
2273 "generate": GenerateFloatXMLText(decimal=3), |
2273 "initial": lambda: 0., |
2274 "initial": lambda: 0., |
2274 "check": lambda x: isinstance(x, (IntType, FloatType)) |
2275 "check": lambda x: isinstance(x, (IntType, FloatType)) |
2275 }, |
2276 }, |
2276 |
2277 |
2277 "float": { |
2278 "float": { |