def construct_yaml_int(self, node): value = to_str(self.construct_scalar(node)) value = value.replace('_', '') sign = +1 if value[0] == '-': sign = -1 if value[0] in '+-': value = value[1:] if value == '0': return 0 elif value.startswith('0b'): return sign*int(value[2:], 2) elif value.startswith('0x'): return sign*int(value[2:], 16) elif value.startswith('0o'): return sign*int(value[2:], 8) elif self.processing_version != (1, 2) and value[0] == '0': return sign*int(value, 8) elif self.processing_version != (1, 2) and ':' in value: digits = [int(part) for part in value.split(':')] digits.reverse() base = 1 value = 0 for digit in digits: value += digit*base base *= 60 return sign*value else: return sign*int(value)
def construct_yaml_int(self, node): """Add int fix.""" value = to_str(self.construct_scalar(node)) value = value.replace('_', '') sign = +1 if value[0] == '-': sign = -1 if value[0] in '+-': value = value[1:] if value == '0': return 0 elif value.startswith('0b'): return sign * int(value[2:], 2) elif value.startswith('0x'): return sign * int(value[2:], 16) elif value.startswith('0o'): return sign * int(value[2:], 8) # elif value[0] == '0': # return sign*int(value, 8) elif ':' in value: digits = [int(part) for part in value.split(':')] digits.reverse() base = 1 int_value = 0 for digit in digits: int_value += digit * base base *= 60 return sign * int_value else: return sign * int(value)
def construct_yaml_int(self, node): value = to_str(self.construct_scalar(node)) value = value.replace('_', '') sign = +1 if value[0] == '-': sign = -1 if value[0] in '+-': value = value[1:] if value == '0': return 0 elif value.startswith('0b'): return sign * int(value[2:], 2) elif value.startswith('0x'): return sign * int(value[2:], 16) elif value.startswith('0o'): return sign * int(value[2:], 8) elif self.processing_version != (1, 2) and value[0] == '0': return sign * int(value, 8) elif self.processing_version != (1, 2) and ':' in value: digits = [int(part) for part in value.split(':')] digits.reverse() base = 1 value = 0 for digit in digits: value += digit * base base *= 60 return sign * value else: return sign * int(value)
def construct_yaml_binary(self, node): value = self.construct_scalar(node) try: return to_str(value).decode('base64') except (binascii.Error, UnicodeEncodeError) as exc: raise ConstructorError( None, None, "failed to decode base64 data: %s" % exc, node.start_mark)
def construct_yaml_float(self, node): value = to_str(self.construct_scalar(node)) value = value.replace('_', '').lower() sign = +1 if value[0] == '-': sign = -1 if value[0] in '+-': value = value[1:] if value == '.inf': return sign*self.inf_value elif value == '.nan': return self.nan_value elif ':' in value: digits = [float(part) for part in value.split(':')] digits.reverse() base = 1 value = 0.0 for digit in digits: value += digit*base base *= 60 return sign*value else: return sign*float(value)
def construct_yaml_float(self, node): value = to_str(self.construct_scalar(node)) value = value.replace('_', '').lower() sign = +1 if value[0] == '-': sign = -1 if value[0] in '+-': value = value[1:] if value == '.inf': return sign * self.inf_value elif value == '.nan': return self.nan_value elif ':' in value: digits = [float(part) for part in value.split(':')] digits.reverse() base = 1 value = 0.0 for digit in digits: value += digit * base base *= 60 return sign * value else: return sign * float(value)