|
117 | 117 | "GraphQLLeafType", |
118 | 118 | "GraphQLList", |
119 | 119 | "GraphQLNamedType", |
| 120 | + "GraphQLNamedInputType", |
| 121 | + "GraphQLNamedOutputType", |
120 | 122 | "GraphQLNullableType", |
121 | 123 | "GraphQLNonNull", |
122 | 124 | "GraphQLResolveInfo", |
@@ -186,9 +188,6 @@ def assert_wrapping_type(type_: Any) -> GraphQLWrappingType: |
186 | 188 | return cast(GraphQLWrappingType, type_) |
187 | 189 |
|
188 | 190 |
|
189 | | -# These named types do not include modifiers like List or NonNull. |
190 | | - |
191 | | - |
192 | 191 | class GraphQLNamedType(GraphQLType): |
193 | 192 | """Base class for all GraphQL named types""" |
194 | 193 |
|
@@ -256,37 +255,6 @@ def __copy__(self) -> "GraphQLNamedType": # pragma: no cover |
256 | 255 | return self.__class__(**self.to_kwargs()) |
257 | 256 |
|
258 | 257 |
|
259 | | -def is_named_type(type_: Any) -> bool: |
260 | | - return isinstance(type_, GraphQLNamedType) |
261 | | - |
262 | | - |
263 | | -def assert_named_type(type_: Any) -> GraphQLNamedType: |
264 | | - if not is_named_type(type_): |
265 | | - raise TypeError(f"Expected {type_} to be a GraphQL named type.") |
266 | | - return cast(GraphQLNamedType, type_) |
267 | | - |
268 | | - |
269 | | -@overload |
270 | | -def get_named_type(type_: None) -> None: |
271 | | - ... |
272 | | - |
273 | | - |
274 | | -@overload |
275 | | -def get_named_type(type_: GraphQLType) -> GraphQLNamedType: |
276 | | - ... |
277 | | - |
278 | | - |
279 | | -def get_named_type(type_: Optional[GraphQLType]) -> Optional[GraphQLNamedType]: |
280 | | - """Unwrap possible wrapping type""" |
281 | | - if type_: |
282 | | - unwrapped_type = type_ |
283 | | - while is_wrapping_type(unwrapped_type): |
284 | | - unwrapped_type = cast(GraphQLWrappingType, unwrapped_type) |
285 | | - unwrapped_type = unwrapped_type.of_type |
286 | | - return cast(GraphQLNamedType, unwrapped_type) |
287 | | - return None |
288 | | - |
289 | | - |
290 | 258 | def resolve_thunk(thunk: Any) -> Any: |
291 | 259 | """Resolve the given thunk. |
292 | 260 |
|
@@ -1672,6 +1640,52 @@ def assert_output_type(type_: Any) -> GraphQLOutputType: |
1672 | 1640 | return cast(GraphQLOutputType, type_) |
1673 | 1641 |
|
1674 | 1642 |
|
| 1643 | +# These named types do not include modifiers like List or NonNull. |
| 1644 | + |
| 1645 | +GraphQLNamedInputType = Union[ |
| 1646 | + GraphQLScalarType, GraphQLEnumType, GraphQLInputObjectType |
| 1647 | +] |
| 1648 | + |
| 1649 | +GraphQLNamedOutputType = Union[ |
| 1650 | + GraphQLScalarType, |
| 1651 | + GraphQLObjectType, |
| 1652 | + GraphQLInterfaceType, |
| 1653 | + GraphQLUnionType, |
| 1654 | + GraphQLEnumType, |
| 1655 | +] |
| 1656 | + |
| 1657 | + |
| 1658 | +def is_named_type(type_: Any) -> bool: |
| 1659 | + return isinstance(type_, GraphQLNamedType) |
| 1660 | + |
| 1661 | + |
| 1662 | +def assert_named_type(type_: Any) -> GraphQLNamedType: |
| 1663 | + if not is_named_type(type_): |
| 1664 | + raise TypeError(f"Expected {type_} to be a GraphQL named type.") |
| 1665 | + return cast(GraphQLNamedType, type_) |
| 1666 | + |
| 1667 | + |
| 1668 | +@overload |
| 1669 | +def get_named_type(type_: None) -> None: |
| 1670 | + ... |
| 1671 | + |
| 1672 | + |
| 1673 | +@overload |
| 1674 | +def get_named_type(type_: GraphQLType) -> GraphQLNamedType: |
| 1675 | + ... |
| 1676 | + |
| 1677 | + |
| 1678 | +def get_named_type(type_: Optional[GraphQLType]) -> Optional[GraphQLNamedType]: |
| 1679 | + """Unwrap possible wrapping type""" |
| 1680 | + if type_: |
| 1681 | + unwrapped_type = type_ |
| 1682 | + while is_wrapping_type(unwrapped_type): |
| 1683 | + unwrapped_type = cast(GraphQLWrappingType, unwrapped_type) |
| 1684 | + unwrapped_type = unwrapped_type.of_type |
| 1685 | + return cast(GraphQLNamedType, unwrapped_type) |
| 1686 | + return None |
| 1687 | + |
| 1688 | + |
1675 | 1689 | # These types may describe types which may be leaf values. |
1676 | 1690 |
|
1677 | 1691 | graphql_leaf_types = (GraphQLScalarType, GraphQLEnumType) |
|
0 commit comments