From 895432f2d827c1dfc2da95d3defed6163f8b3ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB=20=D0=96=D1=83=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2?= <33721692+LeaveMyYard@users.noreply.github.com> Date: Tue, 28 Mar 2023 19:23:22 +0300 Subject: Fix bug with format a resource unit value 0 --- robusta_krr/utils/resource_units.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/robusta_krr/utils/resource_units.py b/robusta_krr/utils/resource_units.py index c2ca4e5..37a3646 100644 --- a/robusta_krr/utils/resource_units.py +++ b/robusta_krr/utils/resource_units.py @@ -3,11 +3,11 @@ from decimal import Decimal UNITS = { "m": Decimal("1e-3"), "Ki": Decimal(1024), - "Mi": Decimal(1024 ** 2), - "Gi": Decimal(1024 ** 3), - "Ti": Decimal(1024 ** 4), - "Pi": Decimal(1024 ** 5), - "Ei": Decimal(1024 ** 6), + "Mi": Decimal(1024**2), + "Gi": Decimal(1024**3), + "Ti": Decimal(1024**4), + "Pi": Decimal(1024**5), + "Ei": Decimal(1024**6), "k": Decimal(1e3), "M": Decimal(1e6), "G": Decimal(1e9), @@ -37,6 +37,9 @@ def format(x: Decimal, prescision: int | None = None) -> str: sign, digits, exponent = x.as_tuple() # type: ignore x = Decimal((sign, list(digits[:prescision]) + [0] * (len(digits) - prescision), exponent)) + if x == 0: + return "0" + for unit, multiplier in reversed(UNITS.items()): if x % multiplier == 0: v = int(x / multiplier) -- cgit v1.2.3