a
    l#OjL                     @   s   d Z dddddgdddd	dg d
dddddddgdddddddgdddddg ddddddg ddgZdd Zdd  ZdS )!u  
层级纯净池配置。

设计原则：
- 每一层定义一组信号条件；
- 第 N 层在前一层（base_layer）健康的基础上，再满足本层条件才算健康；
- 新增层级时，只需在本配置末尾追加，无需修改 sync_health_snapshot.py。

每条规则的条件格式：
- ("metric_key", expected_value)
- metric_key 对应 ocf_stock_metrics 中的指标
- expected_value 对 flag 指标是 0/1，对 text 指标是字符串

注意：layer1 没有 base_layer，作为入口层。
Zlayer1   u   利润质量：OCF/NI 健康N)ocf_ni_statushealthy)
layer_namelayer_orderdescription
base_layer
conditionsZlayer2   u1   资产负债表风险：无第2层硬规则命中))high_cash_high_debt_flag    )ar_to_revenue_high_flagr   )other_receivables_high_flagr   )inventory_to_revenue_high_flagr   ) precise_high_cash_high_debt_flagr   )goodwill_high_flagr   )construction_long_stuck_flagr   Zlayer3   uB   大股东 / 资不抵债风险：无质押过高、净资产为负)pledge_high_flagr   )negative_equity_flagr   Zlayer4   u   盈利与收入质量：收入有现金支撑、主业可持续盈利（注意：cash_to_revenue_low 对军工/地产/建筑等行业可能合理偏低，存在误伤可能，后续需复核）)cash_to_revenue_flagr   )core_profit_unsustainable_flagr   Zlayer5   u=   退市新规风险：无财务类/交易类退市指标触发))delist_revenue_profit_flagr   )delist_consecutive_loss_flagr   )delist_price_low_flagr   )delist_market_value_low_flagr   Zlayer6   u`   豆包风控层：无 9 条高确定性财报质量风险信号命中（含非标审计意见）)	)ar_growth_over_rev_flagr   )long_inv_high_flagr   )current_ratio_low_flagr   )cash_ratio_low_flagr   )ocf_negative_consec_flagr   )debt_expand_flagr   )core_asset_sell_flagr   )goodwill_one_time_impair_flagr   )audit_non_standard_flagr   c                   C   s   t tdd dS )u.   返回按 layer_order 排序的层级定义。c                 S   s   | d S )Nr    )xr'   r'   4/tmp/quant_ocf_run_20260709/ocf/config/layer_defs.py<lambda>`       z get_layer_defs.<locals>.<lambda>)key)sorted
LAYER_DEFSr'   r'   r'   r)   get_layer_defs^   s    r/   c                   C   s   dd t  D S )u!   返回所有层级名称列表。c                 S   s   g | ]}|d  qS )r   r'   ).0layerr'   r'   r)   
<listcomp>e   r+   z#get_layer_names.<locals>.<listcomp>)r/   r'   r'   r'   r)   get_layer_namesc   s    r3   )__doc__r.   r/   r3   r'   r'   r'   r)   <module>   sX   
M