JOJ3-config-generator/joj3_config_generator/models/common.py
李衍志523370910113 345f6daa32
Some checks failed
build / build (push) Failing after 2m19s
build / build (pull_request) Failing after 2m18s
feat: implement StrEnum for parser
2025-03-05 13:03:52 +08:00

21 lines
647 B
Python

from typing import Union
import humanfriendly
# FIXME: we don't need to compact for int
class Memory(int):
def __new__(cls, value: Union[str, int]) -> "Memory":
if isinstance(value, str):
parsed = humanfriendly.parse_size(value, binary=True)
return super().__new__(cls, parsed)
return super().__new__(cls, value)
class Time(int):
def __new__(cls, value: Union[str, int]) -> "Time":
if isinstance(value, str):
parsed = humanfriendly.parse_timespan(value) * 1_000_000_000 # ns
return super().__new__(cls, round(parsed))
return super().__new__(cls, value)