Changeset 173 for pyyaml/trunk/lib/yaml
- Timestamp:
- 05/22/06 15:49:54 (6 years ago)
- Location:
- pyyaml/trunk/lib/yaml
- Files:
-
- 3 modified
-
constructor.py (modified) (1 diff)
-
reader.py (modified) (3 diffs)
-
representer.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
pyyaml/trunk/lib/yaml/constructor.py
r170 r173 233 233 234 234 inf_value = 1e300 235 while repr(inf_value) != repr(inf_value*inf_value):235 while inf_value != inf_value*inf_value: 236 236 inf_value *= inf_value 237 nan_value = inf_value/inf_value237 nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99). 238 238 239 239 def construct_yaml_float(self, node): -
pyyaml/trunk/lib/yaml/reader.py
r136 r173 121 121 122 122 def peek(self, index=0): 123 if self.pointer+index+1 >= len(self.buffer): 123 try: 124 return self.buffer[self.pointer+index] 125 except IndexError: 124 126 self.update(index+1) 125 return self.buffer[self.pointer+index]127 return self.buffer[self.pointer+index] 126 128 127 129 def prefix(self, length=1): … … 133 135 if self.pointer+length+1 >= len(self.buffer): 134 136 self.update(length+1) 135 for k in range(length):137 while length: 136 138 ch = self.buffer[self.pointer] 137 139 self.pointer += 1 … … 143 145 elif ch != u'\uFEFF': 144 146 self.column += 1 147 length -= 1 145 148 146 149 def get_mark(self): -
pyyaml/trunk/lib/yaml/representer.py
r168 r173 196 196 while repr(inf_value) != repr(inf_value*inf_value): 197 197 inf_value *= inf_value 198 nan_value = inf_value/inf_value199 200 repr_pos_inf = repr(inf_value)201 repr_neg_inf = repr(-inf_value)202 repr_nan = repr(inf_value/inf_value)203 198 204 199 def represent_float(self, data): 205 repr_data = repr(data) 206 if repr_data == self.repr_pos_inf: 200 if data != data or (data == 0.0 and data == 1.0): 201 value = u'.nan' 202 elif data == self.inf_value: 207 203 value = u'.inf' 208 elif repr_data == self.repr_neg_inf:204 elif data == -self.inf_value: 209 205 value = u'-.inf' 210 elif repr_data == self.repr_nan: 211 value = u'.nan' 212 else: 213 value = unicode(repr_data) 206 else: 207 value = unicode(repr(data)) 214 208 return self.represent_scalar(u'tag:yaml.org,2002:float', value) 215 209
