54 lines
2.5 KiB
Python
54 lines
2.5 KiB
Python
"""
|
|
非遗资产估值计算引擎包。
|
|
提供各类计算器,并通过懒加载避免循环依赖。
|
|
"""
|
|
from importlib import import_module
|
|
from typing import Any
|
|
|
|
__version__ = "1.0.0"
|
|
__author__ = "Assessment Team"
|
|
|
|
__all__ = [
|
|
"EconomicValueB1Calculator",
|
|
"BasicValueB11Calculator",
|
|
"TrafficFactorB12Calculator",
|
|
"PolicyMultiplierB13Calculator",
|
|
"CulturalValueB2Calculator",
|
|
"LivingHeritageB21Calculator",
|
|
"PatternGeneB22Calculator",
|
|
"RiskAdjustmentB3Calculator",
|
|
"MarketValueCCalculator",
|
|
"MarketBiddingC1Calculator",
|
|
"HeatCoefficientC2Calculator",
|
|
"ScarcityMultiplierC3Calculator",
|
|
"TemporalDecayC4Calculator",
|
|
"FinalValueACalculator",
|
|
]
|
|
|
|
_EXPORT_MAP = {
|
|
"EconomicValueB1Calculator": "app.utils.calculation_engine.economic_value_b1",
|
|
"BasicValueB11Calculator": "app.utils.calculation_engine.economic_value_b1.sub_formulas.basic_value_b11",
|
|
"TrafficFactorB12Calculator": "app.utils.calculation_engine.economic_value_b1.sub_formulas.traffic_factor_b12",
|
|
"PolicyMultiplierB13Calculator": "app.utils.calculation_engine.economic_value_b1.sub_formulas.policy_multiplier_b13",
|
|
"CulturalValueB2Calculator": "app.utils.calculation_engine.cultural_value_b2.cultural_value_b2",
|
|
"LivingHeritageB21Calculator": "app.utils.calculation_engine.cultural_value_b2.sub_formulas.living_heritage_b21",
|
|
"PatternGeneB22Calculator": "app.utils.calculation_engine.cultural_value_b2.sub_formulas.pattern_gene_b22",
|
|
"RiskAdjustmentB3Calculator": "app.utils.calculation_engine.risk_adjustment_b3.sub_formulas.risk_adjustment_b3",
|
|
"MarketValueCCalculator": "app.utils.calculation_engine.market_value_c.market_value_c",
|
|
"MarketBiddingC1Calculator": "app.utils.calculation_engine.market_value_c.sub_formulas.market_bidding_c1",
|
|
"HeatCoefficientC2Calculator": "app.utils.calculation_engine.market_value_c.sub_formulas.heat_coefficient_c2",
|
|
"ScarcityMultiplierC3Calculator": "app.utils.calculation_engine.market_value_c.sub_formulas.scarcity_multiplier_c3",
|
|
"TemporalDecayC4Calculator": "app.utils.calculation_engine.market_value_c.sub_formulas.temporal_decay_c4",
|
|
"FinalValueACalculator": "app.utils.calculation_engine.final_value_ab.final_value_a",
|
|
}
|
|
|
|
|
|
def __getattr__(name: str) -> Any:
|
|
module_path = _EXPORT_MAP.get(name)
|
|
if not module_path:
|
|
raise AttributeError(f"module {__name__} has no attribute {name}")
|
|
module = import_module(module_path)
|
|
attr = getattr(module, name)
|
|
globals()[name] = attr
|
|
return attr
|