From 40a2f71c41e5420b22e71a9d234bb83fd97729a5 Mon Sep 17 00:00:00 2001 From: MarkKoz Date: Fri, 6 Aug 2021 15:38:48 -0700 Subject: Time: use typing.Literal for precision param of humanize_delta --- bot/utils/time.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bot/utils/time.py b/bot/utils/time.py index 6fc43ef6a..8ba49a455 100644 --- a/bot/utils/time.py +++ b/bot/utils/time.py @@ -2,7 +2,7 @@ import datetime import re from enum import Enum from time import struct_time -from typing import Optional, Union, overload +from typing import Literal, Optional, Union, overload import arrow from dateutil.relativedelta import relativedelta @@ -29,6 +29,7 @@ Timestamp = Union[ str, # ISO 8601-formatted string tuple[int, int, int], # ISO calendar tuple ] +_Precision = Literal["years", "months", "days", "hours", "minutes", "seconds"] class TimestampFormats(Enum): @@ -83,7 +84,7 @@ def humanize_delta( arg1: Union[relativedelta, Timestamp], /, *, - precision: str = "seconds", + precision: _Precision = "seconds", max_units: int = 6, absolute: bool = True, ) -> str: @@ -96,7 +97,7 @@ def humanize_delta( start: Timestamp, /, *, - precision: str = "seconds", + precision: _Precision = "seconds", max_units: int = 6, absolute: bool = True, ) -> str: @@ -113,7 +114,7 @@ def humanize_delta( hours: float = 0, minutes: float = 0, seconds: float = 0, - precision: str = "seconds", + precision: _Precision = "seconds", max_units: int = 6, absolute: bool = True, ) -> str: @@ -122,7 +123,7 @@ def humanize_delta( def humanize_delta( *args, - precision: str = "seconds", + precision: _Precision = "seconds", max_units: int = 6, absolute: bool = True, **kwargs, -- cgit v1.2.3