indexcalculation/Indicators/Capital/OwnersEquity.py

60 lines
2.0 KiB
Python

"""
所有者权益(亿元)
"""
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from Common.schemas import IndicatorDescription
router = APIRouter()
# 指标描述
ENAME = "owner_equity"
CNAME = "所有者权益"
NATURE = "定量"
CATEGORY = "资本结构"
DESCRIPTION = "所有者权益是反应城投企业资本实力的重要指标,该指标数值高,则对城投企业信用状况具有正面影响。在必要情况下,远东资信可能会剔除" \
"所有者权益中公益性资产部分、永续债和明股实债等,以避免存在所有者权益虚增或失真的情况。"
# 参数描述
PARAM1_ENAME = "owner_equity"
PARAM1_CNAME = "所有者权益合计"
PARAM1_DESCR = "所有者权益合计是指企业投资人对企业净资产的所有权。企业净资产等于企业全部资产减去全部负债后的余额,其中包括企业投资人对企业" \
"的最初投入以及资本公积金、盈余公积金和未分配利润。对股份制企业,所有者权益即为股东权益。"
# 输入参数
class Parameter(BaseModel):
owner_equity: float = "所有者权益合计"
# 计算接口
@router.post("/{}/".format(ENAME), tags=[CATEGORY], summary=CNAME, description=DESCRIPTION)
def calculation(parameter: Parameter):
try:
result = parameter.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}
],
}
return body