-
-
Notifications
You must be signed in to change notification settings - Fork 142
Closed
@helderco
Description
As an example I specifically need them in type/definition.py
to correctly narrow down the types in a codegen tool. In the meantime I've reimplemented these functions:
def is_required_type(t: Any) -> TypeGuard[GraphQLNonNull]: return isinstance(t, GraphQLNonNull) def is_list_type(t: Any) -> TypeGuard[GraphQLList]: return isinstance(t, GraphQLList) def is_wrapping_type(t: Any) -> TypeGuard[GraphQLWrappingType]: return isinstance(t, GraphQLWrappingType) def is_scalar_type(t: Any) -> TypeGuard[GraphQLScalarType]: return isinstance(t, GraphQLScalarType) def is_input_object_type(t: Any) -> TypeGuard[GraphQLInputObjectType]: return isinstance(t, GraphQLInputObjectType) def is_object_type(t: Any) -> TypeGuard[GraphQLObjectType]: return isinstance(t, GraphQLObjectType)
I thought the isinstance
would be enough for the type checker to infer in these cases but if the return type is bool
in these functions they're not narrowed.