dagzoo 0.9.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. dagzoo-0.9.7/.github/workflows/benchmark.yml +148 -0
  2. dagzoo-0.9.7/.github/workflows/docs.yml +149 -0
  3. dagzoo-0.9.7/.github/workflows/package.yml +107 -0
  4. dagzoo-0.9.7/.github/workflows/test.yml +41 -0
  5. dagzoo-0.9.7/.gitignore +66 -0
  6. dagzoo-0.9.7/.importlinter +29 -0
  7. dagzoo-0.9.7/.pre-commit-config.yaml +41 -0
  8. dagzoo-0.9.7/AGENTS.md +12 -0
  9. dagzoo-0.9.7/CHANGELOG.md +1036 -0
  10. dagzoo-0.9.7/CLAUDE.md +114 -0
  11. dagzoo-0.9.7/LICENSE +21 -0
  12. dagzoo-0.9.7/PKG-INFO +193 -0
  13. dagzoo-0.9.7/README.md +179 -0
  14. dagzoo-0.9.7/benchmarks/baselines/cpu_smoke.json +17 -0
  15. dagzoo-0.9.7/benchmarks/baselines/cpu_standard.json +17 -0
  16. dagzoo-0.9.7/configs/benchmark_cpu.yaml +61 -0
  17. dagzoo-0.9.7/configs/benchmark_cuda_desktop.yaml +61 -0
  18. dagzoo-0.9.7/configs/benchmark_cuda_h100.yaml +61 -0
  19. dagzoo-0.9.7/configs/benchmark_filter_test.yaml +40 -0
  20. dagzoo-0.9.7/configs/benchmark_medium_cuda.yaml +54 -0
  21. dagzoo-0.9.7/configs/default.yaml +70 -0
  22. dagzoo-0.9.7/configs/preset_cuda_h100.yaml +55 -0
  23. dagzoo-0.9.7/configs/preset_diagnostics_on.yaml +21 -0
  24. dagzoo-0.9.7/configs/preset_filter_benchmark_smoke.yaml +50 -0
  25. dagzoo-0.9.7/configs/preset_lineage_benchmark_smoke.yaml +41 -0
  26. dagzoo-0.9.7/configs/preset_many_class_benchmark_smoke.yaml +45 -0
  27. dagzoo-0.9.7/configs/preset_many_class_generate_smoke.yaml +26 -0
  28. dagzoo-0.9.7/configs/preset_mechanism_baseline_benchmark_smoke.yaml +48 -0
  29. dagzoo-0.9.7/configs/preset_mechanism_gp_benchmark_smoke.yaml +49 -0
  30. dagzoo-0.9.7/configs/preset_mechanism_gp_filter_smoke.yaml +52 -0
  31. dagzoo-0.9.7/configs/preset_mechanism_gp_generate_smoke.yaml +32 -0
  32. dagzoo-0.9.7/configs/preset_mechanism_piecewise_benchmark_smoke.yaml +50 -0
  33. dagzoo-0.9.7/configs/preset_mechanism_piecewise_filter_smoke.yaml +53 -0
  34. dagzoo-0.9.7/configs/preset_mechanism_piecewise_generate_smoke.yaml +33 -0
  35. dagzoo-0.9.7/configs/preset_missingness_mar.yaml +17 -0
  36. dagzoo-0.9.7/configs/preset_missingness_mcar.yaml +15 -0
  37. dagzoo-0.9.7/configs/preset_missingness_mnar.yaml +16 -0
  38. dagzoo-0.9.7/configs/preset_noise_benchmark_smoke.yaml +52 -0
  39. dagzoo-0.9.7/configs/preset_noise_gaussian_generate_smoke.yaml +32 -0
  40. dagzoo-0.9.7/configs/preset_noise_laplace_generate_smoke.yaml +32 -0
  41. dagzoo-0.9.7/configs/preset_noise_mixture_generate_smoke.yaml +35 -0
  42. dagzoo-0.9.7/configs/preset_noise_student_t_generate_smoke.yaml +32 -0
  43. dagzoo-0.9.7/configs/preset_shift_benchmark_smoke.yaml +47 -0
  44. dagzoo-0.9.7/configs/preset_shift_graph_drift_generate_smoke.yaml +30 -0
  45. dagzoo-0.9.7/configs/preset_shift_mechanism_drift_generate_smoke.yaml +30 -0
  46. dagzoo-0.9.7/configs/preset_shift_mixed_generate_smoke.yaml +30 -0
  47. dagzoo-0.9.7/configs/preset_shift_noise_drift_generate_smoke.yaml +30 -0
  48. dagzoo-0.9.7/docs/development/backlog_decision_rules.md +119 -0
  49. dagzoo-0.9.7/docs/development/codebase-navigation.md +87 -0
  50. dagzoo-0.9.7/docs/development/config-resolution.md +200 -0
  51. dagzoo-0.9.7/docs/development/design-decisions.md +354 -0
  52. dagzoo-0.9.7/docs/development/harness_audit.md +108 -0
  53. dagzoo-0.9.7/docs/development/issue_authoring.md +67 -0
  54. dagzoo-0.9.7/docs/development/keyed-rng.md +222 -0
  55. dagzoo-0.9.7/docs/development/linear.md +105 -0
  56. dagzoo-0.9.7/docs/development/module-dependency-map.md +104 -0
  57. dagzoo-0.9.7/docs/development/roadmap.md +455 -0
  58. dagzoo-0.9.7/docs/features/benchmark-guardrails.md +204 -0
  59. dagzoo-0.9.7/docs/features/diagnostics.md +80 -0
  60. dagzoo-0.9.7/docs/features/many-class.md +53 -0
  61. dagzoo-0.9.7/docs/features/mechanism-diversity.md +137 -0
  62. dagzoo-0.9.7/docs/features/missingness.md +67 -0
  63. dagzoo-0.9.7/docs/features/noise.md +70 -0
  64. dagzoo-0.9.7/docs/features/shift.md +103 -0
  65. dagzoo-0.9.7/docs/how-it-works.md +403 -0
  66. dagzoo-0.9.7/docs/output-format.md +445 -0
  67. dagzoo-0.9.7/docs/request-file-contract.md +214 -0
  68. dagzoo-0.9.7/docs/transforms.md +1409 -0
  69. dagzoo-0.9.7/docs/usage-guide.md +318 -0
  70. dagzoo-0.9.7/pyproject.toml +79 -0
  71. dagzoo-0.9.7/reference/PAPERS.md +37 -0
  72. dagzoo-0.9.7/reference/linear_issue_map_2026-03-08.json +1099 -0
  73. dagzoo-0.9.7/reference/literature_evidence_2026.md +95 -0
  74. dagzoo-0.9.7/scripts/README.md +119 -0
  75. dagzoo-0.9.7/scripts/benchmark-smoke.sh +21 -0
  76. dagzoo-0.9.7/scripts/benchmark-suite.sh +26 -0
  77. dagzoo-0.9.7/scripts/bump-version.sh +108 -0
  78. dagzoo-0.9.7/scripts/cleanup_local_artifacts.py +95 -0
  79. dagzoo-0.9.7/scripts/dev +4 -0
  80. dagzoo-0.9.7/scripts/dev.py +150 -0
  81. dagzoo-0.9.7/scripts/devlib/__init__.py +1 -0
  82. dagzoo-0.9.7/scripts/devlib/common.py +52 -0
  83. dagzoo-0.9.7/scripts/devlib/contract.py +51 -0
  84. dagzoo-0.9.7/scripts/devlib/deps.py +392 -0
  85. dagzoo-0.9.7/scripts/devlib/doctor.py +98 -0
  86. dagzoo-0.9.7/scripts/devlib/impact.py +252 -0
  87. dagzoo-0.9.7/scripts/devlib/review_policy.py +94 -0
  88. dagzoo-0.9.7/scripts/devlib/verify.py +175 -0
  89. dagzoo-0.9.7/scripts/docs/check_built_output_links.py +203 -0
  90. dagzoo-0.9.7/scripts/docs/check_links.py +294 -0
  91. dagzoo-0.9.7/scripts/docs/check_repo_paths.py +190 -0
  92. dagzoo-0.9.7/scripts/docs/sync_hugo_content.py +367 -0
  93. dagzoo-0.9.7/scripts/effective_diversity_audit.py +23 -0
  94. dagzoo-0.9.7/scripts/fetch-additional-references.sh +32 -0
  95. dagzoo-0.9.7/scripts/generate-default.sh +10 -0
  96. dagzoo-0.9.7/scripts/generate-from-config.sh +37 -0
  97. dagzoo-0.9.7/scripts/generate-h100.sh +10 -0
  98. dagzoo-0.9.7/scripts/generate-many-class.sh +10 -0
  99. dagzoo-0.9.7/scripts/generate-missingness.sh +43 -0
  100. dagzoo-0.9.7/scripts/generate-noise.sh +36 -0
  101. dagzoo-0.9.7/scripts/generate-smoke.sh +31 -0
  102. dagzoo-0.9.7/scripts/linear/github_to_linear.py +897 -0
  103. dagzoo-0.9.7/scripts/linear/seed_harness_backlog.py +475 -0
  104. dagzoo-0.9.7/site/README.md +37 -0
  105. dagzoo-0.9.7/site/assets/scss/_styles_project.scss +350 -0
  106. dagzoo-0.9.7/site/assets/scss/_variables_project.scss +28 -0
  107. dagzoo-0.9.7/site/content/_index.md +46 -0
  108. dagzoo-0.9.7/site/content/docs/_index.md +28 -0
  109. dagzoo-0.9.7/site/content/docs/features/_index.md +8 -0
  110. dagzoo-0.9.7/site/go.mod +5 -0
  111. dagzoo-0.9.7/site/go.sum +4 -0
  112. dagzoo-0.9.7/site/hugo.yaml +67 -0
  113. dagzoo-0.9.7/site/layouts/partials/footer/center.html +4 -0
  114. dagzoo-0.9.7/site/layouts/partials/hooks/head-end.html +48 -0
  115. dagzoo-0.9.7/site/layouts/partials/page-meta-links.html +57 -0
  116. dagzoo-0.9.7/site/package-lock.json +928 -0
  117. dagzoo-0.9.7/site/package.json +11 -0
  118. dagzoo-0.9.7/site/postcss.config.js +3 -0
  119. dagzoo-0.9.7/src/dagzoo/__init__.py +27 -0
  120. dagzoo-0.9.7/src/dagzoo/__main__.py +4 -0
  121. dagzoo-0.9.7/src/dagzoo/bench/__init__.py +13 -0
  122. dagzoo-0.9.7/src/dagzoo/bench/baseline.py +128 -0
  123. dagzoo-0.9.7/src/dagzoo/bench/collectors.py +515 -0
  124. dagzoo-0.9.7/src/dagzoo/bench/constants.py +50 -0
  125. dagzoo-0.9.7/src/dagzoo/bench/corpus_probe.py +200 -0
  126. dagzoo-0.9.7/src/dagzoo/bench/guardrails.py +399 -0
  127. dagzoo-0.9.7/src/dagzoo/bench/metrics.py +141 -0
  128. dagzoo-0.9.7/src/dagzoo/bench/micro.py +129 -0
  129. dagzoo-0.9.7/src/dagzoo/bench/preset_specs.py +153 -0
  130. dagzoo-0.9.7/src/dagzoo/bench/report.py +174 -0
  131. dagzoo-0.9.7/src/dagzoo/bench/runtime_support.py +219 -0
  132. dagzoo-0.9.7/src/dagzoo/bench/stage_metrics.py +224 -0
  133. dagzoo-0.9.7/src/dagzoo/bench/suite.py +916 -0
  134. dagzoo-0.9.7/src/dagzoo/bench/throughput.py +208 -0
  135. dagzoo-0.9.7/src/dagzoo/cli/__init__.py +50 -0
  136. dagzoo-0.9.7/src/dagzoo/cli/commands/__init__.py +1 -0
  137. dagzoo-0.9.7/src/dagzoo/cli/commands/benchmark.py +312 -0
  138. dagzoo-0.9.7/src/dagzoo/cli/commands/diagnostics.py +133 -0
  139. dagzoo-0.9.7/src/dagzoo/cli/commands/filter.py +35 -0
  140. dagzoo-0.9.7/src/dagzoo/cli/commands/generate.py +164 -0
  141. dagzoo-0.9.7/src/dagzoo/cli/commands/hardware.py +18 -0
  142. dagzoo-0.9.7/src/dagzoo/cli/commands/request.py +48 -0
  143. dagzoo-0.9.7/src/dagzoo/cli/common.py +35 -0
  144. dagzoo-0.9.7/src/dagzoo/cli/effective_config.py +60 -0
  145. dagzoo-0.9.7/src/dagzoo/cli/entrypoint.py +13 -0
  146. dagzoo-0.9.7/src/dagzoo/cli/parser.py +431 -0
  147. dagzoo-0.9.7/src/dagzoo/cli/parsing.py +214 -0
  148. dagzoo-0.9.7/src/dagzoo/cli/request_execution.py +230 -0
  149. dagzoo-0.9.7/src/dagzoo/config/__init__.py +122 -0
  150. dagzoo-0.9.7/src/dagzoo/config/constants.py +99 -0
  151. dagzoo-0.9.7/src/dagzoo/config/io.py +38 -0
  152. dagzoo-0.9.7/src/dagzoo/config/models.py +737 -0
  153. dagzoo-0.9.7/src/dagzoo/config/normalization.py +162 -0
  154. dagzoo-0.9.7/src/dagzoo/config/request.py +275 -0
  155. dagzoo-0.9.7/src/dagzoo/config/resources/__init__.py +1 -0
  156. dagzoo-0.9.7/src/dagzoo/config/resources/default.yaml +70 -0
  157. dagzoo-0.9.7/src/dagzoo/config/resources/preset_missingness_mar.yaml +17 -0
  158. dagzoo-0.9.7/src/dagzoo/config/resources/preset_missingness_mcar.yaml +15 -0
  159. dagzoo-0.9.7/src/dagzoo/config/resources/preset_missingness_mnar.yaml +16 -0
  160. dagzoo-0.9.7/src/dagzoo/config/rows.py +276 -0
  161. dagzoo-0.9.7/src/dagzoo/config/scalars.py +121 -0
  162. dagzoo-0.9.7/src/dagzoo/converters/__init__.py +6 -0
  163. dagzoo-0.9.7/src/dagzoo/converters/categorical.py +55 -0
  164. dagzoo-0.9.7/src/dagzoo/converters/numeric.py +45 -0
  165. dagzoo-0.9.7/src/dagzoo/core/__init__.py +13 -0
  166. dagzoo-0.9.7/src/dagzoo/core/config_resolution.py +703 -0
  167. dagzoo-0.9.7/src/dagzoo/core/constants.py +3 -0
  168. dagzoo-0.9.7/src/dagzoo/core/dataset.py +127 -0
  169. dagzoo-0.9.7/src/dagzoo/core/execution_sampling_common.py +75 -0
  170. dagzoo-0.9.7/src/dagzoo/core/execution_semantics.py +957 -0
  171. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/__init__.py +1 -0
  172. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/batch_common.py +320 -0
  173. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/batch_functions.py +651 -0
  174. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/batched.py +944 -0
  175. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/grouped.py +142 -0
  176. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/metadata.py +140 -0
  177. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/plan_types.py +672 -0
  178. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/prepare.py +87 -0
  179. dagzoo-0.9.7/src/dagzoo/core/fixed_layout/runtime.py +719 -0
  180. dagzoo-0.9.7/src/dagzoo/core/generation_context.py +94 -0
  181. dagzoo-0.9.7/src/dagzoo/core/generation_runtime.py +510 -0
  182. dagzoo-0.9.7/src/dagzoo/core/layout.py +259 -0
  183. dagzoo-0.9.7/src/dagzoo/core/layout_types.py +52 -0
  184. dagzoo-0.9.7/src/dagzoo/core/metadata.py +79 -0
  185. dagzoo-0.9.7/src/dagzoo/core/metric_constants.py +70 -0
  186. dagzoo-0.9.7/src/dagzoo/core/metrics_torch.py +600 -0
  187. dagzoo-0.9.7/src/dagzoo/core/node_pipeline.py +89 -0
  188. dagzoo-0.9.7/src/dagzoo/core/noise_runtime.py +100 -0
  189. dagzoo-0.9.7/src/dagzoo/core/request_handoff.py +397 -0
  190. dagzoo-0.9.7/src/dagzoo/core/shift.py +234 -0
  191. dagzoo-0.9.7/src/dagzoo/core/staged_artifacts.py +41 -0
  192. dagzoo-0.9.7/src/dagzoo/core/trees.py +138 -0
  193. dagzoo-0.9.7/src/dagzoo/core/validation.py +147 -0
  194. dagzoo-0.9.7/src/dagzoo/diagnostics/__init__.py +20 -0
  195. dagzoo-0.9.7/src/dagzoo/diagnostics/coverage.py +579 -0
  196. dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/__init__.py +39 -0
  197. dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/artifacts.py +299 -0
  198. dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/calibration.py +280 -0
  199. dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/compare.py +201 -0
  200. dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/runner.py +167 -0
  201. dagzoo-0.9.7/src/dagzoo/diagnostics/metrics.py +112 -0
  202. dagzoo-0.9.7/src/dagzoo/diagnostics/types.py +42 -0
  203. dagzoo-0.9.7/src/dagzoo/diagnostics_targets.py +75 -0
  204. dagzoo-0.9.7/src/dagzoo/filtering/__init__.py +6 -0
  205. dagzoo-0.9.7/src/dagzoo/filtering/deferred_filter.py +572 -0
  206. dagzoo-0.9.7/src/dagzoo/filtering/deferred_filter_artifacts.py +217 -0
  207. dagzoo-0.9.7/src/dagzoo/filtering/deferred_filter_replay.py +97 -0
  208. dagzoo-0.9.7/src/dagzoo/filtering/extra_trees_filter.py +315 -0
  209. dagzoo-0.9.7/src/dagzoo/functions/__init__.py +1 -0
  210. dagzoo-0.9.7/src/dagzoo/functions/_rng_helpers.py +15 -0
  211. dagzoo-0.9.7/src/dagzoo/functions/activations.py +200 -0
  212. dagzoo-0.9.7/src/dagzoo/functions/multi.py +152 -0
  213. dagzoo-0.9.7/src/dagzoo/functions/random_functions.py +85 -0
  214. dagzoo-0.9.7/src/dagzoo/graph/__init__.py +5 -0
  215. dagzoo-0.9.7/src/dagzoo/graph/dag_sampler.py +86 -0
  216. dagzoo-0.9.7/src/dagzoo/hardware.py +140 -0
  217. dagzoo-0.9.7/src/dagzoo/hardware_policy.py +216 -0
  218. dagzoo-0.9.7/src/dagzoo/io/__init__.py +37 -0
  219. dagzoo-0.9.7/src/dagzoo/io/lineage_artifact.py +101 -0
  220. dagzoo-0.9.7/src/dagzoo/io/lineage_schema.py +322 -0
  221. dagzoo-0.9.7/src/dagzoo/io/parquet_writer.py +585 -0
  222. dagzoo-0.9.7/src/dagzoo/math/__init__.py +21 -0
  223. dagzoo-0.9.7/src/dagzoo/math/random_matrices.py +206 -0
  224. dagzoo-0.9.7/src/dagzoo/math/utils.py +79 -0
  225. dagzoo-0.9.7/src/dagzoo/postprocess/__init__.py +5 -0
  226. dagzoo-0.9.7/src/dagzoo/postprocess/postprocess.py +349 -0
  227. dagzoo-0.9.7/src/dagzoo/rng.py +102 -0
  228. dagzoo-0.9.7/src/dagzoo/sampling/__init__.py +8 -0
  229. dagzoo-0.9.7/src/dagzoo/sampling/correlated.py +117 -0
  230. dagzoo-0.9.7/src/dagzoo/sampling/missingness.py +212 -0
  231. dagzoo-0.9.7/src/dagzoo/sampling/noise.py +342 -0
  232. dagzoo-0.9.7/src/dagzoo/sampling/random_points.py +60 -0
  233. dagzoo-0.9.7/src/dagzoo/sampling/random_weights.py +63 -0
  234. dagzoo-0.9.7/src/dagzoo/types.py +19 -0
  235. dagzoo-0.9.7/tests/conftest.py +128 -0
  236. dagzoo-0.9.7/tests/test_activations.py +75 -0
  237. dagzoo-0.9.7/tests/test_benchmark_cli.py +665 -0
  238. dagzoo-0.9.7/tests/test_benchmark_regression.py +122 -0
  239. dagzoo-0.9.7/tests/test_benchmark_stage_metrics.py +258 -0
  240. dagzoo-0.9.7/tests/test_benchmark_suite.py +2135 -0
  241. dagzoo-0.9.7/tests/test_benchmark_throughput.py +351 -0
  242. dagzoo-0.9.7/tests/test_categorical_converter.py +103 -0
  243. dagzoo-0.9.7/tests/test_cleanup_local_artifacts.py +137 -0
  244. dagzoo-0.9.7/tests/test_cli_contract.py +50 -0
  245. dagzoo-0.9.7/tests/test_cli_outputs.py +341 -0
  246. dagzoo-0.9.7/tests/test_cli_validation.py +1224 -0
  247. dagzoo-0.9.7/tests/test_config.py +660 -0
  248. dagzoo-0.9.7/tests/test_config_resolution.py +459 -0
  249. dagzoo-0.9.7/tests/test_corpus_probe.py +225 -0
  250. dagzoo-0.9.7/tests/test_correlated.py +82 -0
  251. dagzoo-0.9.7/tests/test_dag_sampler.py +107 -0
  252. dagzoo-0.9.7/tests/test_deferred_filter.py +503 -0
  253. dagzoo-0.9.7/tests/test_dev_tooling.py +331 -0
  254. dagzoo-0.9.7/tests/test_diagnostics_coverage.py +243 -0
  255. dagzoo-0.9.7/tests/test_diagnostics_metrics.py +319 -0
  256. dagzoo-0.9.7/tests/test_diversity_audit_cli.py +86 -0
  257. dagzoo-0.9.7/tests/test_docs_scripts.py +231 -0
  258. dagzoo-0.9.7/tests/test_effective_diversity_audit.py +502 -0
  259. dagzoo-0.9.7/tests/test_execution_semantics.py +938 -0
  260. dagzoo-0.9.7/tests/test_extra_trees_filter.py +445 -0
  261. dagzoo-0.9.7/tests/test_filter_calibration.py +328 -0
  262. dagzoo-0.9.7/tests/test_fixed_layout_batched.py +900 -0
  263. dagzoo-0.9.7/tests/test_generate.py +2459 -0
  264. dagzoo-0.9.7/tests/test_github_to_linear.py +688 -0
  265. dagzoo-0.9.7/tests/test_hardware.py +258 -0
  266. dagzoo-0.9.7/tests/test_lineage_artifact.py +65 -0
  267. dagzoo-0.9.7/tests/test_lineage_schema.py +233 -0
  268. dagzoo-0.9.7/tests/test_mechanism_config.py +109 -0
  269. dagzoo-0.9.7/tests/test_metrics_torch.py +69 -0
  270. dagzoo-0.9.7/tests/test_missingness_sampling.py +145 -0
  271. dagzoo-0.9.7/tests/test_multi_function.py +250 -0
  272. dagzoo-0.9.7/tests/test_node_pipeline.py +202 -0
  273. dagzoo-0.9.7/tests/test_noise_config.py +115 -0
  274. dagzoo-0.9.7/tests/test_noise_presets.py +36 -0
  275. dagzoo-0.9.7/tests/test_noise_sampling.py +274 -0
  276. dagzoo-0.9.7/tests/test_numeric_converter.py +82 -0
  277. dagzoo-0.9.7/tests/test_parquet_writer.py +524 -0
  278. dagzoo-0.9.7/tests/test_postprocess.py +344 -0
  279. dagzoo-0.9.7/tests/test_random_functions.py +293 -0
  280. dagzoo-0.9.7/tests/test_random_matrices.py +39 -0
  281. dagzoo-0.9.7/tests/test_random_points.py +73 -0
  282. dagzoo-0.9.7/tests/test_request_config.py +440 -0
  283. dagzoo-0.9.7/tests/test_request_execution.py +404 -0
  284. dagzoo-0.9.7/tests/test_request_handoff.py +152 -0
  285. dagzoo-0.9.7/tests/test_resolution_contract.py +168 -0
  286. dagzoo-0.9.7/tests/test_rng.py +120 -0
  287. dagzoo-0.9.7/tests/test_sampling.py +77 -0
  288. dagzoo-0.9.7/tests/test_seed_harness_backlog.py +233 -0
  289. dagzoo-0.9.7/tests/test_shift_presets.py +32 -0
  290. dagzoo-0.9.7/tests/test_shift_runtime.py +184 -0
  291. dagzoo-0.9.7/tests/test_trees.py +104 -0
  292. dagzoo-0.9.7/uv.lock +1239 -0
@@ -0,0 +1,148 @@
1
+ name: benchmark-suite
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+ schedule:
7
+ - cron: "0 10 * * 1"
8
+ workflow_dispatch:
9
+
10
+ concurrency:
11
+ group: benchmark-suite-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ benchmark-smoke-pr:
16
+ if: github.event_name == 'pull_request'
17
+ runs-on: ubuntu-latest
18
+ permissions:
19
+ contents: read
20
+ pull-requests: write
21
+
22
+ steps:
23
+ - name: Checkout
24
+ uses: actions/checkout@v4
25
+
26
+ - name: Setup Python
27
+ uses: actions/setup-python@v5
28
+ with:
29
+ python-version: '3.13'
30
+
31
+ - name: Install uv
32
+ run: python -m pip install --upgrade uv
33
+
34
+ - name: Install dependencies
35
+ run: uv sync --group dev
36
+
37
+ - name: Run smoke benchmark (CPU)
38
+ run: |
39
+ uv run dagzoo benchmark \
40
+ --suite smoke \
41
+ --preset cpu \
42
+ --baseline benchmarks/baselines/cpu_smoke.json \
43
+ --warn-threshold-pct 10 \
44
+ --fail-threshold-pct 20 \
45
+ --fail-on-regression \
46
+ --hardware-policy none \
47
+ --no-memory \
48
+ --out-dir benchmarks/results/ci_smoke
49
+
50
+ - name: Upload smoke benchmark artifacts
51
+ if: always()
52
+ uses: actions/upload-artifact@v4
53
+ with:
54
+ name: benchmark-smoke-pr
55
+ path: benchmarks/results/ci_smoke
56
+ if-no-files-found: warn
57
+
58
+ - name: Comment smoke benchmark summary on PR
59
+ if: always()
60
+ uses: actions/github-script@v7
61
+ with:
62
+ script: |
63
+ const fs = require('fs');
64
+ const marker = '<!-- dagzoo-benchmark-smoke -->';
65
+ const summaryPath = 'benchmarks/results/ci_smoke/summary.md';
66
+
67
+ let summary = 'Benchmark summary file was not generated.';
68
+ if (fs.existsSync(summaryPath)) {
69
+ summary = fs.readFileSync(summaryPath, 'utf8');
70
+ }
71
+
72
+ const body = `${marker}\n## Benchmark Smoke (CPU)\n\n${summary}`;
73
+ const { owner, repo } = context.repo;
74
+ const issue_number = context.issue.number;
75
+
76
+ const comments = await github.paginate(github.rest.issues.listComments, {
77
+ owner,
78
+ repo,
79
+ issue_number,
80
+ per_page: 100,
81
+ });
82
+
83
+ const existing = comments.find((c) => c.user?.type === 'Bot' && c.body?.includes(marker));
84
+ if (existing) {
85
+ await github.rest.issues.updateComment({
86
+ owner,
87
+ repo,
88
+ comment_id: existing.id,
89
+ body,
90
+ });
91
+ } else {
92
+ await github.rest.issues.createComment({
93
+ owner,
94
+ repo,
95
+ issue_number,
96
+ body,
97
+ });
98
+ }
99
+
100
+ benchmark-standard-scheduled:
101
+ if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
102
+ runs-on: ubuntu-latest
103
+ permissions:
104
+ contents: read
105
+
106
+ steps:
107
+ - name: Checkout
108
+ uses: actions/checkout@v4
109
+
110
+ - name: Setup Python
111
+ uses: actions/setup-python@v5
112
+ with:
113
+ python-version: '3.13'
114
+
115
+ - name: Install uv
116
+ run: python -m pip install --upgrade uv
117
+
118
+ - name: Install dependencies
119
+ run: uv sync --group dev
120
+
121
+ - name: Run standard benchmark (CPU)
122
+ run: |
123
+ uv run dagzoo benchmark \
124
+ --suite standard \
125
+ --preset cpu \
126
+ --baseline benchmarks/baselines/cpu_standard.json \
127
+ --warn-threshold-pct 10 \
128
+ --fail-threshold-pct 20 \
129
+ --fail-on-regression \
130
+ --hardware-policy none \
131
+ --out-dir benchmarks/results/ci_standard
132
+
133
+ - name: Upload standard benchmark artifacts
134
+ if: always()
135
+ uses: actions/upload-artifact@v4
136
+ with:
137
+ name: benchmark-standard-scheduled
138
+ path: benchmarks/results/ci_standard
139
+ if-no-files-found: warn
140
+
141
+ - name: Publish standard benchmark summary
142
+ if: always()
143
+ run: |
144
+ if [ -f benchmarks/results/ci_standard/summary.md ]; then
145
+ cat benchmarks/results/ci_standard/summary.md >> "$GITHUB_STEP_SUMMARY"
146
+ else
147
+ echo "summary.md was not generated." >> "$GITHUB_STEP_SUMMARY"
148
+ fi
@@ -0,0 +1,149 @@
1
+ name: docs
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+ paths:
7
+ - "docs/**"
8
+ - "site/**"
9
+ - "scripts/docs/**"
10
+ - ".github/workflows/docs.yml"
11
+ - "README.md"
12
+ push:
13
+ branches: [main]
14
+ paths:
15
+ - "docs/**"
16
+ - "site/**"
17
+ - "scripts/docs/**"
18
+ - ".github/workflows/docs.yml"
19
+ - "README.md"
20
+ workflow_dispatch:
21
+
22
+ concurrency:
23
+ group: docs-${{ github.ref }}
24
+ cancel-in-progress: true
25
+
26
+ jobs:
27
+ validate:
28
+ runs-on: ubuntu-latest
29
+ permissions:
30
+ contents: read
31
+
32
+ steps:
33
+ - name: Checkout
34
+ uses: actions/checkout@v4
35
+
36
+ - name: Setup Python
37
+ uses: actions/setup-python@v5
38
+ with:
39
+ python-version: "3.13"
40
+
41
+ - name: Install uv
42
+ run: python -m pip install --upgrade uv
43
+
44
+ - name: Install dependencies
45
+ run: uv sync --group dev
46
+
47
+ - name: Setup Node
48
+ uses: actions/setup-node@v4
49
+ with:
50
+ node-version: "24"
51
+ cache: "npm"
52
+ cache-dependency-path: site/package-lock.json
53
+
54
+ - name: Install docs build dependencies
55
+ run: npm ci --prefix site
56
+
57
+ - name: Sync docs content
58
+ run: uv run python scripts/docs/sync_hugo_content.py
59
+
60
+ - name: Verify docs sync (idempotence)
61
+ run: uv run python scripts/docs/sync_hugo_content.py --check
62
+
63
+ - name: Check docs links
64
+ run: uv run python scripts/docs/check_links.py
65
+
66
+ - name: Setup Go (for Hugo modules)
67
+ uses: actions/setup-go@v5
68
+ with:
69
+ go-version-file: site/go.mod
70
+
71
+ - name: Setup Hugo
72
+ uses: peaceiris/actions-hugo@v3
73
+ with:
74
+ hugo-version: "0.152.2"
75
+ extended: true
76
+
77
+ - name: Build site
78
+ run: hugo --source site --minify --gc --destination public
79
+
80
+ - name: Check built-output links
81
+ run: uv run python scripts/docs/check_built_output_links.py site/public
82
+
83
+ deploy:
84
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
85
+ needs: validate
86
+ runs-on: ubuntu-latest
87
+ permissions:
88
+ contents: read
89
+ pages: write
90
+ id-token: write
91
+ environment:
92
+ name: github-pages
93
+ url: ${{ steps.deployment.outputs.page_url }}
94
+
95
+ steps:
96
+ - name: Checkout
97
+ uses: actions/checkout@v4
98
+
99
+ - name: Configure GitHub Pages
100
+ uses: actions/configure-pages@v5
101
+ with:
102
+ enablement: true
103
+
104
+ - name: Setup Python
105
+ uses: actions/setup-python@v5
106
+ with:
107
+ python-version: "3.13"
108
+
109
+ - name: Install uv
110
+ run: python -m pip install --upgrade uv
111
+
112
+ - name: Install dependencies
113
+ run: uv sync --group dev
114
+
115
+ - name: Setup Node
116
+ uses: actions/setup-node@v4
117
+ with:
118
+ node-version: "24"
119
+ cache: "npm"
120
+ cache-dependency-path: site/package-lock.json
121
+
122
+ - name: Install docs build dependencies
123
+ run: npm ci --prefix site
124
+
125
+ - name: Sync docs content
126
+ run: uv run python scripts/docs/sync_hugo_content.py
127
+
128
+ - name: Setup Go (for Hugo modules)
129
+ uses: actions/setup-go@v5
130
+ with:
131
+ go-version-file: site/go.mod
132
+
133
+ - name: Setup Hugo
134
+ uses: peaceiris/actions-hugo@v3
135
+ with:
136
+ hugo-version: "0.152.2"
137
+ extended: true
138
+
139
+ - name: Build site
140
+ run: hugo --source site --minify --gc --destination public
141
+
142
+ - name: Upload Pages artifact
143
+ uses: actions/upload-pages-artifact@v3
144
+ with:
145
+ path: site/public
146
+
147
+ - name: Deploy to GitHub Pages
148
+ id: deployment
149
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,107 @@
1
+ name: package
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ['v*']
7
+
8
+ jobs:
9
+ check-version:
10
+ if: github.ref == 'refs/heads/main'
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ outputs:
15
+ changed: ${{ steps.check.outputs.changed }}
16
+
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v4
20
+ with:
21
+ fetch-depth: 2
22
+
23
+ - name: Check for version change
24
+ id: check
25
+ run: |
26
+ CURR=$(grep -m1 '^version' pyproject.toml | sed 's/.*= *"\(.*\)"/\1/')
27
+ PREV=$(git show HEAD~1:pyproject.toml | grep -m1 '^version' | sed 's/.*= *"\(.*\)"/\1/')
28
+ if [ "$CURR" != "$PREV" ]; then
29
+ echo "changed=true" >> "$GITHUB_OUTPUT"
30
+ echo "Version changed: $PREV -> $CURR"
31
+ else
32
+ echo "changed=false" >> "$GITHUB_OUTPUT"
33
+ echo "Version unchanged: $CURR"
34
+ fi
35
+
36
+ build:
37
+ if: >-
38
+ always() && (
39
+ (needs.check-version.result == 'success' && needs.check-version.outputs.changed == 'true')
40
+ || startsWith(github.ref, 'refs/tags/v')
41
+ )
42
+ needs: check-version
43
+ runs-on: ubuntu-latest
44
+ permissions:
45
+ contents: read
46
+
47
+ steps:
48
+ - name: Checkout
49
+ uses: actions/checkout@v4
50
+
51
+ - name: Setup Python
52
+ uses: actions/setup-python@v5
53
+ with:
54
+ python-version: '3.13'
55
+
56
+ - name: Install uv
57
+ run: python -m pip install --upgrade uv
58
+
59
+ - name: Build sdist and wheel
60
+ run: uv build
61
+
62
+ - name: Upload build artifacts
63
+ uses: actions/upload-artifact@v4
64
+ with:
65
+ name: dist
66
+ path: dist/
67
+ retention-days: 30
68
+
69
+ publish-pypi:
70
+ if: always() && startsWith(github.ref, 'refs/tags/v')
71
+ needs: build
72
+ runs-on: ubuntu-latest
73
+ environment: pypi
74
+ permissions:
75
+ id-token: write
76
+
77
+ steps:
78
+ - name: Download build artifacts
79
+ uses: actions/download-artifact@v4
80
+ with:
81
+ name: dist
82
+ path: dist/
83
+
84
+ - name: Publish package distributions to PyPI
85
+ uses: pypa/gh-action-pypi-publish@release/v1
86
+
87
+ release:
88
+ if: always() && startsWith(github.ref, 'refs/tags/v')
89
+ needs:
90
+ - build
91
+ - publish-pypi
92
+ runs-on: ubuntu-latest
93
+ permissions:
94
+ contents: write
95
+
96
+ steps:
97
+ - name: Download build artifacts
98
+ uses: actions/download-artifact@v4
99
+ with:
100
+ name: dist
101
+ path: dist/
102
+
103
+ - name: Create GitHub Release
104
+ uses: softprops/action-gh-release@v2
105
+ with:
106
+ files: dist/*
107
+ generate_release_notes: true
@@ -0,0 +1,41 @@
1
+ name: test
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ pull_request:
6
+ types: [opened, synchronize, reopened]
7
+ workflow_dispatch:
8
+ concurrency:
9
+ group: test-${{ github.ref }}
10
+ cancel-in-progress: true
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: '3.14'
19
+ - run: python -m pip install --upgrade uv
20
+ - run: uv sync --group dev
21
+ - name: Lint
22
+ run: uv run ruff check src tests
23
+ - name: Type check
24
+ run: uv run mypy src
25
+ - name: Dead code
26
+ run: >
27
+ uv run vulture src/dagzoo tests
28
+ --ignore-names __getattr__
29
+ - name: Test with coverage
30
+ run: >
31
+ uv run pytest
32
+ --cov=dagzoo
33
+ --cov-report=term-missing
34
+ --cov-report=xml:coverage.xml
35
+ -q
36
+ - uses: actions/upload-artifact@v4
37
+ if: always()
38
+ with:
39
+ name: coverage-report-py3.14
40
+ path: coverage.xml
41
+ retention-days: 14
@@ -0,0 +1,66 @@
1
+ # OS / editor
2
+ .DS_Store
3
+ Thumbs.db
4
+ .idea/
5
+ .vscode/
6
+
7
+ # Python bytecode / caches
8
+ __pycache__/
9
+ *.py[cod]
10
+ *.pyo
11
+ *.pyd
12
+ *.so
13
+ .python-version
14
+
15
+ # Virtual environments
16
+ .venv/
17
+ venv/
18
+ env/
19
+
20
+ # Test / lint / type-check caches and coverage
21
+ .pytest_cache/
22
+ .testmondata
23
+ .mypy_cache/
24
+ .ruff_cache/
25
+ .coverage
26
+ .coverage.*
27
+ htmlcov/
28
+ coverage.xml
29
+ .tox/
30
+ .nox/
31
+
32
+ # Packaging / build artifacts
33
+ build/
34
+ dist/
35
+ *.egg-info/
36
+ .eggs/
37
+ pip-wheel-metadata/
38
+
39
+ # Local env files / secrets
40
+ .env
41
+ .env.*
42
+ .envrc
43
+ *.local
44
+
45
+ # Runtime outputs / generated data
46
+ data/
47
+ benchmarks/results/
48
+ *.parquet
49
+ *.feather
50
+ *.arrow
51
+ *.log
52
+
53
+ # Reference PDFs (large binary files)
54
+ *.pdf
55
+
56
+ effective_config_artifacts/
57
+
58
+ # Hugo docs build artifacts
59
+ public/
60
+ site/public/
61
+ site/resources/
62
+ site/.hugo_build.lock
63
+ site/.generated/
64
+ site/node_modules/
65
+
66
+ .codex
@@ -0,0 +1,29 @@
1
+ [importlinter]
2
+ root_package = dagzoo
3
+
4
+ [importlinter:contract:core_product_surface]
5
+ name = dagzoo.core does not depend on product entrypoints
6
+ type = forbidden
7
+ source_modules =
8
+ dagzoo.core
9
+ forbidden_modules =
10
+ dagzoo.cli
11
+ dagzoo.bench
12
+ dagzoo.diagnostics
13
+
14
+ [importlinter:contract:library_product_surface]
15
+ name = dagzoo libraries do not depend on product entrypoints
16
+ type = forbidden
17
+ source_modules =
18
+ dagzoo.functions
19
+ dagzoo.converters
20
+ dagzoo.sampling
21
+ dagzoo.io
22
+ dagzoo.filtering
23
+ dagzoo.graph
24
+ dagzoo.math
25
+ dagzoo.postprocess
26
+ forbidden_modules =
27
+ dagzoo.cli
28
+ dagzoo.bench
29
+ dagzoo.diagnostics
@@ -0,0 +1,41 @@
1
+ repos:
2
+
3
+ - repo: local
4
+ hooks:
5
+ - id: ruff-check
6
+ name: ruff check
7
+ entry: ./.venv/bin/ruff check
8
+ language: system
9
+ types_or: [python, pyi]
10
+ pass_filenames: true
11
+ - id: ruff-format
12
+ name: ruff format
13
+ entry: ./.venv/bin/ruff format
14
+ language: system
15
+ types_or: [python, pyi]
16
+ pass_filenames: true
17
+ - id: mypy
18
+ name: mypy
19
+ entry: ./.venv/bin/python -m mypy src
20
+ language: system
21
+ types_or: [python, pyi]
22
+ pass_filenames: false
23
+ - id: mdformat
24
+ name: mdformat
25
+ entry: ./.venv/bin/mdformat
26
+ language: system
27
+ types: [markdown]
28
+ exclude: ^(WORKFLOW\.md|docs/transforms.md|site/)
29
+ pass_filenames: true
30
+ - id: deptry
31
+ name: deptry
32
+ entry: ./.venv/bin/deptry .
33
+ language: system
34
+ pass_filenames: false
35
+ files: ^(pyproject\.toml|src/dagzoo/)
36
+ - id: release-contract
37
+ name: release contract
38
+ entry: ./.venv/bin/python scripts/dev.py contract --source staged
39
+ language: system
40
+ pass_filenames: false
41
+ files: ^(src/dagzoo/|configs/|scripts/devlib/|pyproject\.toml$|CHANGELOG\.md$|\.pre-commit-config\.yaml$)
dagzoo-0.9.7/AGENTS.md ADDED
@@ -0,0 +1,12 @@
1
+ # Development Patterns
2
+
3
+ - Use `.venv/` for commands and tests in this repo.
4
+ - Prefer breaking dependency cycles and centralizing shared wiring in `src/dagzoo/core`; avoid "legacy" pathways, duplicate pathways, and shims. Do not introduce parallel implementations of the same logic in different layers of the codebase.
5
+ - We optimize for iteration speed: internal Python APIs and internal config structure may change without backward-compat guarantees.
6
+ - If CLI flags, persisted metadata schema, or dataset artifact contract changes, treat it as a user-facing break and call it out explicitly.
7
+ - For behavior/schema changes under `src/dagzoo`, bump version in `pyproject.toml` just before merging into main so that the version reflects the latest changes (patch by default; minor for intentionally broad user-facing breaks). Docs/tests-only changes do not require a bump.
8
+ - On every version bump, update `CHANGELOG.md` in the same PR.
9
+ - We prefer shared utility packages over hand-rolled helpers to keep invariants centralized
10
+ - We don’t probe data “YOLO-style”—we validate boundaries or rely on typed SDKs
11
+ - Prior to declaring a branch ready for review, compare branch to main and verify that all intended changes are included and no unintended changes are included
12
+ - Canonical local verification is `./scripts/dev verify quick`; use `./scripts/dev impact` when you need a dependency-aware ripple check before broader refactors