--- /dev/null
+"""Stub file for the 'time' module."""\r
+# See https://docs.python.org/3/library/time.html\r
+\r
+import sys\r
+from typing import Any, NamedTuple, Tuple, Union, Optional\r
+if sys.version_info >= (3, 3):\r
+ from types import SimpleNamespace\r
+\r
+_TimeTuple = Tuple[int, int, int, int, int, int, int, int, int]\r
+\r
+if sys.version_info < (3, 3):\r
+ accept2dyear: bool\r
+altzone: int\r
+daylight: int\r
+timezone: int\r
+tzname: Tuple[str, str]\r
+\r
+if sys.version_info >= (3, 7) and sys.platform != 'win32':\r
+ CLOCK_BOOTTIME: int # Linux\r
+ CLOCK_PROF: int # FreeBSD, NetBSD, OpenBSD\r
+ CLOCK_UPTIME: int # FreeBSD, OpenBSD\r
+\r
+if sys.version_info >= (3, 3) and sys.platform != 'win32':\r
+ CLOCK_HIGHRES: int = ... # Solaris only\r
+ CLOCK_MONOTONIC: int = ... # Unix only\r
+ CLOCK_MONOTONIC_RAW: int = ... # Linux 2.6.28 or later\r
+ CLOCK_PROCESS_CPUTIME_ID: int = ... # Unix only\r
+ CLOCK_REALTIME: int = ... # Unix only\r
+ CLOCK_THREAD_CPUTIME_ID: int = ... # Unix only\r
+\r
+\r
+if sys.version_info >= (3, 3):\r
+ class struct_time(\r
+ NamedTuple(\r
+ '_struct_time',\r
+ [('tm_year', int), ('tm_mon', int), ('tm_mday', int),\r
+ ('tm_hour', int), ('tm_min', int), ('tm_sec', int),\r
+ ('tm_wday', int), ('tm_yday', int), ('tm_isdst', int),\r
+ ('tm_zone', str), ('tm_gmtoff', int)]\r
+ )\r
+ ):\r
+ def __init__(\r
+ self,\r
+ o: Union[\r
+ Tuple[int, int, int, int, int, int, int, int, int],\r
+ Tuple[int, int, int, int, int, int, int, int, int, str],\r
+ Tuple[int, int, int, int, int, int, int, int, int, str, int]\r
+ ],\r
+ _arg: Any = ...,\r
+ ) -> None: ...\r
+ def __new__(\r
+ cls,\r
+ o: Union[\r
+ Tuple[int, int, int, int, int, int, int, int, int],\r
+ Tuple[int, int, int, int, int, int, int, int, int, str],\r
+ Tuple[int, int, int, int, int, int, int, int, int, str, int]\r
+ ],\r
+ _arg: Any = ...,\r
+ ) -> struct_time: ...\r
+else:\r
+ class struct_time(\r
+ NamedTuple(\r
+ '_struct_time',\r
+ [('tm_year', int), ('tm_mon', int), ('tm_mday', int),\r
+ ('tm_hour', int), ('tm_min', int), ('tm_sec', int),\r
+ ('tm_wday', int), ('tm_yday', int), ('tm_isdst', int)]\r
+ )\r
+ ):\r
+ def __init__(self, o: _TimeTuple, _arg: Any = ...) -> None: ...\r
+ def __new__(cls, o: _TimeTuple, _arg: Any = ...) -> struct_time: ...\r
+\r
+def asctime(t: Union[_TimeTuple, struct_time] = ...) -> str: ...\r
+def clock() -> float: ...\r
+def ctime(secs: Optional[float] = ...) -> str: ...\r
+def gmtime(secs: Optional[float] = ...) -> struct_time: ...\r
+def localtime(secs: Optional[float] = ...) -> struct_time: ...\r
+def mktime(t: Union[_TimeTuple, struct_time]) -> float: ...\r
+def sleep(secs: float) -> None: ...\r
+def strftime(format: str, t: Union[_TimeTuple, struct_time] = ...) -> str: ...\r
+def strptime(string: str, format: str = ...) -> struct_time: ...\r
+def time() -> float: ...\r
+if sys.platform != 'win32':\r
+ def tzset() -> None: ... # Unix only\r
+\r
+if sys.version_info >= (3, 3):\r
+ def get_clock_info(name: str) -> SimpleNamespace: ...\r
+ def monotonic() -> float: ...\r
+ def perf_counter() -> float: ...\r
+ def process_time() -> float: ...\r
+ if sys.platform != 'win32':\r
+ def clock_getres(clk_id: int) -> float: ... # Unix only\r
+ def clock_gettime(clk_id: int) -> float: ... # Unix only\r
+ def clock_settime(clk_id: int, time: float) -> None: ... # Unix only\r
+\r
+if sys.version_info >= (3, 7):\r
+ def clock_gettime_ns(clock_id: int) -> int: ...\r
+ def clock_settime_ns(clock_id: int, time: int) -> int: ...\r
+ def monotonic_ns() -> int: ...\r
+ def perf_counter_ns() -> int: ...\r
+ def process_time_ns() -> int: ...\r
+ def time_ns() -> int: ...\r
+ def thread_time() -> float: ...\r
+ def thread_time_ns() -> int: ...\r