56
56
Undefined ,
57
57
)
58
58
from ..utilities .value_from_ast_untyped import value_from_ast_untyped
59
+ from .assert_name import assert_name , assert_enum_value_name
59
60
60
61
if TYPE_CHECKING :
61
62
from .schema import GraphQLSchema # noqa: F401
@@ -208,10 +209,7 @@ def __init__(
208
209
ast_node : Optional [TypeDefinitionNode ] = None ,
209
210
extension_ast_nodes : Optional [Collection [TypeExtensionNode ]] = None ,
210
211
) -> 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 )
215
213
if description is not None and not is_description (description ):
216
214
raise TypeError ("The description must be a string." )
217
215
if extensions is None :
@@ -465,7 +463,7 @@ def __init__(
465
463
)
466
464
else :
467
465
args = {
468
- name : value
466
+ assert_name ( name ) : value
469
467
if isinstance (value , GraphQLArgument )
470
468
else GraphQLArgument (cast (GraphQLInputType , value ))
471
469
for name , value in args .items ()
@@ -737,7 +735,8 @@ def fields(self) -> GraphQLFieldMap:
737
735
try :
738
736
fields = resolve_thunk (self ._fields )
739
737
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
741
740
if not isinstance (fields , Mapping ) or not all (
742
741
isinstance (key , str ) for key in fields
743
742
):
@@ -753,7 +752,7 @@ def fields(self) -> GraphQLFieldMap:
753
752
f"{ self .name } fields must be GraphQLField or output type objects."
754
753
)
755
754
return {
756
- name : value
755
+ assert_name ( name ) : value
757
756
if isinstance (value , GraphQLField )
758
757
else GraphQLField (value ) # type: ignore
759
758
for name , value in fields .items ()
@@ -767,7 +766,8 @@ def interfaces(self) -> List["GraphQLInterfaceType"]:
767
766
self ._interfaces # type: ignore
768
767
)
769
768
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
771
771
if interfaces is None :
772
772
interfaces = []
773
773
elif not is_collection (interfaces ) or not all (
@@ -862,7 +862,8 @@ def fields(self) -> GraphQLFieldMap:
862
862
try :
863
863
fields = resolve_thunk (self ._fields )
864
864
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
866
867
if not isinstance (fields , Mapping ) or not all (
867
868
isinstance (key , str ) for key in fields
868
869
):
@@ -878,7 +879,7 @@ def fields(self) -> GraphQLFieldMap:
878
879
f"{ self .name } fields must be GraphQLField or output type objects."
879
880
)
880
881
return {
881
- name : value
882
+ assert_name ( name ) : value
882
883
if isinstance (value , GraphQLField )
883
884
else GraphQLField (value ) # type: ignore
884
885
for name , value in fields .items ()
@@ -892,7 +893,8 @@ def interfaces(self) -> List["GraphQLInterfaceType"]:
892
893
self ._interfaces # type: ignore
893
894
)
894
895
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
896
898
if interfaces is None :
897
899
interfaces = []
898
900
elif not is_collection (interfaces ) or not all (
@@ -985,7 +987,8 @@ def types(self) -> List[GraphQLObjectType]:
985
987
try :
986
988
types : Collection [GraphQLObjectType ] = resolve_thunk (self ._types )
987
989
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
989
992
if types is None :
990
993
types = []
991
994
elif not is_collection (types ) or not all (
@@ -1081,7 +1084,7 @@ def __init__(
1081
1084
values = cast (Dict , values )
1082
1085
values = {key : value .value for key , value in values .items ()}
1083
1086
values = {
1084
- key : value
1087
+ assert_enum_value_name ( key ) : value
1085
1088
if isinstance (value , GraphQLEnumValue )
1086
1089
else GraphQLEnumValue (value )
1087
1090
for key , value in values .items ()
@@ -1338,7 +1341,8 @@ def fields(self) -> GraphQLInputFieldMap:
1338
1341
try :
1339
1342
fields = resolve_thunk (self ._fields )
1340
1343
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
1342
1346
if not isinstance (fields , Mapping ) or not all (
1343
1347
isinstance (key , str ) for key in fields
1344
1348
):
@@ -1355,7 +1359,7 @@ def fields(self) -> GraphQLInputFieldMap:
1355
1359
" GraphQLInputField or input type objects."
1356
1360
)
1357
1361
return {
1358
- name : value
1362
+ assert_name ( name ) : value
1359
1363
if isinstance (value , GraphQLInputField )
1360
1364
else GraphQLInputField (value ) # type: ignore
1361
1365
for name , value in fields .items ()
0 commit comments