Spaces:
Runtime error
Runtime error
import gradio as gr | |
import math | |
class ValidationException(Exception): | |
pass | |
def string_to_int(size_str: str): | |
mappings = {'M': 10**6, 'B': 10**9, 'T': 10**12} | |
suffix = size_str.upper()[-1] | |
size = size_str[:-1] | |
try: | |
size = float(size) | |
except ValueError: | |
raise ValidationException("The numbers cannot be converted into a float") | |
if suffix not in list(mappings.keys()) and (int(suffix)<48 or int(suffix)>57) : | |
raise ValidationException(f"The suffix is not valid. It can only be one of {list(mappings.keys())}") | |
return size * mappings[suffix] | |
def int_to_string(size: int, precision=2): | |
power = math.ceil(math.log10(size)) | |
size_human_readable = "" | |
if power > 12: | |
size_human_readable = f"{(size/10**12):.3} Trillion" | |
elif power > 9: | |
size_human_readable = f"{(size/10**9):.3} Billion" | |
elif power > 6: | |
size_human_readable = f"{(size/10**6):.3} Million" | |
else: | |
size_human_readable = str(size) | |
return size_human_readable | |
def compute_data_size(size_in): | |
size_out = string_to_int(size_in) | |
output = int_to_string(size_out) | |
return output | |
demo = gr.Interface( | |
fn=compute_data_size, | |
inputs = "text", | |
outputs = "text" | |
) | |
demo.launch() |