def normalize_bytes(value: Union[bytes, str]) -> bytes: if is_bytes(value): return cast(bytes, value) elif is_text(value) and is_hex(value): return decode_hex(cast(str, value)) elif is_text(value): return b'' else: raise TypeError("Value must be either a string or bytes object")
def normalize_int(value: IntConvertible) -> int: """ Robust to integer conversion, handling hex values, string representations, and special cases like `0x`. """ if is_integer(value): return cast(int, value) elif is_bytes(value): return big_endian_to_int(cast(bytes, value)) elif is_hex(value) and is_0x_prefixed(value): value = cast(str, value) if len(value) == 2: return 0 else: return int(value, 16) elif is_string(value): return int(value) else: raise TypeError(f"Unsupported type: Got `{type(value)}`")