add function for calculating units for integers
This commit is contained in:
@@ -53,6 +53,15 @@ DATETIME_MAX_UNIXTIME: int = (datetime.MAXYEAR - 1970) * 365 * 24 * 60 * 60
|
||||
DATETIME_MIN_UNIXTIME: int = (datetime.MINYEAR - 1970) * 365 * 24 * 60 * 60
|
||||
|
||||
|
||||
# Number units
|
||||
UNIT_g: int = (1000 * 1000 * 1000)
|
||||
UNIT_m: int = (1000 * 1000)
|
||||
UNIT_k: int = (1000)
|
||||
UNIT_G: int = (1024 * 1024 * 1024)
|
||||
UNIT_M: int = (1024 * 1024)
|
||||
UNIT_K: int = (1024)
|
||||
|
||||
|
||||
def load_plugin(internal_types: Sequence[str], module_name: str,
|
||||
class_name: str, base_class: Type[_T_co],
|
||||
configuration: "config.Configuration") -> _T_co:
|
||||
@@ -294,6 +303,46 @@ def format_ut(unixtime: int) -> str:
|
||||
return r
|
||||
|
||||
|
||||
def format_int(value: int, binary: bool = False) -> str:
|
||||
if binary:
|
||||
if value > UNIT_G:
|
||||
value = value / UNIT_G
|
||||
unit = "G"
|
||||
elif value > UNIT_M:
|
||||
value = value / UNIT_M
|
||||
unit = "M"
|
||||
elif value > UNIT_K:
|
||||
value = value / UNIT_K
|
||||
unit = "K"
|
||||
else:
|
||||
unit = ""
|
||||
else:
|
||||
if value > UNIT_g:
|
||||
value = value / UNIT_g
|
||||
unit = "g"
|
||||
elif value > UNIT_m:
|
||||
value = value / UNIT_m
|
||||
unit = "m"
|
||||
elif value > UNIT_k:
|
||||
value = value / UNIT_k
|
||||
unit = "k"
|
||||
else:
|
||||
unit = ""
|
||||
return ("%.1f %s" % (value, unit))
|
||||
|
||||
if unixtime <= DATETIME_MIN_UNIXTIME:
|
||||
r = str(unixtime) + "(<=MIN:" + str(DATETIME_MIN_UNIXTIME) + ")"
|
||||
elif unixtime >= DATETIME_MAX_UNIXTIME:
|
||||
r = str(unixtime) + "(>=MAX:" + str(DATETIME_MAX_UNIXTIME) + ")"
|
||||
else:
|
||||
if sys.version_info < (3, 11):
|
||||
dt = datetime.datetime.utcfromtimestamp(unixtime)
|
||||
else:
|
||||
dt = datetime.datetime.fromtimestamp(unixtime, datetime.UTC)
|
||||
r = str(unixtime) + "(" + dt.strftime('%Y-%m-%dT%H:%M:%SZ') + ")"
|
||||
return r
|
||||
|
||||
|
||||
def limit_str(content: str, limit: int) -> str:
|
||||
length = len(content)
|
||||
if limit > 0 and length >= limit:
|
||||
|
||||
Reference in New Issue
Block a user