def iter_schemas(marshmallow_schema):
"""
Build zero or more JSON schemas for a marshmallow schema.
Generates: name, schema pairs.
"""
if not marshmallow_schema:
return
base_schema = build_schema(marshmallow_schema)
base_schema_name = type_name(name_for(marshmallow_schema))
yield base_schema_name, base_schema
for name, field in iter_fields(marshmallow_schema):
if isinstance(field, fields.Nested):
nested_schema = build_schema(field.schema)
nested_schema_name = type_name(name_for(field.schema))
yield nested_schema_name, nested_schema
for subname, subfield in iter_schemas(field.schema):
yield subname, subfield
if isinstance(field, fields.List) and isinstance(field.container, fields.Nested):
nested_schema = build_schema(field.container.schema)
nested_schema_name = type_name(name_for(field.container.schema))
yield nested_schema_name, nested_schema
for subname, subfield in iter_schemas(field.container.schema):
yield subname, subfield
评论列表
文章目录