File size: 2,040 Bytes
bb59211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""数据清洗 —— 按数据类型检查 episode 质量,异常退回人工审核。

对应《以 Episode 为单位的数据清洗方案》(PDF)。核心设计:

* **按信道声明需求**,不按"这是 UMI 还是 EGO" —— 检查项自己声明需要哪些信道,
  实际有哪些信道由数据决定,两者匹配上才跑(见 ``checks.applicable_checks``)。
* **四层结果** —— 数据流 / 时间区间 / episode / 训练用途(见 ``report.build_report``)。
* **只出结论,不产出数据** —— 原始数据一字不改,也不生成 clean_v1 之类的副本。
  区间信息完整保留在报告里,下游按 ``training_use`` 过滤即可。
* **可插拔** —— 新增检查项 = 在 ``checks/`` 下放一个 .py(与 processing/modules 同款)。

这个包的算法实现与工作流适配器是分开的,与 ``app/processing/black_glove`` 同构:

    app/processing/cleaning/               ← 本包:契约 + 检查项 + 报告组装
    app/processing/modules/data_cleaning.py ← 工作流节点(artifact 契约 + 端口 + 配置)
"""

from app.processing.cleaning.contract import (
    DEVICE_MODALITIES, CAMERA_MODALITIES, CHANNELS, MODALITY_CHANNELS,
    PASS, WARN, FAIL, PENDING, ERROR,
    SEVERITY_ORDER, SEVERITY_LABELS,
    Finding, Range, StreamResult,
    channels_for, normalize_device_modality, worst, is_blocking,
)
from app.processing.cleaning.report import (
    SCHEMA_VERSION, TRAINING_USE_RULES,
    build_report, build_timeline, rollup_episode, rollup_training_use,
    empty_report, passed_for,
)

__all__ = [
    "DEVICE_MODALITIES", "CAMERA_MODALITIES", "CHANNELS", "MODALITY_CHANNELS",
    "PASS", "WARN", "FAIL", "PENDING", "ERROR",
    "SEVERITY_ORDER", "SEVERITY_LABELS",
    "Finding", "Range", "StreamResult",
    "channels_for", "normalize_device_modality", "worst", "is_blocking",
    "SCHEMA_VERSION", "TRAINING_USE_RULES",
    "build_report", "build_timeline", "rollup_episode", "rollup_training_use",
    "empty_report", "passed_for",
]