This website requires JavaScript.
Explore
Help
Sign In
yilunjiang
/
AgentLab
Watch
1
Star
0
Fork
0
You've already forked AgentLab
mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced
2026-11-15 07:11:57 +00:00
Code
Issues
Packages
Projects
Releases
Wiki
Activity
Files
28db25631dff667fae25dd30a5c0bd720aea27e3
AgentLab
/
backend
/
app
/
analysis
T
History
ThearchyHelios
28db25631d
合入 W1-b 证据接入:台账 A、写作目录、a / v:A / table:A / see:A 引用、出处链与复算、证据图、审计、导出与可验证报告、裁判摘录、账本跳过
2026-10-21 13:58:18 +08:00
..
__init__.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
common.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
comparable.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
contract.py
合入 W1-b 证据接入:台账 A、写作目录、a / v:A / table:A / see:A 引用、出处链与复算、证据图、审计、导出与可验证报告、裁判摘录、账本跳过
2026-10-21 13:58:18 +08:00
decompose.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
differ.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
facts.py
分析算子的输入、目录事实、期次与现查:inputs.py(按名字取快照、拆「名字.r行.列」、列名不分大小写、遮罩列与非数值是调用错误);facts.py(按 SQL 认结果列取自哪张表的哪一列,读目录的度量类型、叫法、业务日期,只有确认过的度量类型才拿来判调用错误;查过的记进 params,复算不读目录);periods.py(日期、YYYY-MM、YYYY-Www、YYYY-Qn、整数序号,粒度按值推断);probe.py(make_prober 走 data/coverage 的只读探查:遮罩列不探、总时限、5 分钟缓存、退回剖析事实,另在库里算按运行当天现算的界;Book 先登记、查完再算,结论只记真用到的);data/coverage.py 加几个公开的小函数(parse_sql、as_day、literal_bound、window_of、column_range、bound_values、facts_range),_fallback 的读法抽成 _facts_range、行为不变;契约补几项可选字段(InputSnapshot 的 dialect / checks / no_data / mask_columns / masked_at_query,AnalysisInput 的 dialect,Probe 的 expr / value)
2026-10-21 13:03:35 +08:00
inputs.py
五个分析算子与 run / recompute(细案 01 §1–§8):decompose(additive 按维度算贡献、headline 与下钻闭合、抵消、新出现 / 消失;ratio 中点对称拆结构与自身效应、辛普森、分母小;factor LMDI-I;两份快照先做可比性,口径结构不同不拆)、baseline(中位数与 MAD 的稳健 z、σ̂ = 0、日数据 lag 7、新高新低)、trend(Theil–Sen + Mann–Kendall、末尾连续期数)、differ(rate 的 z 检验 / Fisher、mean 与 rows 的 Welch、Holm、rows 的敏感性)、comparable(同口径、窗口长度、整期、星期构成、数据问题,现查记进 probes);run 先登记现查、查完再算,运行当天和目录事实记进 params,recompute 只用记下的、不现查;判定码、原因码、附带说明码都在契约里;输入记下方言和遮罩列名,复算逐字段相同;测试用虚构零售库,每个用例都核对复算
2026-10-21 13:04:58 +08:00
numbers.py
分析结论的数与判定语:numbers.py(快照里的数换成精确的 Fraction,写成规范的十进制字符串:不带指数、去尾零、没有 -0,除不尽的和浮点留 12 位有效数字,同输入逐字节同输出);phrases.py 一处定义判定语模板(细案 01 §7.2)、数的写法(百分比一位小数带正负号、量千分位最多两位小数、百分点,ROUND_HALF_UP 同 render_cell)、label 消毒(去引用标记、出具校验认的数字写法、单位符号,≤ 20 字,空了退回目录叫法和列名)、附带说明的一句话(判定语后最多接两条)、照实际阈值写的判定标准
2026-10-21 13:03:23 +08:00
periods.py
分析算子的输入、目录事实、期次与现查:inputs.py(按名字取快照、拆「名字.r行.列」、列名不分大小写、遮罩列与非数值是调用错误);facts.py(按 SQL 认结果列取自哪张表的哪一列,读目录的度量类型、叫法、业务日期,只有确认过的度量类型才拿来判调用错误;查过的记进 params,复算不读目录);periods.py(日期、YYYY-MM、YYYY-Www、YYYY-Qn、整数序号,粒度按值推断);probe.py(make_prober 走 data/coverage 的只读探查:遮罩列不探、总时限、5 分钟缓存、退回剖析事实,另在库里算按运行当天现算的界;Book 先登记、查完再算,结论只记真用到的);data/coverage.py 加几个公开的小函数(parse_sql、as_day、literal_bound、window_of、column_range、bound_values、facts_range),_fallback 的读法抽成 _facts_range、行为不变;契约补几项可选字段(InputSnapshot 的 dialect / checks / no_data / mask_columns / masked_at_query,AnalysisInput 的 dialect,Probe 的 expr / value)
2026-10-21 13:03:35 +08:00
phrases.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
probe.py
分析算子的输入、目录事实、期次与现查:inputs.py(按名字取快照、拆「名字.r行.列」、列名不分大小写、遮罩列与非数值是调用错误);facts.py(按 SQL 认结果列取自哪张表的哪一列,读目录的度量类型、叫法、业务日期,只有确认过的度量类型才拿来判调用错误;查过的记进 params,复算不读目录);periods.py(日期、YYYY-MM、YYYY-Www、YYYY-Qn、整数序号,粒度按值推断);probe.py(make_prober 走 data/coverage 的只读探查:遮罩列不探、总时限、5 分钟缓存、退回剖析事实,另在库里算按运行当天现算的界;Book 先登记、查完再算,结论只记真用到的);data/coverage.py 加几个公开的小函数(parse_sql、as_day、literal_bound、window_of、column_range、bound_values、facts_range),_fallback 的读法抽成 _facts_range、行为不变;契约补几项可选字段(InputSnapshot 的 dialect / checks / no_data / mask_columns / masked_at_query,AnalysisInput 的 dialect,Probe 的 expr / value)
2026-10-21 13:03:35 +08:00
series.py
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
2026-10-21 13:19:27 +08:00
stats.py
分析算子的统计函数(app/analysis/stats.py,纯 Python、不加依赖):正态分布函数(math.erfc)与分位数(Acklam 逼近 + Halley 修正)、t 分布(正则化不完全 β 的连分式,自由度很大时按正态)与分位数(二分)、Wilson(从 eval/stats 移过来,评测改为引用、行为不变)、Newcombe 区间、合并比例 z 检验、Fisher 精确检验(lgamma)、Welch t 检验与区间、Holm 校正、Mann–Kendall(n ≤ 10 且无并列用逆序数递推的精确分布,否则正态近似带并列修正和连续性校正)、Theil–Sen(精确的数在公分母上按整数比,只对浮点相等的那几个精确比)、中位数 / MAD / 名次;测试用公认表值钉住(正态 0.975 分位、t(10) 临界值、品茶表、Newcombe 例子、小样本精确分布对照暴力枚举)
2026-10-21 13:03:12 +08:00
testing.py
分析能力骨架:app/analysis 契约(结论的工件种类、台账条目、写作目录前缀 A、引用标记 a、分析卡节点类型、五个算子与模式、方法版本、判定码、算不了的原因码、附带说明码、工具名)、设置缺省 / 取值范围 / 叫法与校验、阈值合并(缺省 ← 发起时快照 ← 分析卡覆盖)、复算比较;run / recompute 的签名(第 1 波实现);测试用的假结论
2026-10-21 11:53:43 +08:00