Skip to content

Commit

Permalink
fix: error type hints in Python3.12 (#1147) (#1840)
Browse files Browse the repository at this point in the history
Signed-off-by: 954 <510485871@qq.com>
  • Loading branch information
954-Ivory committed Dec 22, 2023
1 parent a2421a6 commit 1f86e26
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions docarray/array/any_array.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import sys
import random
from abc import abstractmethod
from typing import (
Expand Down Expand Up @@ -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]
Expand All @@ -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} '
Expand Down

0 comments on commit 1f86e26

Please sign in to comment.