def get_collection_of_primitive_values(self, primitive_type: Any) -> Optional[List[T]]: inside JsonParseNode takes primitive_type: Any, however we raise an error if primitive_type is not of type primitive_types = {bool, str, int, float, UUID, datetime, timedelta, date, time, bytes}. Why not just make primitive_type be a union type of these supported primitives? But then we could also remove T, since currently I don't quite see the use for it.
Alternatively we could leave T but then shouldn't we make primitive_type have type Type[T] or similar which allows for more restrictive typing on the user's end?
Also this function does not strictly follow the signature of the underlying abstractmethod which is def get_collection_of_primitive_values(self) -> List[T]:. Couldn't this be unexpected?
def get_collection_of_primitive_values(self, primitive_type: Any) -> Optional[List[T]]:
insideJsonParseNode
takesprimitive_type: Any
, however we raise an error ifprimitive_type
is not of typeprimitive_types = {bool, str, int, float, UUID, datetime, timedelta, date, time, bytes}
. Why not just makeprimitive_type
be a union type of these supported primitives? But then we could also removeT
, since currently I don't quite see the use for it. Alternatively we could leaveT
but then shouldn't we makeprimitive_type
have typeType[T]
or similar which allows for more restrictive typing on the user's end?