""" 非遗资产估值计算引擎包。 提供各类计算器,并通过懒加载避免循环依赖。 """ 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