from enum import Enum from typing import List import pydantic from pydantic import BaseModel ENameRegex = pydantic.constr(regex="^[a-z_]{1,}$") CNameRegex = pydantic.constr(regex="^[\u4e00-\u9fa5a-zA-Z0-9()]+$") class Parameter(BaseModel): ename: ENameRegex = "example_param" cname: str = "示例参数" description: str = "参数介绍文字" class NatureEnum(Enum): quantity = "定量" quality = "定性" class IndicatorDescription(BaseModel): ename: ENameRegex = "example_indicator" cname: str = "示例指标" description: str = "指标介绍文字" nature: NatureEnum category: str parameters: List[Parameter] class Config: use_enum_values = True