From 2419d7520b821752c1181d2105a074ef24b9db81 Mon Sep 17 00:00:00 2001 From: Stephen Morton Date: Sun, 17 Nov 2024 10:02:29 -0800 Subject: [PATCH] Improve `datetime._IsoCalendarDate` (#13029) --- stdlib/datetime.pyi | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/stdlib/datetime.pyi b/stdlib/datetime.pyi index e8a4efdc6..95a25ebb8 100644 --- a/stdlib/datetime.pyi +++ b/stdlib/datetime.pyi @@ -1,7 +1,7 @@ import sys from abc import abstractmethod from time import struct_time -from typing import ClassVar, Final, NamedTuple, NoReturn, SupportsIndex, final, overload +from typing import ClassVar, Final, NoReturn, SupportsIndex, final, overload, type_check_only from typing_extensions import Self, TypeAlias, deprecated if sys.version_info >= (3, 11): @@ -40,10 +40,17 @@ if sys.version_info >= (3, 11): UTC: timezone if sys.version_info >= (3, 9): - class _IsoCalendarDate(NamedTuple): - year: int - week: int - weekday: int + # This class calls itself datetime.IsoCalendarDate. It's neither + # NamedTuple nor structseq. + @final + @type_check_only + class _IsoCalendarDate(tuple[int, int, int]): + @property + def year(self) -> int: ... + @property + def week(self) -> int: ... + @property + def weekday(self) -> int: ... class date: min: ClassVar[date]