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