From 127ababb574175ec0130aff1282465c8b60faf69 Mon Sep 17 00:00:00 2001 From: 954 <510485871@qq.com> Date: Fri, 22 Dec 2023 15:33:29 +0800 Subject: [PATCH] fix: error type hints in Python3.12 (#1147) Signed-off-by: 954 <510485871@qq.com> --- docarray/array/any_array.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docarray/array/any_array.py b/docarray/array/any_array.py index 28373e2306..50c47cf4ec 100644 --- a/docarray/array/any_array.py +++ b/docarray/array/any_array.py @@ -1,3 +1,4 @@ +import sys import random from abc import abstractmethod from typing import ( @@ -29,6 +30,9 @@ from docarray.proto import DocListProto, NodeProto from docarray.typing.tensor.abstract_tensor import AbstractTensor +if sys.version_info >= (3, 12): + from types import GenericAlias + T = TypeVar('T', bound='AnyDocArray') T_doc = TypeVar('T_doc', bound=BaseDocWithoutId) IndexIterType = Union[slice, Iterable[int], Iterable[bool], None] @@ -51,8 +55,12 @@ def __repr__(self): @classmethod def __class_getitem__(cls, item: Union[Type[BaseDocWithoutId], TypeVar, str]): if not isinstance(item, type): - return Generic.__class_getitem__.__func__(cls, item) # type: ignore - # this do nothing that checking that item is valid type var or str + if sys.version_info < (3, 12): + return Generic.__class_getitem__.__func__(cls, item) # type: ignore + # this do nothing that checking that item is valid type var or str + # Keep the approach in #1147 to be compatible with lower versions of Python. + else: + return GenericAlias(cls, item) # type: ignore if not safe_issubclass(item, BaseDocWithoutId): raise ValueError( f'{cls.__name__}[item] item should be a Document not a {item} ' pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy