Define the schema
This commit is contained in:
parent
a2e8ac119a
commit
20798d2127
38
schemas.py
38
schemas.py
@ -1,7 +1,37 @@
|
|||||||
|
"""
|
||||||
|
schemas module
|
||||||
|
Defines the schemas to post on app.py
|
||||||
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||||
|
Copyright © 2024 Concordia CERC group
|
||||||
|
Code contributors: Alireza Adli alireza.adli@mail.concordia.ca
|
||||||
|
"""
|
||||||
from marshmallow import Schema, fields
|
from marshmallow import Schema, fields
|
||||||
|
|
||||||
|
|
||||||
class LCAWorkflowSchema(Schema):
|
class GeometrySchema(Schema):
|
||||||
city_file_path = fields.Str(required=True)
|
"""Schema for the geometry of a feature."""
|
||||||
archetypes_file_name = fields.Str(required=True)
|
type = fields.String(required=True)
|
||||||
constructions_file_name = fields.Str(required=True)
|
coordinates = fields.List(fields.List(fields.List(fields.Float())), required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class PropertiesSchema(Schema):
|
||||||
|
"""Schema for the properties of a feature."""
|
||||||
|
name = fields.String(required=True)
|
||||||
|
address = fields.String(required=True)
|
||||||
|
function = fields.String(required=True)
|
||||||
|
height = fields.Integer(required=True)
|
||||||
|
year_of_construction = fields.Integer(required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class FeatureSchema(Schema):
|
||||||
|
"""Schema for a GeoJSON feature."""
|
||||||
|
type = fields.String(required=True)
|
||||||
|
geometry = fields.Nested(GeometrySchema, required=True)
|
||||||
|
id = fields.Integer(required=True)
|
||||||
|
properties = fields.Nested(PropertiesSchema, required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class LCAInputData(Schema):
|
||||||
|
"""Define variables that come from user input."""
|
||||||
|
type = fields.String(required=True)
|
||||||
|
features = fields.List(fields.Nested(FeatureSchema), required=True)
|
||||||
|
Loading…
Reference in New Issue
Block a user