|
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