chronaxis.presets
把四种预设展开为普通规则、窗口、指标或请求响应配对。检查角色对应的信号类型、单位和必要语义,不读取输入;全部参数见预设。
这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。
相关类型
D、DerivedDefinition、PlanFragment、PlanValidationError、PresetCalculation、PresetRule、PresetSpec、RoleBinding、RoleContract、SequencePlan、SignalDefinition、WindowSpec
对象导航
| 对象 | 用途 |
|---|---|
_parameters |
按kind检查工程参数,保持原数值并将时长转换为整数ns。 |
_mismatches |
列出转换后声明未满足的角色字段,不能用自由metadata放宽质量。 |
resolve_preset_roles |
显式优先解析本次实际角色,否则按版本化语义契约寻找唯一合格候选。 |
build_preset |
校验v1预设并展开公共声明,不执行I/O或数值分析。 |
expand_presets |
在独立配置副本中合入预设片段,保留用户节点并拒绝全部生成ID冲突。 |
导入与重导出来源(展开)
from .core.binding import SignalDefinition
from .core.expression import DerivedDefinition
from .core.types import SignalDType as D
from .core.windows import WindowSpec
from .planning.checks import PlanValidationError, choice_at, duration_at, json_value, array_at, number_at, object_at, text_at
from .planning.preset_models import RoleContract, RoleBinding, PresetSpec, PresetRule, PresetCalculation, PlanFragment, CHARGE_ROLES, FAULT_ROLES, COMMAND_ROLES
from .planning.sequences import SequencePlan
from .timebase.conversion import INT64_MIN, INT64_MAX_parameters
按kind检查工程参数,保持原数值并将时长转换为整数ns。
_parameters(spec, signals=())参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
spec |
PresetSpec | 是 | 无 | 位置或关键字。spec为PresetSpec |
signals |
tuple[SignalDefinition, ...] | 否 | () | 位置或关键字。当前信号定义,供阈值预设省略unit时从已绑定signal角色取得单位;空元组不虚构候选。 |
返回说明
新dict,仅内部使用已校验参数,不作为公开无类型片段。
异常说明
PlanValidationError为缺项、未知参数、bool伪数值、非有限或错误范围。
源码:src/chronaxis/presets.py:23(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
_mismatches
列出转换后声明未满足的角色字段,不能用自由metadata放宽质量。
_mismatches(definition, contract, *, generic_unit=False)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
definition |
SignalDefinition | 是 | 无 | 位置或关键字。definition为SignalDefinition |
contract |
RoleContract | 是 | 无 | 位置或关键字。当前预设某个角色的要求,包含量纲、方向、测量位置等;与候选信号逐项比较并列出不匹配项。 |
generic_unit |
bool | 否 | False | 仅关键字。generic_unit允许明确同名无转换的自定义单位。 |
返回说明
tuple[str, ...],空表示字段契约通过,不证明真实数据正确。
异常说明
无主动异常;输入类型由公共解析入口证明。
源码:src/chronaxis/presets.py:78(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
resolve_preset_roles
显式优先解析本次实际角色,否则按版本化语义契约寻找唯一合格候选。
resolve_preset_roles(spec: PresetSpec, signals: tuple[SignalDefinition, ...]) -> tuple[RoleBinding, ...]参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
spec |
PresetSpec | 是 | 无 | 位置或关键字。提供PresetSpec预设声明,可用PresetSpec.from_dict({...})从必填name、preset_type、parameters,以及可选version、role_bindings的Python字典建立;完整可运行调用见预设API示例。 |
signals |
tuple[SignalDefinition, ...] | 是 | 无 | 位置或关键字。提供本计划的SignalDefinition元组,例如tuple(item.definition for item in plan.signals),其中plan由load_analysis_plan取得;角色引用这些定义的name,不直接填CSV列名。 |
返回说明
RoleBinding tuple,保留原定义与explicit/semantic_unique路径。
异常说明
PlanValidationError为类型、重复别名、未知角色、缺项、候选歧义或契约冲突。
- PlanValidationError:需要PresetSpec与SignalDefinition tuple。
- PlanValidationError:signal别名重复。
- PlanValidationError:threshold_excursion必须显式指定signal角色。
边界说明
显式别名无需semantic_id,仍检查类型/单位/方向/位置/质量;不选第一个候选。
返回类型:tuple[RoleBinding, ...]。
源码:src/chronaxis/presets.py:104(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
build_preset
校验v1预设并展开公共声明,不执行I/O或数值分析。
build_preset(spec: PresetSpec, signals: tuple[SignalDefinition, ...]) -> PlanFragment参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
spec |
PresetSpec | 是 | 无 | 位置或关键字。提供PresetSpec预设声明,可用PresetSpec.from_dict({...})从必填name、preset_type、parameters,以及可选version、role_bindings的Python字典建立;完整可运行调用见预设API示例。 |
signals |
tuple[SignalDefinition, ...] | 是 | 无 | 位置或关键字。提供本计划的SignalDefinition元组,例如tuple(item.definition for item in plan.signals),其中plan由load_analysis_plan取得;角色引用这些定义的name,不直接填CSV列名。 |
返回说明
PlanFragment,生成请求的功率/Wh/Ah、报警、阈值迟滞/逐段时长或响应配对。
异常说明
PlanValidationError为参数/角色契约、模式编码范围及生成ID与信号冲突。
- PlanValidationError:模式编码超出已声明dtype/valid_range。
流程说明
检查角色→生成简单别名DSL→构造类型化节点→拒绝当前可见ID冲突。 用户其他节点/多个预设的冲突由AnalysisPlan合入时继续检查。
返回类型:PlanFragment。
源码:src/chronaxis/presets.py:158(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
expand_presets
在独立配置副本中合入预设片段,保留用户节点并拒绝全部生成ID冲突。
expand_presets(config, signals)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
config |
dict[str, object] | 是 | 无 | 位置或关键字。调用方已复制的配置映射;本函数原地合入derived、rules、windows、calculations和sequences中的预设节点。 |
signals |
tuple[SignalDefinition, ...] | 是 | 无 | 位置或关键字。signals为当前SignalDefinition tuple。 |
返回说明
(PresetSpec tuple, 各预设RoleBinding tuple),供计划保留原声明及角色追溯。
异常说明
PlanValidationError为预设/用户结构或生成ID与用户/其他预设重名。
- PlanValidationError:derived必须为别名对象。
- PlanValidationError:节点必须包含id。
副作用说明
仅修改传入的局部derived/rules/windows/calculations/sequences;不修改raw_config快照或来源。
源码:src/chronaxis/presets.py:219(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。