mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 04:54:47 +08:00
Add metaclasses for string.Template and dataclasses.InitVar (#8852)
This commit is contained in:
@@ -4,7 +4,7 @@ import types
|
||||
from builtins import type as Type # alias to avoid name clashes with fields named "type"
|
||||
from collections.abc import Callable, Iterable, Mapping
|
||||
from typing import Any, Generic, Protocol, TypeVar, overload
|
||||
from typing_extensions import Literal
|
||||
from typing_extensions import Literal, TypeAlias
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
from types import GenericAlias
|
||||
@@ -217,7 +217,14 @@ def is_dataclass(obj: Any) -> bool: ...
|
||||
|
||||
class FrozenInstanceError(AttributeError): ...
|
||||
|
||||
class InitVar(Generic[_T]):
|
||||
if sys.version_info >= (3, 9):
|
||||
_InitVarMeta: TypeAlias = type
|
||||
else:
|
||||
class _InitVarMeta(type):
|
||||
# Not used, instead `InitVar.__class_getitem__` is called.
|
||||
def __getitem__(self, params: Any) -> InitVar[Any]: ...
|
||||
|
||||
class InitVar(Generic[_T], metaclass=_InitVarMeta):
|
||||
type: Type[_T]
|
||||
def __init__(self, type: Type[_T]) -> None: ...
|
||||
if sys.version_info >= (3, 9):
|
||||
|
||||
@@ -3,7 +3,7 @@ from _typeshed import StrOrLiteralStr
|
||||
from collections.abc import Iterable, Mapping, Sequence
|
||||
from re import Pattern, RegexFlag
|
||||
from typing import Any, ClassVar, overload
|
||||
from typing_extensions import LiteralString
|
||||
from typing_extensions import LiteralString, TypeAlias
|
||||
|
||||
__all__ = [
|
||||
"ascii_letters",
|
||||
@@ -32,7 +32,14 @@ whitespace: LiteralString
|
||||
|
||||
def capwords(s: StrOrLiteralStr, sep: StrOrLiteralStr | None = ...) -> StrOrLiteralStr: ...
|
||||
|
||||
class Template:
|
||||
if sys.version_info >= (3, 9):
|
||||
_TemplateMetaclass: TypeAlias = type
|
||||
else:
|
||||
class _TemplateMetaclass(type):
|
||||
pattern: ClassVar[str]
|
||||
def __init__(cls, name: str, bases: tuple[type, ...], dct: dict[str, Any]) -> None: ...
|
||||
|
||||
class Template(metaclass=_TemplateMetaclass):
|
||||
template: str
|
||||
delimiter: ClassVar[str]
|
||||
idpattern: ClassVar[str]
|
||||
|
||||
Reference in New Issue
Block a user