chronaxis.execution.record_time_calculation
用有限记录计算时间统计和真实样本统计;仅时间均值暂存必要值/权重。
输入与RecordIntegral共享点缓冲、递增时间和失效处理。复用原时间/样本数值核; 样本统计保真实更新标志,不把条件/TTL更新当新样本,样本均值使用原序求和。 均值首遍仅写值与权重,实际权重为int64纳秒,周期权重为float秒; 次遍按已知总权重规范化,避免先求面积溢出。 临时文件由本owner关闭时删除,不默认留现场;结果不附历史、贡献或时间对照。 调用者必须先确认来源EOF及关闭成功再finish,本对象不替代公共AnalysisRunner发布。
这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。
相关类型
BudgetExceededError、CalculationDefinition、CalculationSeries、D、Interval、NumpyConditionalTimeReduction、NumpyIntegralSum、NumpySampleReduction、NumpyTimeReduction、Path、QualityFlag(源码别名Q)、RecordPointBuffer、ReferenceConditionalTimeReduction、ReferenceIntegralSum、ReferenceSampleReduction、ReferenceTimeReduction、ResourceBudget、TimeReductionResult
对象导航
| 对象 | 用途 |
|---|---|
RecordTimeResult |
保存时间统计的必要输出,整数极值不转成浮点数。 |
RecordTimeCalculation |
拥有一份点缓冲、数值状态及可选均值临时文件,失败后只能清理。 |
RecordTimeCalculation.__init__ |
预付有限状态,均值的文件延迟到首批有效项才创建。 |
RecordTimeCalculation._append_mean |
只写本批选中的必要均值项;费用先预约,不缓存完整输入。 |
RecordTimeCalculation._flush |
在共享预算内分块处理样本统计,保留每块的共同右端。 |
RecordTimeCalculation._flush_block |
计算完整记录对,只留共享右端;均值写选中项,其他指标不写盘。 |
RecordTimeCalculation._finish_mean |
分批回读必要数值/权重,复用原归一化及原序求和,最终只换单位一次。 |
RecordTimeCalculation.finish |
上游确认EOF后结算,并关闭删除均值临时文件,再交付精简结果。 |
RecordTimeCalculation.closed |
读取自有文件/费用是否全部释放。 |
RecordTimeCalculation.close |
清理自有数值状态和临时文件,释放失败保留重试入口,不碰输入文件。 |
导入与重导出来源(展开)
from ..core.moments import SAMPLE_MOMENTS
from ..core.quantiles import SAMPLE_QUANTILES
from dataclasses import dataclass
from pathlib import Path
from struct import Struct
from tempfile import TemporaryFile
from ..core.calculations import CalculationDefinition, CalculationSeries, classify_calculation_value
from ..core.calculations import classify_coverage
from ..core.models import Interval
from ..core.types import SignalDType as D, QualityFlag as Q
from ..core.time_reduction import require_time_config, TimeReductionResult
from ..core.time_reduction_reference import ReferenceTimeReduction
from ..core.time_reduction_numpy import NumpyTimeReduction
from ..core.conditional_time_reduction_reference import ReferenceConditionalTimeReduction
from ..core.conditional_time_reduction_numpy import NumpyConditionalTimeReduction
from ..core.integral_sum_reference import ReferenceIntegralSum
from ..core.integral_sum_numpy import NumpyIntegralSum
from ..core.mean_weights_reference import normalized_mean_terms as reference_mean
from ..core.mean_weights_numpy import normalized_mean_terms as numpy_mean
from ..results.budget import ResourceBudget, _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from ..results.errors import BudgetExceededError
from .history import _metadata_bytes
from .record_point_buffer import RecordPointBuffer
from ..core.sample_reduction import require_sample_config
from ..core.calculation_output_reference import convert_result_reference
from ..core.calculation_output_numpy import convert_result_numpy
from ..core.sample_reduction_reference import ReferenceSampleReduction
from ..core.sample_reduction_numpy import NumpySampleReduction
from .record_sample_series import sample_seriesRecordTimeResult
保存时间统计的必要输出,整数极值不转成浮点数。
class RecordTimeResult属性与数据字段
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
value |
int | float | None | 是 | 无 | 计算所得的有限数值;None表示不能给出数值,需同时读取状态和原因,不能替换成0。 |
unit |
str | 是 | 无 | 物理量或结果单位,如W、J、s;按本接口的单位检查与换算规则使用。 |
status |
str | 是 | 无 | complete表示结果完整,partial表示只包含可核实部分,indeterminate表示无法确定数值。 |
reason |
str | 是 | 无 | 说明数值完整、部分可用或不能确定的具体原因;与status一起读取,不能只看数值。 |
quality |
QualityFlag(源码别名Q) | 是 | 无 | 该值或结果的质量位组合;缺失、过期等原因不能通过清零掩盖。 |
coverage_status |
str | None | 否 | None | 对明确配置的覆盖门槛给出的结论;独立于数值本身的complete/partial/indeterminate状态。 |
源码:src/chronaxis/execution/record_time_calculation.py:46(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation
拥有一份点缓冲、数值状态及可选均值临时文件,失败后只能清理。
RecordTimeCalculation(budget, spec, input_unit, dtype, step_ns, *, backend='numpy', batch_intervals=64, partial_limit=4096, conditioned=False, work_dir=None, hosted=None)继承关系:RecordPointBuffer。下表列本类声明的字段;基类字段及其约束见对应类型链接。
源码:src/chronaxis/execution/record_time_calculation.py:57(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation.__init__
预付有限状态,均值的文件延迟到首批有效项才创建。
RecordTimeCalculation.__init__(budget, spec, input_unit, dtype, step_ns, *, backend='numpy', batch_intervals=64, partial_limit=4096, conditioned=False, work_dir=None, hosted=None)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
budget |
ResourceBudget | 是 | 无 | 位置或关键字。本次分析共享的资源用量记录;新对象先预约所需内存和磁盘额度,关闭时归还自己的内存费用。 |
spec |
CalculationDefinition | 是 | 无 | 位置或关键字。已核对的指标声明,包含算子、实际请求范围、数据不全时的处理方式和输出单位。 |
input_unit |
str | 是 | 无 | 位置或关键字。送入数值核的原计算值单位,用于校验输出单位以及积分的单位转换。 |
dtype |
SignalDType | 是 | 无 | 位置或关键字。计算值的数据类型;决定整数范围、浮点计算或枚举处理,不得隐式转float丢失整数精度。 |
step_ns |
int | None | 是 | 无 | 位置或关键字。所选固定或DBC周期,单位纳秒且大于0;None表示采用实际时间间隔,不生成第二套时间坐标。 |
backend |
str | 否 | 'numpy' | 仅关键字。计算实现:reference使用独立参考核,numpy使用数组核;两者遵守相同的业务和缺失数据规则。 |
batch_intervals |
int | 否 | 64 | 仅关键字。本对象一次交给数值核的相邻区间上限;为正整数,并受共享内存预算约束。 |
partial_limit |
int | 否 | 4096 | 仅关键字。一次数值归约允许保留的中间部分和数量上限,防止累计状态无界增长。 |
conditioned |
bool | 否 | False | 仅关键字。是否同时保存和处理筛选条件;False时不创建无用条件列或条件历史。 |
work_dir |
str | Path | None | 否 | None | 仅关键字。time_weighted_mean必须提供已存在的专用目录保存必要均值项;其他算子可省略,默认None。 |
hosted |
ReductionSpec | None | 否 | None | 仅关键字。按宿主操作名解析的注册描述;省略时使用内置统计实现。 |
返回说明
新owner。
异常说明
配置/预算失败;持续清理故障附record_time_cleanup_owner。
源码:src/chronaxis/execution/record_time_calculation.py:60(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation._append_mean
只写本批选中的必要均值项;费用先预约,不缓存完整输入。
RecordTimeCalculation._append_mean(values, weights)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
values |
Sequence[int | float] | 是 | 无 | 位置或关键字。当前有限批的有效数值,与权重按位置一一对应;按原序归约。 |
weights |
Sequence[int | float] | 是 | 无 | 位置或关键字。与数值一一对应的非负权重;实际模式为纳秒,固定或DBC模式为所选周期的秒数。 |
返回说明
None。
异常说明
配额、短写、IO或取消传播。
源码:src/chronaxis/execution/record_time_calculation.py:128(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation._flush
在共享预算内分块处理样本统计,保留每块的共同右端。
RecordTimeCalculation._flush()参数:无显式参数。
参数说明
无,使用已预付的点缓冲。
返回说明
None。
异常说明
最小两点工作区也放不下时报告计算项与用途;数值、取消原错传播。 不降低每行估算、不放宽限额,也不丢弃、重排或重复累计真实样本。
源码:src/chronaxis/execution/record_time_calculation.py:157(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation._flush_block
计算完整记录对,只留共享右端;均值写选中项,其他指标不写盘。
RecordTimeCalculation._flush_block()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
预算/数值结构/IO/取消,失败后不得交付前缀。
源码:src/chronaxis/execution/record_time_calculation.py:209(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation._finish_mean
分批回读必要数值/权重,复用原归一化及原序求和,最终只换单位一次。
RecordTimeCalculation._finish_mean()参数:无显式参数。
参数说明
无。
返回说明
TimeReductionResult。
异常说明
临时数据短缺/多出、IO、预算或取消。
源码:src/chronaxis/execution/record_time_calculation.py:261(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation.finish
上游确认EOF后结算,并关闭删除均值临时文件,再交付精简结果。
RecordTimeCalculation.finish()参数:无显式参数。
参数说明
无。
返回说明
RecordTimeResult,重复调用同一结果。
异常说明
失败拒绝前缀,close可重试。
源码:src/chronaxis/execution/record_time_calculation.py:311(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation.closed
读取自有文件/费用是否全部释放。
RecordTimeCalculation.closed装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
bool。
异常说明
无。
源码:src/chronaxis/execution/record_time_calculation.py:355(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
RecordTimeCalculation.close
清理自有数值状态和临时文件,释放失败保留重试入口,不碰输入文件。
RecordTimeCalculation.close()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
文件关闭/费用释放失败可重试;重复关闭安全。
源码:src/chronaxis/execution/record_time_calculation.py:359(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。