aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ionite34 <[email protected]>2022-12-17 19:07:21 +0800
committerGravatar ionite34 <[email protected]>2022-12-17 19:07:21 +0800
commita577e4810df719d67bfd2eae48c49854a700edd6 (patch)
tree7c820ead0afe953b956a6c57780be556d4d903c1
parentAdd FILE_COUNT_LIMIT and error messages (diff)
sizeof_fmt uses 0 d.p. for integrals
-rw-r--r--bot/exts/utils/snekbox/_io.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/bot/exts/utils/snekbox/_io.py b/bot/exts/utils/snekbox/_io.py
index fcf5451aa..3ec5ff00a 100644
--- a/bot/exts/utils/snekbox/_io.py
+++ b/bot/exts/utils/snekbox/_io.py
@@ -16,13 +16,16 @@ FILE_SIZE_LIMIT = 8 * 1024 * 1024
FILE_COUNT_LIMIT = 10
-def sizeof_fmt(num: int, suffix: str = "B") -> str:
+def sizeof_fmt(num: int | float, suffix: str = "B") -> str:
"""Return a human-readable file size."""
+ num = float(num)
for unit in ("", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"):
if abs(num) < 1024:
- return f"{num:3.1f}{unit}{suffix}"
+ num_str = f"{int(num)}" if num.is_integer() else f"{num:3.1f}"
+ return f"{num_str} {unit}{suffix}"
num /= 1024
- return f"{num:.1f}Yi{suffix}"
+ num_str = f"{int(num)}" if num.is_integer() else f"{num:3.1f}"
+ return f"{num_str} Yi{suffix}"
@dataclass