Skip to content

Commit 18809d5

Browse files
committed
chore: cache abs value, and fix linter
1 parent 99178a0 commit 18809d5

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

binary/core.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from decimal import Decimal
2-
from typing import NamedTuple, Optional, Tuple, Union
2+
from typing import TYPE_CHECKING, NamedTuple, Optional, Tuple, Union
33

44
BYTE = 1
55

@@ -169,41 +169,45 @@ def convert_units(
169169
except KeyError:
170170
raise ValueError(f'{to} is not a valid binary unit.')
171171

172+
babs = abs(b)
173+
if TYPE_CHECKING:
174+
assert isinstance(babs, float) or isinstance(babs, Decimal)
175+
172176
if unit in BINARY_PREFIXES and not si:
173-
if abs(b) < KIBIBYTE:
177+
if babs < KIBIBYTE:
174178
return b, 'B'
175-
elif abs(b) < MEBIBYTE:
179+
elif babs < MEBIBYTE:
176180
return b / KIBIBYTE, 'KiB'
177-
elif abs(b) < GIBIBYTE:
181+
elif babs < GIBIBYTE:
178182
return b / MEBIBYTE, 'MiB'
179-
elif abs(b) < TEBIBYTE:
183+
elif babs < TEBIBYTE:
180184
return b / GIBIBYTE, 'GiB'
181-
elif abs(b) < PEBIBYTE:
185+
elif babs < PEBIBYTE:
182186
return b / TEBIBYTE, 'TiB'
183-
elif abs(b) < EXBIBYTE:
187+
elif babs < EXBIBYTE:
184188
return b / PEBIBYTE, 'PiB'
185-
elif abs(b) < ZEBIBYTE:
189+
elif babs < ZEBIBYTE:
186190
return b / EXBIBYTE, 'EiB'
187-
elif abs(b) < YOBIBYTE:
191+
elif babs < YOBIBYTE:
188192
return b / ZEBIBYTE, 'ZiB'
189193
else:
190194
return b / YOBIBYTE, 'YiB'
191195
else:
192-
if abs(b) < KILOBYTE:
196+
if babs < KILOBYTE:
193197
return b, 'B'
194-
elif abs(b) < MEGABYTE:
198+
elif babs < MEGABYTE:
195199
return b / KILOBYTE, 'KB'
196-
elif abs(b) < GIGABYTE:
200+
elif babs < GIGABYTE:
197201
return b / MEGABYTE, 'MB'
198-
elif abs(b) < TERABYTE:
202+
elif babs < TERABYTE:
199203
return b / GIGABYTE, 'GB'
200-
elif abs(b) < PETABYTE:
204+
elif babs < PETABYTE:
201205
return b / TERABYTE, 'TB'
202-
elif abs(b) < EXABYTE:
206+
elif babs < EXABYTE:
203207
return b / PETABYTE, 'PB'
204-
elif abs(b) < ZETTABYTE:
208+
elif babs < ZETTABYTE:
205209
return b / EXABYTE, 'EB'
206-
elif abs(b) < YOTTABYTE:
210+
elif babs < YOTTABYTE:
207211
return b / ZETTABYTE, 'ZB'
208212
else:
209213
return b / YOTTABYTE, 'YB'

0 commit comments

Comments
 (0)