various improvemets
This commit is contained in:
@ -17,6 +17,8 @@
|
||||
|
||||
from enum import StrEnum
|
||||
|
||||
from compute.exceptions import InvalidDataUnitError
|
||||
|
||||
|
||||
class DataUnit(StrEnum):
|
||||
"""Data units enumerated."""
|
||||
@ -28,22 +30,12 @@ class DataUnit(StrEnum):
|
||||
TIB = 'TiB'
|
||||
|
||||
|
||||
class InvalidDataUnitError(ValueError):
|
||||
"""Data unit is not valid."""
|
||||
|
||||
def __init__(self, msg: str):
|
||||
"""Initialise InvalidDataUnitError."""
|
||||
super().__init__(
|
||||
f'{msg}, valid units are: {", ".join(list(DataUnit))}'
|
||||
)
|
||||
|
||||
|
||||
def to_bytes(value: int, unit: DataUnit = DataUnit.BYTES) -> int:
|
||||
"""Convert value to bytes. See :class:`DataUnit`."""
|
||||
try:
|
||||
_ = DataUnit(unit)
|
||||
except ValueError as e:
|
||||
raise InvalidDataUnitError(e) from e
|
||||
raise InvalidDataUnitError(e, list(DataUnit)) from e
|
||||
powers = {
|
||||
DataUnit.BYTES: 0,
|
||||
DataUnit.KIB: 1,
|
||||
|
Reference in New Issue
Block a user