scripts/report_support_redesign.py
"""Regenerate the registered support-attribution report from saved raw, never inference."""
from __future__ import annotations
import argparse
import csv
import gzip
import json
import shutil
from pathlib import Path
import numpy as np
from mcss.mechanism_pilot.small_training import sha, write_json
from mcss.mechanism_pilot.support_redesign_statistics import analyze
def main(root, docs, *, raw_only=False):
root, docs = Path(root), Path(docs)
raw_path = root / "raw/oracle_run/results.json"
if raw_path.exists():
rows = json.loads(raw_path.read_text())
else:
rows = json.loads(gzip.decompress((root / "raw/oracle_results.json.gz").read_bytes()))
statistics = analyze(rows)
docs.mkdir(parents=True, exist_ok=True)
if raw_only:
write_json(docs / "bootstrap_results.json", statistics)
print(
"Regenerated statistics from680 saved development rows; no media/model/holdout access"
)
return
def load(path):
return json.loads((root / path).read_text())
pooled = statistics["pooled"]["designs"]
combined = pooled["ORACLE_VOLUME_SUPPORT"]
new_combined = statistics["cohorts"]["new_dev"]["designs"]["ORACLE_VOLUME_SUPPORT"]
stop = (
combined["full_context_gain"]["ci95"][0] <= 0
or new_combined["full_context_gain"]["mean"] <= 0
)
if not stop:
raise RuntimeError(
"Oracle passes registered continuation gate; complete downstream work first"
)
write_json(root / "bootstrap_results.json", statistics)
write_json(
root / "oracle_support_analysis.json",
{
"scope": "FROZEN_CARRIER_PRIVILEGED_DIAGNOSTIC_NOT_MATHEMATICAL_UPPER_BOUND",
"cohorts": statistics["cohorts"],
"pooled": statistics["pooled"],
"registered_continuation_gate_pass": False,
"stop_reason": "Combined oracle pooled full-context gain CI lower <=0",
"adequacy": combined["oracle_adequacy"],
"SUPPORT_BOTTLENECK_SUFFICIENT_EXPLANATION": False,
"sufficiency_interpretation": (
"Not established by tested interventions, not universally disproved"
),
"CARRIER_REPRESENTATION_OR_TRAINING_BOTTLENECK": None,
"causal_interpretation": (
"NOT_ISOLATED: oracle did not achieve predefined geometric adequacy. "
"Cannot assert that ideal support was supplied or uniquely blame "
"representation/training."
),
},
)
skipped = {
"status": "NOT_RUN_ORACLE_STOP",
"results": None,
"reason": "Registered combined-oracle continuation gate failed. "
"R1/R2/R3 geometry prototypes and guards have fixture tests, but no real-scene "
"GT-free prediction, score selection or matched training was performed.",
}
write_json(
root / "deployable_support_analysis.json",
{
"baseline_R0": {k: v["designs"]["R0"] for k, v in statistics["cohorts"].items()},
"pooled_R0": pooled["R0"],
"methods": {k: skipped for k in ("R1", "R2", "R3", "R12", "R123")},
"all_primary_oracles_excluded_from_method_ranking": True,
},
)
write_json(
root / "matched_training_analysis.json",
{
"MATCHED_RETRAIN_DONE": False,
"status": "NOT_RUN_ORACLE_STOP",
"current_gain": None,
"redesigned_gain": None,
"matched_config_guard_tested": True,
"train_scale_up_done": False,
"training_scenes_if_eligible": ["ai_001_001", "ai_002_001", "ai_003_001"],
"reason": (
"No deployable redesign qualified for matched training; "
"no checkpoint family created"
),
},
)
for filename, metric in [
("volume_analysis.json", "inside_fraction"),
("candidate_support_analysis.json", "two_view_candidate_fraction"),
]:
write_json(
root / filename,
{
"scope": "diagnostic_oracles_and_R0_only",
"metric": metric,
"per_design": {k: v["AB_geometry"] for k, v in pooled.items()},
"candidate_budget": 128,
"grid_size": [8, 8, 8],
"fixed_neighborhood_radius_m": (1.5**2 + 1 + 1.5**2) ** 0.5 / 2,
"geometry_plan_raw": "raw/oracle_run/geometry_plans.json",
"per_query_all_metrics": "raw/oracle_run/results.json",
"candidate_view_count_is": (
"frustum membership, not GT occlusion-correct visibility"
),
},
)
write_json(
root / "context_selection_analysis.json",
{
**skipped,
"frozen_current_roles": load("qualified_frame_role_lock.json"),
"R3_available_as_geometry_prototype": True,
"R3_execution_on_real_scenes": False,
},
)
holdout = {
"FINAL_HOLDOUT_OPENED": False,
"FINAL_HOLDOUT_STATUS": "NOT_OPENED_NO_METHOD_QUALIFIED",
"independence_status": "INDEPENDENCE_UNRESOLVED",
"second_independent_blocker": "Historical project training/exposure cannot be excluded. "
"No future opening without resolving independence; current candidates were not replaced.",
"candidate_scenes": load("scene_role_lock.json")["FINAL_HOLDOUT_SCENES"],
"geometry_eligible_scenes": load("qualified_frame_role_lock.json")[
"eligible_final_holdout"
],
"method_lock": None,
"model_inference_calls": 0,
"final_holdout_gain": None,
"final_holdout_ci": None,
"wrong_scene_damage": None,
}
write_json(root / "holdout_lock.json", holdout)
write_json(root / "holdout_results.json", {**holdout, "results": None, "not_zero_scores": True})
costs = {}
for design in pooled:
rr = [r for r in rows if r["design"] == design and r["method"] in ("A", "B")]
costs[design] = {
"mean_renderer_and_state_hash_seconds": float(np.mean([r["seconds"] for r in rr])),
"mean_AB_volume_m3": float(np.mean([np.prod(r["volume_extent"]) for r in rr])),
"candidate_budget": 128,
"oracle_lattice_search_size": 512,
"density_voxels": 512,
}
write_json(
root / "cost_analysis.json",
{
"data_download": load("data/download_cost.json"),
"formal_run": load("raw/oracle_run/integrity.json"),
"designs": costs,
"GT_oracle_search_cost_included_in_total_run_time": True,
"formal_run_peak_GPU_memory": None,
"peak_memory_status": "NOT_MEASURED; do not infer peak memory from tensor budget",
"prediction_files_bytes": sum(
p.stat().st_size for p in (root / "raw/oracle_run/predictions").glob("*.npz")
),
"GT_free_runtime_cost": None,
"retraining_cost": None,
},
)
checkpoint = load("preregistration.json")["checkpoint"]
write_json(
root / "checkpoints/manifest.json",
{
"old_checkpoint": checkpoint,
"sha256": sha(Path(checkpoint)),
"new_checkpoints": [],
"training_run": False,
"geometry_intervention_states_are_not_mcss_dynamic_v1_checkpoints": True,
},
)
(root / "checkpoints/README.md").write_text(
"No new training or checkpoint selection was performed. The frozen carrier is referenced "
"by path/hash in manifest.json. Runtime oracle geometry must not be saved as old B-final.\n"
)
tests = load("tests.json")
status = {
"OLD_CHECKPOINT": checkpoint,
"OLD_STATIC_STATUS": "NOT_ESTABLISHED",
"N_EXPOSED_DEV_SCENES": statistics["cohorts"]["exposed"]["n_scenes"],
"N_REDESIGN_DEV_SCENES": statistics["cohorts"]["new_dev"]["n_scenes"],
"N_FINAL_HOLDOUT_SCENES": len(holdout["geometry_eligible_scenes"]),
"FINAL_HOLDOUT_COUNT_NOTE": (
"8 geometry-eligible; historical independence unresolved;12 candidates retained"
),
"OLD_FULL_CONTEXT_GAIN": statistics["cohorts"]["exposed"]["designs"]["R0"][
"full_context_gain"
]["mean"],
"POOLED_CURRENT_FULL_CONTEXT_GAIN": pooled["R0"]["full_context_gain"]["mean"],
"ORACLE_VOLUME_GAIN": pooled["ORACLE_VOLUME"]["full_context_gain"]["mean"],
"ORACLE_SUPPORT_GAIN": pooled["ORACLE_SUPPORT"]["full_context_gain"]["mean"],
"ORACLE_VOLUME_SUPPORT_GAIN": combined["full_context_gain"]["mean"],
"ORACLE_GAIN_COHORT": "7 exposed +10 new development, scene equal",
"GT_FREE_VOLUME_GAIN": None,
"GT_FREE_ALLOCATION_GAIN": None,
"GT_FREE_CONTEXT_GAIN": None,
"BEST_DEV_REDESIGN": None,
"BEST_DEV_GAIN": None,
"BEST_DEV_CI": None,
"SUPPORT_BOTTLENECK_STATUS": "INCONCLUSIVE",
"SUPPORT_BOTTLENECK_SUFFICIENT_EXPLANATION": False,
"CARRIER_REPRESENTATION_OR_TRAINING_BOTTLENECK": "NOT_ISOLATED",
"MATCHED_RETRAIN_DONE": False,
"MATCHED_CURRENT_GAIN": None,
"MATCHED_REDESIGN_GAIN": None,
"FINAL_HOLDOUT_OPENED": False,
"FINAL_HOLDOUT_GAIN": None,
"FINAL_HOLDOUT_CI": None,
"FINAL_HOLDOUT_WRONG_SCENE_DAMAGE": None,
"FINAL_HOLDOUT_STATUS": holdout["FINAL_HOLDOUT_STATUS"],
"FINAL_HOLDOUT_INDEPENDENCE_STATUS": holdout["independence_status"],
"STATIC_STATE_STATUS": "NOT_ESTABLISHED",
"CARRIER_REDESIGN_STATUS": "STOPPED_AT_REGISTERED_ORACLE_GATE",
"DYNAMIC_TTT_RUN": False,
"TESTS": tests["summary"],
"FINAL_INTEGRITY": "PASS",
"REPORT_DIR": str(docs.resolve()),
}
write_json(root / "status.json", status)
terminal = "=" * 60 + "\n3D SUPPORT BOTTLENECK + CARRIER REDESIGN FINAL\n" + "=" * 60 + "\n"
terminal += (
"\n".join(f"{k}={v if isinstance(v, str) else json.dumps(v)}" for k, v in status.items())
+ "\n"
)
(root / "STATUS.md").write_text("```text\n" + terminal + "```\n")
(root / "terminal_summary.txt").write_text(terminal)
def error(design, method):
return pooled[design]["methods"][method]["depth_absrel"]["mean"]
def full(design):
return (error(design, "A") + error(design, "B")) / 2
def line(design):
d = pooled[design]
g, w = d["full_context_gain"], d["wrong_scene_damage"]
return (
f"| {design} | {full(design):.6f} | {error(design, 'anchor'):.6f} | "
f"{g['mean']:+.6f} [{g['ci95'][0]:+.6f}, {g['ci95'][1]:+.6f}] | "
f"{w['mean']:+.6f} [{w['ci95'][0]:+.6f}, {w['ci95'][1]:+.6f}] |\n"
)
header = (
"| 设置 | 完整context AbsRel↓ | Anchor AbsRel↓ | Full-context gain及95%CI | "
"Wrong-scene damage及95%CI |\n|---|---:|---:|---:|---:|\n"
)
oracle_table = header + "".join(
line(d) for d in ("ORACLE_VOLUME", "ORACLE_SUPPORT", "ORACLE_VOLUME_SUPPORT")
)
baseline_table = header + line("R0")
geometry_table = (
"| 设置 | GT surface inside | ≥2-view candidates | GT surface支持邻域 | 正/平/负场景数 |\n"
"|---|---:|---:|---:|---|\n"
)
for name in ("R0", "ORACLE_VOLUME", "ORACLE_SUPPORT", "ORACLE_VOLUME_SUPPORT"):
d = pooled[name]
geo = d["AB_geometry"]
n = d["full_context_gain"]["improved_tied_worse"]
geometry_table += (
f"| {name} | "
+ " | ".join(
f"{geo[m]['mean']:.4%}"
for m in (
"inside_fraction",
"two_view_candidate_fraction",
"supported_surface_fraction",
)
)
+ f" | {n['improved']}/{n['tied']}/{n['worse']} |\n"
)
metrics_table = (
"| 设置/读取 | RGB MSE↓ | SSIM↑ | RMSE↓ | δ1↑ | Opacity | Coverage |\n"
"|---|---:|---:|---:|---:|---:|---:|\n"
)
for name in ("R0", "ORACLE_VOLUME", "ORACLE_SUPPORT", "ORACLE_VOLUME_SUPPORT"):
for role in ("A", "B", "anchor", "prior", "wrong_scene"):
m = pooled[name]["methods"][role]
metrics_table += (
f"| {name}/{role} | "
+ " | ".join(
f"{m[k]['mean']:.6f}"
for k in (
"rgb_mse",
"rgb_ssim",
"depth_rmse",
"depth_delta1",
"opacity",
"coverage",
)
)
+ " |\n"
)
direct_gain = full("R0") - full("ORACLE_VOLUME")
anchor_worse = error("ORACLE_VOLUME", "anchor") - error("R0", "anchor")
gain_change = pooled["ORACLE_VOLUME"]["change_full_context_gain_vs_R0"]["mean"]
share = anchor_worse / gain_change
interpretation = load("audit/scientific_interpretation.json")
readme = f"""# EXP-3D-SUPPORT-BOTTLENECK-REDESIGN-V1
本轮已完成封存、重新生成旧统计、新数据锁定/下载、四组静态oracle归因、回归测试和独立审计。
**SUPPORT_BOTTLENECK_STATUS=INCONCLUSIVE;STATIC_STATE_STATUS=NOT_ESTABLISHED。**
按预先冻结的联合oracle停止规则,没有执行实景GT-free redesign、matched retraining或final holdout。
没有训练controller,没有新Dynamic TTT、FC/CF、history或写入调参。
## 先读结论与限制
Volume确实影响结果:oracle volume单独使同设置下的full-context gain为+0.115349,
scene-bootstrap CI [0.014210,0.217646]。但这不等于完整预测变好了0.115349或0.210574。
R0完整context AbsRel={full("R0"):.6f},oracle volume={full("ORACLE_VOLUME"):.6f},绝对改善仅
**{direct_gain:.6f}**(CI [−0.070911,+0.135352]);anchor则从
{error("R0", "anchor"):.6f}变差到{error("ORACLE_VOLUME", "anchor"):.6f}。
相对gain增加{gain_change:.6f}的代数分解中,约**{share:.1%}来自anchor变差**,不是支持机制的因果贡献率。
完整context的绝对任务收益及其CI另见 `audit/scientific_interpretation.json`。
联合oracle pooled gain={combined["full_context_gain"]["mean"]:+.6f},
CI [{combined["full_context_gain"]["ci95"][0]:+.6f},
{combined["full_context_gain"]["ci95"][1]:+.6f}],
不满足在看结果前锁定的继续门槛。其表面邻域支持仅66.22%,未达75%充分性标准,
因此不能声称“理想支持已经提供,仍然失败,所以一定是网络/训练问题”。
当前8³离散表达、支持定义及训练分布耦合仍未分离。
## 身份、冻结和数据
旧1000A+600B B-final SHA256:`{load("preregistration.json")["checkpoint_sha256"]}`。
旧实验987个文件完整封存;旧3场景234行、旧7场景182行(含Residual A/B)统计精确复算,
160帧volume/support核对通过。新runner中的旧7场景R0五个方法70行与上一轮逐项精确一致。
旧7场景从本轮起统一为 **REDESIGN_DEV_EXPOSED**,不再作为独立泛化证据。
新锁定24个不同官方source volume/archive/asset候选,按合法scene名顺序交替12 DEV、12 HOLDOUT。
只使用Hypersim official-train与research-train;不打开官方validation/protected/test。
下载220,495,946字节,全部bounded HTTP range。10个DEV、8个HOLDOUT通过预先固定的质量和native
geometry阈值;失败候选保留、不替换、不跨角色移动。初始身份锁 `scene_role_lock.json` 未覆盖,
具体合格帧角色另锁在 `qualified_frame_role_lock.json`。本轮实际归因共7 exposed+10 new DEV场景。
**Holdout独立性尚未成立。** ai027001/ai033001有项目旧100scene池曝光标记,其他候选也无法仅凭
不在旧100池就排除后续365scene扩展的使用;缺少逐场景历史执行日志。它们未参加当前B-final训练、
不在旧7场景内,但不能据此声称项目历史“从未见过/未调过”。全部holdout在本轮没有模型前向或query
score,保持保护,`FINAL_HOLDOUT_INDEPENDENCE_STATUS=INDEPENDENCE_UNRESOLVED`。
即便未来某方法过开发gate,也必须先解决此独立性阻塞。这里的8仅指几何合格数。
## 方法合同与oracle例外
固定网络权重、8³状态、128唯一candidate IDs、固定renderer64samples及原context/query列表。
ORACLE_VOLUME用全部primary query GT surface在anchor坐标中的包围盒,最小轴长1m并加5%边距;
同场景A/B/anchor共享该bounds。ORACLE_SUPPORT在当前bounds的512合法voxel centers中选128个,
优先≥2 context frusta,然后到context GT表面的距离,再view count与ID稳定排序;联合设置只组合
这两个因素。points、normalized_xyz、scatter IDs和bounds同步;没有偷偷增加候选或网络。
这是**固定网格内的有GT诊断,不是数学upper bound,也不保证物理上完美表面支持**。
候选的≥2计数仅是camera frustum membership,不等于遮挡正确的表面可见性。
R0先封存;oracle为构造bounds必须在自身封存前读取query GT geometry,日志明确标记
`PRESEAL_DIAGNOSTIC_EXCEPTION`。所有评分RGB/depth在全部204 states封存后读取。
Oracle状态对锁定query集合有条件,绝不称部署时query-independent;query cameras在wrong-scene
替换时数值不变。参数合同指出这些同shape运行时干预仍改变训练分布,不能当作公平训练后的新方法。
主表采用query均值→scene等权,10,000 paired scene bootstrap、seed20260927、95%percentile CI。
Full-context gain=anchor−mean(A,B),wrong-scene damage=cyclic donor A−correct A;
donor在各cohort内轮换。
17场景pooled和7/10分层统计同时保留,不把旧7重新包装成独立确认。
## DIAGNOSTIC UPPER BOUNDS(名义诊断,非保证的上界)
{oracle_table}
## DEPLOYABLE METHODS
{baseline_table}
R1 adaptive-volume、R2 camera-overlap allocation、R3 camera-only context selection、R12/R123:
**NOT_RUN_ORACLE_STOP,结果为null。** 三类几何原型及隔离测试已实现;没有实景运行、近远深度
先验调优或按分数选方法。Matched current/redesigned两条训练和train-scale-up均未启动,
不存在“最佳新carrier”。这些空项不是0分或失败训练的伪造结果。
## 支持、集中度与完整任务指标
{geometry_table}
主要表面支持距离固定为1.172604m(旧voxel半对角线),避免扩大volume后自动扩大容差。
同时保存各新voxel尺度下的描述性邻域数,不能替代固定半径主诊断。
联合oracle inside=100%、two-view=93.18%,但surface-neighborhood=66.22%<75%,充分性失败。
Volume-only和联合各11/17场景gain为正;联合gain的正贡献top1≈25.7%、top3≈64.8%。
所有LOSO、集中度、每场景完整结果和描述性support/gain相关都在 `bootstrap_results.json`。
相关不建立因果。相同候选数并不意味着相同物理voxel分辨率,所有bounds/extent保存在raw计划中。
{metrics_table}
Coverage仍为opacity>1e-6,不是真实可见性;所有GT-valid像素均参与depth指标,未按预测opacity筛掉
坏像素。Oracle volume也改变ray integration范围与anchor prior;没有证据证明正relative gain完全
独立于opacity/coverage。由于没有方法达到最终gate,不做静态资格成功宣称。
## 停止规则与12个归因问题
1. **主要来自volume、candidate还是representation?** Volume有直接干预证据,但不是充分解释;
candidate-only恶化相对gain,联合不稳定。representation/训练/分辨率尚未被独立隔离。
2. **Oracle volume alone恢复多少?** pooled gain +0.115349;相对R0 gain提升+0.210574,但完整context
绝对AbsRel只改善0.034169,83.8%的相对提升来自anchor变差。
3. **Oracle support alone恢复多少?** gain −0.245025,较R0更差0.149800;
frustum支持提升不等于任务收益。
4. **Volume+support恢复多少?** gain +0.089622,较R0增加0.184847,但CI跨零;完整context绝对改善仅
0.008442,不能称静态carrier获救。
5. **GT-free volume恢复多少?** 未运行,遵守联合oracle停止条件,不能填oracle成绩。
6. **Camera-overlap allocation恢复多少?** 未运行;候选几何原型/预算测试可用。
7. **Context geometry selection恢复多少?** 未运行;camera-only确定性和输入隔离测试可用。
8. **哪个因素贡献最大?** 这些冻结权重诊断中volume对relative gain的改变最大;这是干预分解,不是
对全部失败的因果占比,也不是部署收益。
9. **支持修复后full context终于优于anchor?** Volume-only在17场景pooled有显著正gain;联合设置未过
预定稳定性门槛,且没有充分修复query surface support。不能挑volume-only替换联合停止检验。
10. **Wrong-scene终于稳定变差?** 没有;所有pooled oracle的wrong-scene damage CI均跨零。
11. **若oracle能救而GT-free不能救,可观察性瓶颈是什么?** 本轮未测试GT-free,不能作这个归因;
使用query GT包围盒天然不可部署,不说明camera-only能够恢复相同信息。
12. **为什么转向architecture/training而不继续堆volume?** 联合oracle未获稳定增益,且固定网格下
query表面支持仍有限。下一步应先分离离散表达、训练分布与prior/renderer效应;不能把本轮解释为
已证明“完美support也无效”,或直接归咎所有scene representations。
注册条件要求联合oracle pooled CI lower>0且new DEV mean>0才能继续。Pooled下界−0.026782未通过;
new DEV联合gain虽为+0.156328,其单独CI下界也略低于0(约−0.000015)。不改阈值或gate。
因此 `SUPPORT_BOTTLENECK_SUFFICIENT_EXPLANATION=false` 表示“尚未建立充分解释”;由于干预充分性
未达标,`CARRIER_REPRESENTATION_OR_TRAINING_BOTTLENECK=NOT_ISOLATED`,不虚构因果证明。
`FINAL_HOLDOUT_STATUS=NOT_OPENED_NO_METHOD_QUALIFIED`,并有历史独立性未解决的第二阻塞。
## 复现与交付
完整测试:**{tests["summary"]}**;跳过项是缺少可选历史V5 step4500权重。新增59项包括holdout门禁、
oracle部署拒绝、GT-free参数隔离、唯一候选预算、context确定性、matched配置、scenebootstrap和真实
small end-to-end封存/GT/相机/零写入测试。工程测试通过不等于科学资格通过。
`commands.sh summary`不加载媒体或模型即可重算所有统计;`commands.sh reproduce`在新目录使用已冻结
数据重做同一DEV干预(拒绝覆盖原目录),从不读取holdout模型输入。数据下载命令也在文件中。
可直接从仓库保存的raw重算:
```bash
.venv/bin/python scripts/report_support_redesign.py --raw-only \\
--output docs/experiments/EXP-3D-SUPPORT-BOTTLENECK-REDESIGN-V1 \\
--docs /tmp/support-redesign-recomputed
```
`raw/oracle_run/`保留680个预测NPZ、完整metrics、204sealed states、geometry plans、GT访问日志和源文件
hashes;docs中的压缩raw可重算正式统计。`figures/`保存PNG/SVG科学图;`audit/`保存旧结果复算、独立
审计、解释和环境;`checkpoints/`只索引原B-final,没有新训练checkpoint。大型媒体、tensor/prediction
文件留在outputs并有hash清单,压缩文本证据在docs/artifacts下。全部旧实验保持不变。

"""
# Keep interpretation as structured evidence; full report refers to its exact CI values.
assert interpretation
(root / "README.md").write_text(readme)
fields = [
"cohort",
"scene_id",
"query_id",
"design",
"method",
"depth_absrel",
"rgb_mse",
"rgb_ssim",
"depth_rmse",
"depth_delta1",
"opacity",
"coverage",
"inside_fraction",
"two_view_candidate_fraction",
"supported_surface_fraction",
"seconds",
]
with (root / "raw/results.csv").open("w") as f:
writer = csv.DictWriter(f, fieldnames=fields, extrasaction="ignore")
writer.writeheader()
writer.writerows(rows)
(docs / "raw").mkdir(exist_ok=True)
(docs / "raw/oracle_results.json.gz").write_bytes(
gzip.compress(json.dumps(rows, sort_keys=True).encode(), mtime=0)
)
artifact_records = []
for directory in ("raw/oracle_run", "audit", "data", "checkpoints"):
for path in sorted((root / directory).rglob("*")):
rel = path.relative_to(root)
if (
not path.is_file()
or path.suffix
not in {".json", ".jsonl", ".md", ".txt", ".csv", ".py", ".patch", ".log"}
or "prepared" in rel.parts
or "raw" in path.relative_to(root / directory).parts
):
continue
target = docs / "artifacts" / (str(rel) + ".gz")
target.parent.mkdir(parents=True, exist_ok=True)
target.write_bytes(gzip.compress(path.read_bytes(), mtime=0))
artifact_records.append(
{
"output_path": str(rel),
"artifact": str(target.relative_to(docs)),
"sha256": sha(path),
"compressed_sha256": sha(target),
}
)
write_json(root / "artifact_manifest.json", artifact_records)
for path in root.iterdir():
if path.is_file():
shutil.copy2(path, docs / path.name)
for directory in ("figures", "checkpoints"):
shutil.copytree(root / directory, docs / directory, dirs_exist_ok=True)
# Important readable audits, with bulk locks/logs in the compressed archive.
(docs / "audit").mkdir(exist_ok=True)
for name in (
"scientific_interpretation.json",
"scientific_interpretation.md",
"final_independent_audit.json",
"old_statistics_reproduction.json",
"environment.json",
):
if (root / "audit" / name).exists():
shutil.copy2(root / "audit" / name, docs / "audit" / name)
print(terminal)
if __name__ == "__main__":
p = argparse.ArgumentParser(description=__doc__)
p.add_argument("--output", required=True)
p.add_argument("--docs", required=True)
p.add_argument("--raw-only", action="store_true")
a = p.parse_args()
main(a.output, a.docs, raw_only=a.raw_only)