chronaxis.execution.record_rule_timeline
用最新必要信号在线推进一条规则,不保存输入历史或第二时间轴。
只暂留一个完整条件组,等下一组或真实EOF确定其是否为末点。实际模式调度 必要TTL和规则截止;记录周期模式只在选定驱动更新时增加等待量。输出直接 交调用方结果消费者,输入/共享状态和结果仓不归本对象所有。
这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。
相关类型
BudgetedTemporalDetector、ConditionTick、DriverExpression、QualityFlag(源码别名Q)、RecordAlarmDuration、RecordDeltaCondition、ResultClosedError、RuleOutcome、T、TemporalRule
对象导航
| 对象 | 用途 |
|---|---|
RecordRuleTimeline |
拥有规则表达式、检测器和一个待定条件组;原始组由父会话原子提交。 |
RecordRuleTimeline.__init__ |
建立有限声明,不读来源,也不把请求域当作已观测范围。 |
RecordRuleTimeline.extend_observation |
更新单遍读取已见的末端;最后条件组仍等待后继或EOF。 |
RecordRuleTimeline._open |
拒绝失效实例。 |
RecordRuleTimeline.begin |
用实际观察起点建立检测器,空来源由父跳过。 |
RecordRuleTimeline._snapshot |
收齐进出条件的点/右侧值,保一个必要组。 |
RecordRuleTimeline._commit |
交付一个完整条件组和增量事件,消费失败不返回前缀。 |
RecordRuleTimeline._drain_before |
只推进已经由后续观测证明存在的区间。 |
RecordRuleTimeline.before_group |
父提交新组前处理旧状态上的TTL和实际等待。 |
RecordRuleTimeline.after_group |
父原子提交后保存新条件组;实际终点在同一时刻更新之后结算。 |
RecordRuleTimeline.clock_group |
待定旧条件已经交付后,接收报警累计所需的完整驱动对。 |
RecordRuleTimeline.finish |
所有必要来源EOF后按真实末端封口,不外推到请求结束。 |
RecordRuleTimeline.outcome |
冻结规则结果原因,不读取输入。 |
RecordRuleTimeline.count_evidence |
判定规则实际观测是否覆盖整个目标会话,保留发现是否完整的证据。 |
RecordRuleTimeline.duration_result |
借出明确请求的最终累计;空来源返回无观测。 |
RecordRuleTimeline.closed |
返回资源关闭状态。 |
RecordRuleTimeline.close |
释放自有批、表达式和检测器,保留失败槽供重试。 |
导入与重导出来源(展开)
from dataclasses import replace
from ..core.temporal import ConditionTick, TemporalRule
from ..core.types import Truth as T, QualityFlag as Q
from ..results.errors import ResultClosedError
from ..results.spool import _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from .driver_expression import DriverExpression
from .temporal_buffer import BudgetedTemporalDetector
from .history import _metadata_bytes
from .record_alarm_duration import RecordAlarmDuration
from .record_delta_condition import RecordDeltaConditionRecordRuleTimeline
拥有规则表达式、检测器和一个待定条件组;原始组由父会话原子提交。
RecordRuleTimeline(plan, request, state, budget, step_ns, driver, observation_ends, consumer, step_consumer=None)源码:src/chronaxis/execution/record_rule_timeline.py:20(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.__init__
建立有限声明,不读来源,也不把请求域当作已观测范围。
RecordRuleTimeline.__init__(plan, request, state, budget, step_ns, driver, observation_ends, consumer, step_consumer=None)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
plan |
AnalysisPlan | 是 | 无 | 位置或关键字。已完成静态解析的分析计划,包含来源、绑定、规则、指标、间隔选择和输出要求。 |
request |
RulePlan | 是 | 无 | 位置或关键字。当前规则声明及已经编译的依赖表达式;与plan属于同一任务。 |
state |
LatestSignalState | 是 | 无 | 位置或关键字。当前会话各依赖信号的最新有效状态;过期按实际时间判断,不能跨独立任务继承。 |
budget |
ResourceBudget | 是 | 无 | 位置或关键字。本次分析共享的资源用量记录;新对象先预约所需内存和磁盘额度,关闭时归还自己的内存费用。 |
step_ns |
int | None | 是 | 无 | 位置或关键字。所选固定或DBC周期,单位纳秒且大于0;None表示采用实际时间间隔,不生成第二套时间坐标。 |
driver |
str | None | 是 | 无 | 位置或关键字。推进该计算的原信号别名;None按实际更新组求值,固定/DBC模式使用已解析的唯一别名。 |
observation_ends |
Mapping[str, int] | 是 | 无 | 位置或关键字。已知来源EOF实际纳秒时刻;尚未结束的来源没有条目。 |
consumer |
Callable[[Event], None] | 是 | 无 | 位置或关键字。接收该规则已确定的原始事件;窗口扩展和合并由后续消费者处理。 |
step_consumer |
Callable[[str, ConditionTick, tuple[Event, ...]], None] | None | 否 | None | 位置或关键字。接收规则ID、完整条件点及同一时刻事件,供配对使用;None不保留这项中间交付。 |
返回说明
新owner。
异常说明
原构造错误附record_rule_cleanup_owner。
源码:src/chronaxis/execution/record_rule_timeline.py:23(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.extend_observation
更新单遍读取已见的末端;最后条件组仍等待后继或EOF。
RecordRuleTimeline.extend_observation(end_ns)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
end_ns |
int | 是 | 无 | 位置或关键字。本次读到的实际观测末端,纳秒;只延长既有时间线,不重复读取输入。 |
返回说明
None。
异常说明
回退。
源码:src/chronaxis/execution/record_rule_timeline.py:91(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline._open
拒绝失效实例。
RecordRuleTimeline._open()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
ResultClosedError。
源码:src/chronaxis/execution/record_rule_timeline.py:101(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.begin
用实际观察起点建立检测器,空来源由父跳过。
RecordRuleTimeline.begin(observed_start)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
observed_start |
int | 是 | 无 | 位置或关键字。实际观察到的来源起点,单位纳秒;不能从请求范围虚构输入起点。 |
返回说明
None。
异常说明
构造/范围错误附可清理owner。
源码:src/chronaxis/execution/record_rule_timeline.py:106(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline._snapshot
收齐进出条件的点/右侧值,保一个必要组。
RecordRuleTimeline._snapshot(time_ns, actual, terminal=False)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
time_ns |
int | 是 | 无 | 位置或关键字。本次操作对应的实际时刻,单位纳秒;必须按输入的单调顺序推进,不是累计的固定周期数。 |
actual |
bool | 是 | 无 | 位置或关键字。是否由真实输入更新生成快照;False表示到期或终点边界,不能增加记录周期。 |
terminal |
bool | 否 | False | 位置或关键字。是否为真实观测终点的条件快照;终点不再建立新的持续活动或补时长。 |
返回说明
None。
异常说明
求值原错。
源码:src/chronaxis/execution/record_rule_timeline.py:135(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline._commit
交付一个完整条件组和增量事件,消费失败不返回前缀。
RecordRuleTimeline._commit()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
原错。
源码:src/chronaxis/execution/record_rule_timeline.py:177(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline._drain_before
只推进已经由后续观测证明存在的区间。
RecordRuleTimeline._drain_before(time_ns)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
time_ns |
int | 是 | 无 | 位置或关键字。本次操作对应的实际时刻,单位纳秒;必须按输入的单调顺序推进,不是累计的固定周期数。 |
返回说明
None。
异常说明
原推进错。
源码:src/chronaxis/execution/record_rule_timeline.py:227(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.before_group
父提交新组前处理旧状态上的TTL和实际等待。
RecordRuleTimeline.before_group(time_ns)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
time_ns |
int | 是 | 无 | 位置或关键字。本次操作对应的实际时刻,单位纳秒;必须按输入的单调顺序推进,不是累计的固定周期数。 |
返回说明
None。
异常说明
原错。
源码:src/chronaxis/execution/record_rule_timeline.py:241(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.after_group
父原子提交后保存新条件组;实际终点在同一时刻更新之后结算。
RecordRuleTimeline.after_group(time_ns)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
time_ns |
int | 是 | 无 | 位置或关键字。本次操作对应的实际时刻,单位纳秒;必须按输入的单调顺序推进,不是累计的固定周期数。 |
返回说明
None。
异常说明
原求值/事件错误,失败只能关闭。
源码:src/chronaxis/execution/record_rule_timeline.py:256(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.clock_group
待定旧条件已经交付后,接收报警累计所需的完整驱动对。
RecordRuleTimeline.clock_group(group)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
group |
DecodedTimeGroup | 是 | 无 | 位置或关键字。同一实际时刻收齐的所需信号更新;本组全部到齐后再求值,避免来源遍历顺序影响结果。 |
返回说明
None。
异常说明
累计顺序/预算错误。 不改变事件坐标,也不把请求域外样本算入报警;只借它们确定裁剪分母。
源码:src/chronaxis/execution/record_rule_timeline.py:277(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.finish
所有必要来源EOF后按真实末端封口,不外推到请求结束。
RecordRuleTimeline.finish(observed_end)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
observed_end |
int | 是 | 无 | 位置或关键字。实际来源EOF时刻,单位纳秒;终点只负责收尾,不补造一条真实更新。 |
返回说明
None。
异常说明
原错,未完成不发布结果。
源码:src/chronaxis/execution/record_rule_timeline.py:286(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.outcome
冻结规则结果原因,不读取输入。
RecordRuleTimeline.outcome()参数:无显式参数。
参数说明
无。
返回说明
RuleOutcome。
异常说明
未完成或已关闭。
有事件时始终保留计数;缺信号和UNKNOWN不被解释成条件为假。
源码:src/chronaxis/execution/record_rule_timeline.py:316(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.count_evidence
判定规则实际观测是否覆盖整个目标会话,保留发现是否完整的证据。
RecordRuleTimeline.count_evidence(domain)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
domain |
Interval | None | 是 | 无 | 位置或关键字。显式请求的分析范围;省略时按已观测范围评估对象发现的完整性。 |
返回说明
已观测、至少部分可判定、完整、质量位。
异常说明
规则尚未结束或已关闭时沿outcome检查传播。
源码:src/chronaxis/execution/record_rule_timeline.py:343(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.duration_result
借出明确请求的最终累计;空来源返回无观测。
RecordRuleTimeline.duration_result装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
tuple或None。
异常说明
未完成错误。
源码:src/chronaxis/execution/record_rule_timeline.py:362(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.closed
返回资源关闭状态。
RecordRuleTimeline.closed装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
bool。
异常说明
无。
源码:src/chronaxis/execution/record_rule_timeline.py:371(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordRuleTimeline.close
释放自有批、表达式和检测器,保留失败槽供重试。
RecordRuleTimeline.close()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
原关闭错。
源码:src/chronaxis/execution/record_rule_timeline.py:375(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。