基于类型批注创建Graphene对象类型。
graphanno的Python项目详细描述
格拉法诺
使用python 3.6+类型注释生成grapheneObjectType
类。
安装
您可以通过运行pip
来安装项目:
pip install graphanno
从源安装:
python setup.py install
用法
装饰符@graphanno.graph_annotations
只对包含类型的类起作用
注解。如果decorator目标中没有类型注释,
NoAnnotationsError
引发异常。没有注释的参数将
被忽视。
要创建graphene.ObjectType
对象,只需用
@graphanno.graph_annotations
。
建议子类graphanno.ObjectType
为ide提供提示。
这不是必需的,@graphanno.graph_annotations
将替换您的修饰类
不管怎样,使用ObjectType
子类。
importgrapheneimportgraphanno# the class below...@graphanno.graph_annotationsclassGraphanno(graphanno.ObjectType):value:str# ... is equivalent to:classGraphene(graphene.ObjectType):value=graphene.String()
如果仍然需要带类型注释的类,请将__model__
变量设置为带注释
在装饰过的房间内上课:
importgrapheneimportgraphannoclassAnnotated:# this class will be still available latervalue:str# the class below...@graphanno.graph_annotationsclassGraphanno(graphanno.ObjectType):""" This class can inherit from graphene.ObjectType already, but it won't change the @graph_annotations behavior. """__model__=Annotated# ... is equivalent to:classGraphene(graphene.ObjectType):value=graphene.String()
如果将修饰另一个同名的类,则SchemaClashError
异常
将被抚养。
附加参数
__excluded_fields__
(元组):将从中排除的字段的名称 架构。始终排除私有属性。__ignore_unsupported__
(bool):不要对不支持的注释引发异常。 默认值False
。
支持的批注
用@graph_annotations
修饰的类可以使用下面列出的类型注释。
- str
- 内景
- 浮动
- 布尔
- datetime.datetime
- datetime.date
- datetime.time
- 键入.list
- 支持类型注释的自定义类
使用不支持的注释将引发UnsupportedAnnotationError
异常。
若要忽略此异常,请在修饰类中将__ignore_unsupported__
设置为True
。