Instead of using type unions (like used here https://github.com/typesense/typesense-python/blob/master/src/typesense/types/collection.py#L226-L232), the library should use bound typevar like:
a: list[int|str]
b: list[int] = [1]
a=b# failure: incompatible assignment due to invariantfromtypingimportTypeVarListT=TypeVar("ListT", bound=int|str)
c: list[ListT]
d: list[int] = [1]
e: list[str] = ["a"]
f: list[int|str] = [1, "a"]
c=d# successc=e# successc=f# successThe type checkers are really unhappy with the way that the types are currently formulated. I should be able to supply a list of just RegularCollectionFieldSchema to CollectionUpdateSchema. Instead it errors due to the type construction. I shouldn't have to reverse engineer the internal union type to satisfy the type checker.
Instead of using type unions (like used here https://github.com/typesense/typesense-python/blob/master/src/typesense/types/collection.py#L226-L232), the library should use bound typevar like:
The type checkers are really unhappy with the way that the types are currently formulated. I should be able to supply a list of just
RegularCollectionFieldSchematoCollectionUpdateSchema. Instead it errors due to the type construction. I shouldn't have to reverse engineer the internal union type to satisfy the type checker.