Chronaxis用户手册English
本页目录

chronaxis.core.counts_v4

源码基线:8904c2f744951857659abd40aaa3535d57faf53c

1"""定义v4计数结果及对象发现的完整性,不保存事件或原始样本。23样本计数沿用既有真实更新与选择政策,对象计数只计指定规则或窗口在本会话4最终产生的对象。计数保留整数;有证据的空集、发现不完整及没有观测分别报告。5"""67from .types import QualityFlag as Q8910OBJECT_COUNTS = ('point_event_count', 'activity_count', 'segment_count')11COUNT_OPERATIONS = ('sample_count', *OBJECT_COUNTS)121314def classify_count(count, policy, *, observed, determinate, complete):15    """由已知计数及范围证据决定整数结果、状态、原因与额外质量。1617    参数: count为已发现对象数;policy为report或strict;后三项分别说明是否18        有观测、是否至少有部分可判定范围、是否能判定完整请求。19    返回: (value,status,reason,quality),完全未知为None。20    异常: ValueError为计数或部分结果政策不合法。21    """22    if type(count) is not int or count < 0 or policy not in ('report', 'strict'):23        raise ValueError('计数需要非负原生整数及report/strict政策')24    if not observed:25        return None, 'indeterminate', 'no_observation', Q.MISSING26    if count > (1 << 64) - 1:27        return None, 'indeterminate', 'calculation_failed', Q.OVERFLOW28    if not determinate and not count:29        return None, 'indeterminate', 'insufficient_data', Q.MISSING30    if not complete:31        if policy == 'strict':32            return None, 'indeterminate', 'insufficient_coverage', Q.MISSING33        return count, 'partial', 'partial_coverage', Q.MISSING34    return count, 'complete', 'ok' if count else 'empty_selection', Q.NONE35
Chronaxis 用户手册 · 离线阅读