From e655282e870c218575a85368c2c59ec594334b90 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sun, 2 Jan 2022 20:04:27 +0000 Subject: [PATCH] `sys.version_info` is a `structseq` class (#6786) --- stdlib/sys.pyi | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/stdlib/sys.pyi b/stdlib/sys.pyi index b4cf9175d..cb1545711 100644 --- a/stdlib/sys.pyi +++ b/stdlib/sys.pyi @@ -1,11 +1,12 @@ import sys +from _typeshed import structseq from builtins import object as _object from importlib.abc import PathEntryFinder from importlib.machinery import ModuleSpec from io import TextIOWrapper from types import FrameType, ModuleType, TracebackType from typing import Any, AsyncGenerator, Callable, NoReturn, Optional, Protocol, Sequence, TextIO, Type, TypeVar, Union, overload -from typing_extensions import Literal +from typing_extensions import Literal, final _T = TypeVar("_T") @@ -132,12 +133,18 @@ class _int_info: bits_per_digit: int sizeof_digit: int -class _version_info(tuple[int, int, int, str, int]): - major: int - minor: int - micro: int - releaselevel: str - serial: int +@final +class _version_info(structseq[Any | int], tuple[int, int, int, str, int]): + @property + def major(self) -> int: ... + @property + def minor(self) -> int: ... + @property + def micro(self) -> int: ... + @property + def releaselevel(self) -> str: ... + @property + def serial(self) -> int: ... version_info: _version_info