Make TypeVars private (2) (#68206)

This commit is contained in:
Marc Mueller
2022-03-17 19:09:55 +01:00
committed by GitHub
parent be7ef6115c
commit eae0c75620
5 changed files with 31 additions and 29 deletions

View File

@@ -4,13 +4,15 @@ from __future__ import annotations
from enum import Enum
from typing import Any, TypeVar
T = TypeVar("T", bound="StrEnum")
_StrEnumT = TypeVar("_StrEnumT", bound="StrEnum")
class StrEnum(str, Enum):
"""Partial backport of Python 3.11's StrEnum for our basic use cases."""
def __new__(cls: type[T], value: str, *args: Any, **kwargs: Any) -> T:
def __new__(
cls: type[_StrEnumT], value: str, *args: Any, **kwargs: Any
) -> _StrEnumT:
"""Create a new StrEnum instance."""
if not isinstance(value, str):
raise TypeError(f"{value!r} is not a string")