""" 总债务资本化比率 """ from fastapi import APIRouter, HTTPException from pydantic import BaseModel from Common.schemas import IndicatorDescription router = APIRouter() # 指标描述 ENAME = "total_debt_capitalization_ratio" CNAME = "总债务资本化比率" NATURE = "定量" CATEGORY = "资本结构" DESCRIPTION = "总债务资本化比率 = 负债合计 / (负债合计 + 归属于母公司所有者权益合计)" # 参数描述 PARAM1_ENAME = "total_liabilities" PARAM1_CNAME = "负债合计" PARAM1_DESCR = "资产负债表-负债合计" PARAM2_ENAME = "parent_company_total_owner_equity" PARAM2_CNAME = "归属于母公司所有者权益合计" PARAM2_DESCR = "资产负债表-归属于母公司所有者权益合计" # 输入参数 class Parameter(BaseModel): total_liabilities: float = "负债合计" parent_company_total_owner_equity: float = "归属于母公司所有者权益合计" # 计算接口 @router.post("/{}/".format(ENAME), tags=[CATEGORY], summary=CNAME, description=DESCRIPTION) def calculation(parameter: Parameter): try: result = parameter.total_liabilities / (parameter.total_liabilities + parameter.parent_company_total_owner_equity) return round(result, 6) except Exception: raise HTTPException(status_code=400, detail="Calculate Failed") # 描述接口 @router.get("/{}/description".format(ENAME), response_model=IndicatorDescription, tags=[CATEGORY], summary=CNAME, description=DESCRIPTION) def description(): body = { "ename": ENAME, "cname": CNAME, "nature": NATURE, "category": CATEGORY, "description": DESCRIPTION, "parameters": [ {"ename": PARAM1_ENAME, "cname": PARAM1_CNAME, "description": PARAM1_DESCR}, {"ename": PARAM2_ENAME, "cname": PARAM2_CNAME, "description": PARAM2_DESCR} ], } return body