5656 Undefined ,
5757)
5858from ..utilities .value_from_ast_untyped import value_from_ast_untyped
59+ from .assert_name import assert_name , assert_enum_value_name
5960
6061if TYPE_CHECKING :
6162 from .schema import GraphQLSchema # noqa: F401
@@ -208,10 +209,7 @@ def __init__(
208209 ast_node : Optional [TypeDefinitionNode ] = None ,
209210 extension_ast_nodes : Optional [Collection [TypeExtensionNode ]] = None ,
210211 ) -> None :
211- if not name :
212- raise TypeError ("Must provide name." )
213- if not isinstance (name , str ):
214- raise TypeError ("The name must be a string." )
212+ assert_name (name )
215213 if description is not None and not is_description (description ):
216214 raise TypeError ("The description must be a string." )
217215 if extensions is None :
@@ -465,7 +463,7 @@ def __init__(
465463 )
466464 else :
467465 args = {
468- name : value
466+ assert_name ( name ) : value
469467 if isinstance (value , GraphQLArgument )
470468 else GraphQLArgument (cast (GraphQLInputType , value ))
471469 for name , value in args .items ()
@@ -737,7 +735,8 @@ def fields(self) -> GraphQLFieldMap:
737735 try :
738736 fields = resolve_thunk (self ._fields )
739737 except Exception as error :
740- raise TypeError (f"{ self .name } fields cannot be resolved. { error } " )
738+ cls = GraphQLError if isinstance (error , GraphQLError ) else TypeError
739+ raise cls (f"{ self .name } fields cannot be resolved. { error } " ) from error
741740 if not isinstance (fields , Mapping ) or not all (
742741 isinstance (key , str ) for key in fields
743742 ):
@@ -753,7 +752,7 @@ def fields(self) -> GraphQLFieldMap:
753752 f"{ self .name } fields must be GraphQLField or output type objects."
754753 )
755754 return {
756- name : value
755+ assert_name ( name ) : value
757756 if isinstance (value , GraphQLField )
758757 else GraphQLField (value ) # type: ignore
759758 for name , value in fields .items ()
@@ -767,7 +766,8 @@ def interfaces(self) -> List["GraphQLInterfaceType"]:
767766 self ._interfaces # type: ignore
768767 )
769768 except Exception as error :
770- raise TypeError (f"{ self .name } interfaces cannot be resolved. { error } " )
769+ cls = GraphQLError if isinstance (error , GraphQLError ) else TypeError
770+ raise cls (f"{ self .name } interfaces cannot be resolved. { error } " ) from error
771771 if interfaces is None :
772772 interfaces = []
773773 elif not is_collection (interfaces ) or not all (
@@ -862,7 +862,8 @@ def fields(self) -> GraphQLFieldMap:
862862 try :
863863 fields = resolve_thunk (self ._fields )
864864 except Exception as error :
865- raise TypeError (f"{ self .name } fields cannot be resolved. { error } " )
865+ cls = GraphQLError if isinstance (error , GraphQLError ) else TypeError
866+ raise cls (f"{ self .name } fields cannot be resolved. { error } " ) from error
866867 if not isinstance (fields , Mapping ) or not all (
867868 isinstance (key , str ) for key in fields
868869 ):
@@ -878,7 +879,7 @@ def fields(self) -> GraphQLFieldMap:
878879 f"{ self .name } fields must be GraphQLField or output type objects."
879880 )
880881 return {
881- name : value
882+ assert_name ( name ) : value
882883 if isinstance (value , GraphQLField )
883884 else GraphQLField (value ) # type: ignore
884885 for name , value in fields .items ()
@@ -892,7 +893,8 @@ def interfaces(self) -> List["GraphQLInterfaceType"]:
892893 self ._interfaces # type: ignore
893894 )
894895 except Exception as error :
895- raise TypeError (f"{ self .name } interfaces cannot be resolved. { error } " )
896+ cls = GraphQLError if isinstance (error , GraphQLError ) else TypeError
897+ raise cls (f"{ self .name } interfaces cannot be resolved. { error } " ) from error
896898 if interfaces is None :
897899 interfaces = []
898900 elif not is_collection (interfaces ) or not all (
@@ -985,7 +987,8 @@ def types(self) -> List[GraphQLObjectType]:
985987 try :
986988 types : Collection [GraphQLObjectType ] = resolve_thunk (self ._types )
987989 except Exception as error :
988- raise TypeError (f"{ self .name } types cannot be resolved. { error } " )
990+ cls = GraphQLError if isinstance (error , GraphQLError ) else TypeError
991+ raise cls (f"{ self .name } types cannot be resolved. { error } " ) from error
989992 if types is None :
990993 types = []
991994 elif not is_collection (types ) or not all (
@@ -1081,7 +1084,7 @@ def __init__(
10811084 values = cast (Dict , values )
10821085 values = {key : value .value for key , value in values .items ()}
10831086 values = {
1084- key : value
1087+ assert_enum_value_name ( key ) : value
10851088 if isinstance (value , GraphQLEnumValue )
10861089 else GraphQLEnumValue (value )
10871090 for key , value in values .items ()
@@ -1338,7 +1341,8 @@ def fields(self) -> GraphQLInputFieldMap:
13381341 try :
13391342 fields = resolve_thunk (self ._fields )
13401343 except Exception as error :
1341- raise TypeError (f"{ self .name } fields cannot be resolved. { error } " )
1344+ cls = GraphQLError if isinstance (error , GraphQLError ) else TypeError
1345+ raise cls (f"{ self .name } fields cannot be resolved. { error } " ) from error
13421346 if not isinstance (fields , Mapping ) or not all (
13431347 isinstance (key , str ) for key in fields
13441348 ):
@@ -1355,7 +1359,7 @@ def fields(self) -> GraphQLInputFieldMap:
13551359 " GraphQLInputField or input type objects."
13561360 )
13571361 return {
1358- name : value
1362+ assert_name ( name ) : value
13591363 if isinstance (value , GraphQLInputField )
13601364 else GraphQLInputField (value ) # type: ignore
13611365 for name , value in fields .items ()
0 commit comments