本文整理汇总了Python中graphene.types方法的典型用法代码示例。如果您正苦于以下问题:Python graphene.types方法的具体用法?Python graphene.types怎么用?Python graphene.types使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类graphene
的用法示例。
在下文中一共展示了graphene.types方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _add_handler_resolves
# 需要导入模块: import graphene [as 别名]
# 或者: from graphene import types [as 别名]
def _add_handler_resolves(dict_params):
to_add = {}
for k, v in dict_params.items():
if k == 'field': # pragma: no cover
raise ValueError("StructBlocks cannot have fields named 'field'")
if isinstance(v, tuple):
val = v[0]
to_add['resolve_' + k] = v[1]
elif issubclass(v, (graphene.types.DateTime, graphene.types.Date)):
val = v
to_add['resolve_' + k] = _resolve_datetime
elif issubclass(v, graphene.types.Time):
val = v
to_add['resolve_' + k] = _resolve_time
elif not issubclass(v, Scalar):
val = v
to_add['resolve_' + k] = _resolve
else:
val = v
dict_params[k] = graphene.Field(val)
dict_params.update(to_add)
示例2: type
# 需要导入模块: import graphene [as 别名]
# 或者: from graphene import types [as 别名]
def type(self):
# this is to bypass the one from
# graphene_sqlalchemy.SQLAlchemyConnectionField which breaks
return graphene.types.utils.get_type(self._type)
示例3: stream_field_handler
# 需要导入模块: import graphene [as 别名]
# 或者: from graphene import types [as 别名]
def stream_field_handler(stream_field_name: str, field_name: str, block_type_handlers: dict) -> StreamFieldHandlerType:
# add Generic Scalars (default)
if settings.LOAD_GENERIC_SCALARS:
_scalar_block(GenericScalar)
# Unions must reference NamedTypes, so for scalar types we need to create a new type to
# encapsulate scalars, page links, images, snippets
_create_root_blocks(block_type_handlers)
types_ = list(block_type_handlers.values())
for i, t in enumerate(types_):
if isinstance(t, tuple):
types_[i] = t[0]
class Meta:
types = tuple(set(types_))
stream_field_type = type(
stream_field_name + "Type",
(graphene.Union, ),
{
'Meta': Meta,
'resolve_type': _resolve_type
}
)
def resolve_field(self, info: ResolveInfo):
field = getattr(self, field_name)
return [convert_block(block, block_type_handlers, info, field.is_lazy) for block in field.stream_data]
return graphene.List(stream_field_type), resolve_field
示例4: block_handler
# 需要导入模块: import graphene [as 别名]
# 或者: from graphene import types [as 别名]
def block_handler(block: Block, app, prefix=''):
cls = block.__class__
handler = registry.blocks.get(cls)
if handler is None:
if _is_custom_type(block):
target_block_type = block.__graphql_type__()
this_handler = block_handler(target_block_type, app, prefix)
if isinstance(this_handler, tuple):
raise NotImplementedError()
if hasattr(block, '__graphql_resolve__'):
resolver = _resolve_custom(block, this_handler)
elif issubclass(target_block_type, Scalar):
resolver = _resolve_generic_scalar
else:
raise TypeError("Non Scalar custom types need an explicit __graphql_resolve__ method.")
handler = (lambda x: this_handler, resolver)
elif _is_compound_block(block):
node = prefix + cls.__name__
dict_params = dict(
(n, block_handler(block_type, app, prefix))
for n, block_type in block.child_blocks.items()
)
_add_handler_resolves(dict_params)
dict_params.update({ # add the field name
'field': graphene.Field(graphene.String),
'resolve_field': lambda *x: block.name,
})
tp = type(node, (graphene.ObjectType,), dict_params)
handler = tp
registry.blocks[cls] = handler
elif _is_list_block(block):
this_handler = block_handler(block.child_block, app, prefix)
if isinstance(this_handler, tuple):
handler = List(this_handler[0]), _resolve_list(*this_handler)
else:
handler = List(this_handler), _resolve_simple_list
else:
handler = GenericScalar
if cls == wagtail.snippets.blocks.SnippetChooserBlock:
handler = (handler[0](block), handler[1]) # type: ignore
return handler