From b92991bc2aa246dbcb0181c9c74701581a3299b0 Mon Sep 17 00:00:00 2001 From: Eklavya Sharma Date: Wed, 12 Oct 2016 03:18:47 +0530 Subject: [PATCH] Add TimeTuple in python3's time.pyi and datetime.pyi. (#597) Add `TimeTuple = Tuple[int, int, int, int, int, int, int, int, int]` to stdlib/3/time.pyi and stdlib/3/datetime.pyi. Use `TimeTuple` instead of `tuple` (where relevant) in time.pyi for stronger type checking. Use `TimeTuple` instead of `Tuple[int, int, int, int, int, int, int, int, int]` in datetime.pyi to increase readability. --- stdlib/3/datetime.pyi | 6 ++++-- stdlib/3/time.pyi | 16 ++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/stdlib/3/datetime.pyi b/stdlib/3/datetime.pyi index 3d2a58fc9..0a53d1b4f 100644 --- a/stdlib/3/datetime.pyi +++ b/stdlib/3/datetime.pyi @@ -7,6 +7,8 @@ from typing import Optional, SupportsAbs, Tuple, overload MINYEAR = 0 MAXYEAR = 0 +TimeTuple = Tuple[int, int, int, int, int, int, int, int, int] + class tzinfo: def tzname(self, dt: Optional[datetime]) -> str: ... def utcoffset(self, dt: Optional[datetime]) -> Optional[timedelta]: ... @@ -189,9 +191,9 @@ class datetime: def strftime(self, fmt: str) -> str: ... def __format__(self, fmt: str) -> str: ... def toordinal(self) -> int: ... - def timetuple(self) -> tuple: ... # TODO return type + def timetuple(self) -> TimeTuple: ... # TODO return type def timestamp(self) -> float: ... - def utctimetuple(self) -> tuple: ... # TODO return type + def utctimetuple(self) -> TimeTuple: ... # TODO return type def date(self) -> _date: ... def time(self) -> _time: ... def timetz(self) -> _time: ... diff --git a/stdlib/3/time.pyi b/stdlib/3/time.pyi index f77f9baf9..72140c311 100644 --- a/stdlib/3/time.pyi +++ b/stdlib/3/time.pyi @@ -8,6 +8,8 @@ import sys from typing import Tuple, Union from types import SimpleNamespace +TimeTuple = Tuple[int, int, int, int, int, int, int, int, int] + # ----- variables and constants ----- accept2dyear = False altzone = 0 @@ -47,21 +49,15 @@ class struct_time: tm_zone = 'GMT' # ----- functions ----- -def asctime(t: Union[Tuple[int, int, int, int, int, int, int, int, int], - struct_time, - None] = ...) -> str: ... # return current time +def asctime(t: Union[TimeTuple, struct_time, None] = ...) -> str: ... # return current time def clock() -> float: ... def ctime(secs: Union[float, None] = ...) -> str: ... # return current time def gmtime(secs: Union[float, None] = ...) -> struct_time: ... # return current time def localtime(secs: Union[float, None] = ...) -> struct_time: ... # return current time -def mktime(t: Union[Tuple[int, int, int, int, int, - int, int, int, int], - struct_time]) -> float: ... +def mktime(t: Union[TimeTuple, struct_time]) -> float: ... def sleep(secs: Union[int, float]) -> None: ... -def strftime(format: str, t: Union[Tuple[int, int, int, int, int, - int, int, int, int], - struct_time, - None] = ...) -> str: ... # return current time +def strftime(format: str, + t: Union[TimeTuple, struct_time, None] = ...) -> str: ... # return current time def strptime(string: str, format: str = ...) -> struct_time: ... def time() -> float: ...