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.
- dagzoo-0.9.7/.github/workflows/benchmark.yml +148 -0
- dagzoo-0.9.7/.github/workflows/docs.yml +149 -0
- dagzoo-0.9.7/.github/workflows/package.yml +107 -0
- dagzoo-0.9.7/.github/workflows/test.yml +41 -0
- dagzoo-0.9.7/.gitignore +66 -0
- dagzoo-0.9.7/.importlinter +29 -0
- dagzoo-0.9.7/.pre-commit-config.yaml +41 -0
- dagzoo-0.9.7/AGENTS.md +12 -0
- dagzoo-0.9.7/CHANGELOG.md +1036 -0
- dagzoo-0.9.7/CLAUDE.md +114 -0
- dagzoo-0.9.7/LICENSE +21 -0
- dagzoo-0.9.7/PKG-INFO +193 -0
- dagzoo-0.9.7/README.md +179 -0
- dagzoo-0.9.7/benchmarks/baselines/cpu_smoke.json +17 -0
- dagzoo-0.9.7/benchmarks/baselines/cpu_standard.json +17 -0
- dagzoo-0.9.7/configs/benchmark_cpu.yaml +61 -0
- dagzoo-0.9.7/configs/benchmark_cuda_desktop.yaml +61 -0
- dagzoo-0.9.7/configs/benchmark_cuda_h100.yaml +61 -0
- dagzoo-0.9.7/configs/benchmark_filter_test.yaml +40 -0
- dagzoo-0.9.7/configs/benchmark_medium_cuda.yaml +54 -0
- dagzoo-0.9.7/configs/default.yaml +70 -0
- dagzoo-0.9.7/configs/preset_cuda_h100.yaml +55 -0
- dagzoo-0.9.7/configs/preset_diagnostics_on.yaml +21 -0
- dagzoo-0.9.7/configs/preset_filter_benchmark_smoke.yaml +50 -0
- dagzoo-0.9.7/configs/preset_lineage_benchmark_smoke.yaml +41 -0
- dagzoo-0.9.7/configs/preset_many_class_benchmark_smoke.yaml +45 -0
- dagzoo-0.9.7/configs/preset_many_class_generate_smoke.yaml +26 -0
- dagzoo-0.9.7/configs/preset_mechanism_baseline_benchmark_smoke.yaml +48 -0
- dagzoo-0.9.7/configs/preset_mechanism_gp_benchmark_smoke.yaml +49 -0
- dagzoo-0.9.7/configs/preset_mechanism_gp_filter_smoke.yaml +52 -0
- dagzoo-0.9.7/configs/preset_mechanism_gp_generate_smoke.yaml +32 -0
- dagzoo-0.9.7/configs/preset_mechanism_piecewise_benchmark_smoke.yaml +50 -0
- dagzoo-0.9.7/configs/preset_mechanism_piecewise_filter_smoke.yaml +53 -0
- dagzoo-0.9.7/configs/preset_mechanism_piecewise_generate_smoke.yaml +33 -0
- dagzoo-0.9.7/configs/preset_missingness_mar.yaml +17 -0
- dagzoo-0.9.7/configs/preset_missingness_mcar.yaml +15 -0
- dagzoo-0.9.7/configs/preset_missingness_mnar.yaml +16 -0
- dagzoo-0.9.7/configs/preset_noise_benchmark_smoke.yaml +52 -0
- dagzoo-0.9.7/configs/preset_noise_gaussian_generate_smoke.yaml +32 -0
- dagzoo-0.9.7/configs/preset_noise_laplace_generate_smoke.yaml +32 -0
- dagzoo-0.9.7/configs/preset_noise_mixture_generate_smoke.yaml +35 -0
- dagzoo-0.9.7/configs/preset_noise_student_t_generate_smoke.yaml +32 -0
- dagzoo-0.9.7/configs/preset_shift_benchmark_smoke.yaml +47 -0
- dagzoo-0.9.7/configs/preset_shift_graph_drift_generate_smoke.yaml +30 -0
- dagzoo-0.9.7/configs/preset_shift_mechanism_drift_generate_smoke.yaml +30 -0
- dagzoo-0.9.7/configs/preset_shift_mixed_generate_smoke.yaml +30 -0
- dagzoo-0.9.7/configs/preset_shift_noise_drift_generate_smoke.yaml +30 -0
- dagzoo-0.9.7/docs/development/backlog_decision_rules.md +119 -0
- dagzoo-0.9.7/docs/development/codebase-navigation.md +87 -0
- dagzoo-0.9.7/docs/development/config-resolution.md +200 -0
- dagzoo-0.9.7/docs/development/design-decisions.md +354 -0
- dagzoo-0.9.7/docs/development/harness_audit.md +108 -0
- dagzoo-0.9.7/docs/development/issue_authoring.md +67 -0
- dagzoo-0.9.7/docs/development/keyed-rng.md +222 -0
- dagzoo-0.9.7/docs/development/linear.md +105 -0
- dagzoo-0.9.7/docs/development/module-dependency-map.md +104 -0
- dagzoo-0.9.7/docs/development/roadmap.md +455 -0
- dagzoo-0.9.7/docs/features/benchmark-guardrails.md +204 -0
- dagzoo-0.9.7/docs/features/diagnostics.md +80 -0
- dagzoo-0.9.7/docs/features/many-class.md +53 -0
- dagzoo-0.9.7/docs/features/mechanism-diversity.md +137 -0
- dagzoo-0.9.7/docs/features/missingness.md +67 -0
- dagzoo-0.9.7/docs/features/noise.md +70 -0
- dagzoo-0.9.7/docs/features/shift.md +103 -0
- dagzoo-0.9.7/docs/how-it-works.md +403 -0
- dagzoo-0.9.7/docs/output-format.md +445 -0
- dagzoo-0.9.7/docs/request-file-contract.md +214 -0
- dagzoo-0.9.7/docs/transforms.md +1409 -0
- dagzoo-0.9.7/docs/usage-guide.md +318 -0
- dagzoo-0.9.7/pyproject.toml +79 -0
- dagzoo-0.9.7/reference/PAPERS.md +37 -0
- dagzoo-0.9.7/reference/linear_issue_map_2026-03-08.json +1099 -0
- dagzoo-0.9.7/reference/literature_evidence_2026.md +95 -0
- dagzoo-0.9.7/scripts/README.md +119 -0
- dagzoo-0.9.7/scripts/benchmark-smoke.sh +21 -0
- dagzoo-0.9.7/scripts/benchmark-suite.sh +26 -0
- dagzoo-0.9.7/scripts/bump-version.sh +108 -0
- dagzoo-0.9.7/scripts/cleanup_local_artifacts.py +95 -0
- dagzoo-0.9.7/scripts/dev +4 -0
- dagzoo-0.9.7/scripts/dev.py +150 -0
- dagzoo-0.9.7/scripts/devlib/__init__.py +1 -0
- dagzoo-0.9.7/scripts/devlib/common.py +52 -0
- dagzoo-0.9.7/scripts/devlib/contract.py +51 -0
- dagzoo-0.9.7/scripts/devlib/deps.py +392 -0
- dagzoo-0.9.7/scripts/devlib/doctor.py +98 -0
- dagzoo-0.9.7/scripts/devlib/impact.py +252 -0
- dagzoo-0.9.7/scripts/devlib/review_policy.py +94 -0
- dagzoo-0.9.7/scripts/devlib/verify.py +175 -0
- dagzoo-0.9.7/scripts/docs/check_built_output_links.py +203 -0
- dagzoo-0.9.7/scripts/docs/check_links.py +294 -0
- dagzoo-0.9.7/scripts/docs/check_repo_paths.py +190 -0
- dagzoo-0.9.7/scripts/docs/sync_hugo_content.py +367 -0
- dagzoo-0.9.7/scripts/effective_diversity_audit.py +23 -0
- dagzoo-0.9.7/scripts/fetch-additional-references.sh +32 -0
- dagzoo-0.9.7/scripts/generate-default.sh +10 -0
- dagzoo-0.9.7/scripts/generate-from-config.sh +37 -0
- dagzoo-0.9.7/scripts/generate-h100.sh +10 -0
- dagzoo-0.9.7/scripts/generate-many-class.sh +10 -0
- dagzoo-0.9.7/scripts/generate-missingness.sh +43 -0
- dagzoo-0.9.7/scripts/generate-noise.sh +36 -0
- dagzoo-0.9.7/scripts/generate-smoke.sh +31 -0
- dagzoo-0.9.7/scripts/linear/github_to_linear.py +897 -0
- dagzoo-0.9.7/scripts/linear/seed_harness_backlog.py +475 -0
- dagzoo-0.9.7/site/README.md +37 -0
- dagzoo-0.9.7/site/assets/scss/_styles_project.scss +350 -0
- dagzoo-0.9.7/site/assets/scss/_variables_project.scss +28 -0
- dagzoo-0.9.7/site/content/_index.md +46 -0
- dagzoo-0.9.7/site/content/docs/_index.md +28 -0
- dagzoo-0.9.7/site/content/docs/features/_index.md +8 -0
- dagzoo-0.9.7/site/go.mod +5 -0
- dagzoo-0.9.7/site/go.sum +4 -0
- dagzoo-0.9.7/site/hugo.yaml +67 -0
- dagzoo-0.9.7/site/layouts/partials/footer/center.html +4 -0
- dagzoo-0.9.7/site/layouts/partials/hooks/head-end.html +48 -0
- dagzoo-0.9.7/site/layouts/partials/page-meta-links.html +57 -0
- dagzoo-0.9.7/site/package-lock.json +928 -0
- dagzoo-0.9.7/site/package.json +11 -0
- dagzoo-0.9.7/site/postcss.config.js +3 -0
- dagzoo-0.9.7/src/dagzoo/__init__.py +27 -0
- dagzoo-0.9.7/src/dagzoo/__main__.py +4 -0
- dagzoo-0.9.7/src/dagzoo/bench/__init__.py +13 -0
- dagzoo-0.9.7/src/dagzoo/bench/baseline.py +128 -0
- dagzoo-0.9.7/src/dagzoo/bench/collectors.py +515 -0
- dagzoo-0.9.7/src/dagzoo/bench/constants.py +50 -0
- dagzoo-0.9.7/src/dagzoo/bench/corpus_probe.py +200 -0
- dagzoo-0.9.7/src/dagzoo/bench/guardrails.py +399 -0
- dagzoo-0.9.7/src/dagzoo/bench/metrics.py +141 -0
- dagzoo-0.9.7/src/dagzoo/bench/micro.py +129 -0
- dagzoo-0.9.7/src/dagzoo/bench/preset_specs.py +153 -0
- dagzoo-0.9.7/src/dagzoo/bench/report.py +174 -0
- dagzoo-0.9.7/src/dagzoo/bench/runtime_support.py +219 -0
- dagzoo-0.9.7/src/dagzoo/bench/stage_metrics.py +224 -0
- dagzoo-0.9.7/src/dagzoo/bench/suite.py +916 -0
- dagzoo-0.9.7/src/dagzoo/bench/throughput.py +208 -0
- dagzoo-0.9.7/src/dagzoo/cli/__init__.py +50 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/__init__.py +1 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/benchmark.py +312 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/diagnostics.py +133 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/filter.py +35 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/generate.py +164 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/hardware.py +18 -0
- dagzoo-0.9.7/src/dagzoo/cli/commands/request.py +48 -0
- dagzoo-0.9.7/src/dagzoo/cli/common.py +35 -0
- dagzoo-0.9.7/src/dagzoo/cli/effective_config.py +60 -0
- dagzoo-0.9.7/src/dagzoo/cli/entrypoint.py +13 -0
- dagzoo-0.9.7/src/dagzoo/cli/parser.py +431 -0
- dagzoo-0.9.7/src/dagzoo/cli/parsing.py +214 -0
- dagzoo-0.9.7/src/dagzoo/cli/request_execution.py +230 -0
- dagzoo-0.9.7/src/dagzoo/config/__init__.py +122 -0
- dagzoo-0.9.7/src/dagzoo/config/constants.py +99 -0
- dagzoo-0.9.7/src/dagzoo/config/io.py +38 -0
- dagzoo-0.9.7/src/dagzoo/config/models.py +737 -0
- dagzoo-0.9.7/src/dagzoo/config/normalization.py +162 -0
- dagzoo-0.9.7/src/dagzoo/config/request.py +275 -0
- dagzoo-0.9.7/src/dagzoo/config/resources/__init__.py +1 -0
- dagzoo-0.9.7/src/dagzoo/config/resources/default.yaml +70 -0
- dagzoo-0.9.7/src/dagzoo/config/resources/preset_missingness_mar.yaml +17 -0
- dagzoo-0.9.7/src/dagzoo/config/resources/preset_missingness_mcar.yaml +15 -0
- dagzoo-0.9.7/src/dagzoo/config/resources/preset_missingness_mnar.yaml +16 -0
- dagzoo-0.9.7/src/dagzoo/config/rows.py +276 -0
- dagzoo-0.9.7/src/dagzoo/config/scalars.py +121 -0
- dagzoo-0.9.7/src/dagzoo/converters/__init__.py +6 -0
- dagzoo-0.9.7/src/dagzoo/converters/categorical.py +55 -0
- dagzoo-0.9.7/src/dagzoo/converters/numeric.py +45 -0
- dagzoo-0.9.7/src/dagzoo/core/__init__.py +13 -0
- dagzoo-0.9.7/src/dagzoo/core/config_resolution.py +703 -0
- dagzoo-0.9.7/src/dagzoo/core/constants.py +3 -0
- dagzoo-0.9.7/src/dagzoo/core/dataset.py +127 -0
- dagzoo-0.9.7/src/dagzoo/core/execution_sampling_common.py +75 -0
- dagzoo-0.9.7/src/dagzoo/core/execution_semantics.py +957 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/__init__.py +1 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/batch_common.py +320 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/batch_functions.py +651 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/batched.py +944 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/grouped.py +142 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/metadata.py +140 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/plan_types.py +672 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/prepare.py +87 -0
- dagzoo-0.9.7/src/dagzoo/core/fixed_layout/runtime.py +719 -0
- dagzoo-0.9.7/src/dagzoo/core/generation_context.py +94 -0
- dagzoo-0.9.7/src/dagzoo/core/generation_runtime.py +510 -0
- dagzoo-0.9.7/src/dagzoo/core/layout.py +259 -0
- dagzoo-0.9.7/src/dagzoo/core/layout_types.py +52 -0
- dagzoo-0.9.7/src/dagzoo/core/metadata.py +79 -0
- dagzoo-0.9.7/src/dagzoo/core/metric_constants.py +70 -0
- dagzoo-0.9.7/src/dagzoo/core/metrics_torch.py +600 -0
- dagzoo-0.9.7/src/dagzoo/core/node_pipeline.py +89 -0
- dagzoo-0.9.7/src/dagzoo/core/noise_runtime.py +100 -0
- dagzoo-0.9.7/src/dagzoo/core/request_handoff.py +397 -0
- dagzoo-0.9.7/src/dagzoo/core/shift.py +234 -0
- dagzoo-0.9.7/src/dagzoo/core/staged_artifacts.py +41 -0
- dagzoo-0.9.7/src/dagzoo/core/trees.py +138 -0
- dagzoo-0.9.7/src/dagzoo/core/validation.py +147 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/__init__.py +20 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/coverage.py +579 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/__init__.py +39 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/artifacts.py +299 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/calibration.py +280 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/compare.py +201 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/effective_diversity/runner.py +167 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/metrics.py +112 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics/types.py +42 -0
- dagzoo-0.9.7/src/dagzoo/diagnostics_targets.py +75 -0
- dagzoo-0.9.7/src/dagzoo/filtering/__init__.py +6 -0
- dagzoo-0.9.7/src/dagzoo/filtering/deferred_filter.py +572 -0
- dagzoo-0.9.7/src/dagzoo/filtering/deferred_filter_artifacts.py +217 -0
- dagzoo-0.9.7/src/dagzoo/filtering/deferred_filter_replay.py +97 -0
- dagzoo-0.9.7/src/dagzoo/filtering/extra_trees_filter.py +315 -0
- dagzoo-0.9.7/src/dagzoo/functions/__init__.py +1 -0
- dagzoo-0.9.7/src/dagzoo/functions/_rng_helpers.py +15 -0
- dagzoo-0.9.7/src/dagzoo/functions/activations.py +200 -0
- dagzoo-0.9.7/src/dagzoo/functions/multi.py +152 -0
- dagzoo-0.9.7/src/dagzoo/functions/random_functions.py +85 -0
- dagzoo-0.9.7/src/dagzoo/graph/__init__.py +5 -0
- dagzoo-0.9.7/src/dagzoo/graph/dag_sampler.py +86 -0
- dagzoo-0.9.7/src/dagzoo/hardware.py +140 -0
- dagzoo-0.9.7/src/dagzoo/hardware_policy.py +216 -0
- dagzoo-0.9.7/src/dagzoo/io/__init__.py +37 -0
- dagzoo-0.9.7/src/dagzoo/io/lineage_artifact.py +101 -0
- dagzoo-0.9.7/src/dagzoo/io/lineage_schema.py +322 -0
- dagzoo-0.9.7/src/dagzoo/io/parquet_writer.py +585 -0
- dagzoo-0.9.7/src/dagzoo/math/__init__.py +21 -0
- dagzoo-0.9.7/src/dagzoo/math/random_matrices.py +206 -0
- dagzoo-0.9.7/src/dagzoo/math/utils.py +79 -0
- dagzoo-0.9.7/src/dagzoo/postprocess/__init__.py +5 -0
- dagzoo-0.9.7/src/dagzoo/postprocess/postprocess.py +349 -0
- dagzoo-0.9.7/src/dagzoo/rng.py +102 -0
- dagzoo-0.9.7/src/dagzoo/sampling/__init__.py +8 -0
- dagzoo-0.9.7/src/dagzoo/sampling/correlated.py +117 -0
- dagzoo-0.9.7/src/dagzoo/sampling/missingness.py +212 -0
- dagzoo-0.9.7/src/dagzoo/sampling/noise.py +342 -0
- dagzoo-0.9.7/src/dagzoo/sampling/random_points.py +60 -0
- dagzoo-0.9.7/src/dagzoo/sampling/random_weights.py +63 -0
- dagzoo-0.9.7/src/dagzoo/types.py +19 -0
- dagzoo-0.9.7/tests/conftest.py +128 -0
- dagzoo-0.9.7/tests/test_activations.py +75 -0
- dagzoo-0.9.7/tests/test_benchmark_cli.py +665 -0
- dagzoo-0.9.7/tests/test_benchmark_regression.py +122 -0
- dagzoo-0.9.7/tests/test_benchmark_stage_metrics.py +258 -0
- dagzoo-0.9.7/tests/test_benchmark_suite.py +2135 -0
- dagzoo-0.9.7/tests/test_benchmark_throughput.py +351 -0
- dagzoo-0.9.7/tests/test_categorical_converter.py +103 -0
- dagzoo-0.9.7/tests/test_cleanup_local_artifacts.py +137 -0
- dagzoo-0.9.7/tests/test_cli_contract.py +50 -0
- dagzoo-0.9.7/tests/test_cli_outputs.py +341 -0
- dagzoo-0.9.7/tests/test_cli_validation.py +1224 -0
- dagzoo-0.9.7/tests/test_config.py +660 -0
- dagzoo-0.9.7/tests/test_config_resolution.py +459 -0
- dagzoo-0.9.7/tests/test_corpus_probe.py +225 -0
- dagzoo-0.9.7/tests/test_correlated.py +82 -0
- dagzoo-0.9.7/tests/test_dag_sampler.py +107 -0
- dagzoo-0.9.7/tests/test_deferred_filter.py +503 -0
- dagzoo-0.9.7/tests/test_dev_tooling.py +331 -0
- dagzoo-0.9.7/tests/test_diagnostics_coverage.py +243 -0
- dagzoo-0.9.7/tests/test_diagnostics_metrics.py +319 -0
- dagzoo-0.9.7/tests/test_diversity_audit_cli.py +86 -0
- dagzoo-0.9.7/tests/test_docs_scripts.py +231 -0
- dagzoo-0.9.7/tests/test_effective_diversity_audit.py +502 -0
- dagzoo-0.9.7/tests/test_execution_semantics.py +938 -0
- dagzoo-0.9.7/tests/test_extra_trees_filter.py +445 -0
- dagzoo-0.9.7/tests/test_filter_calibration.py +328 -0
- dagzoo-0.9.7/tests/test_fixed_layout_batched.py +900 -0
- dagzoo-0.9.7/tests/test_generate.py +2459 -0
- dagzoo-0.9.7/tests/test_github_to_linear.py +688 -0
- dagzoo-0.9.7/tests/test_hardware.py +258 -0
- dagzoo-0.9.7/tests/test_lineage_artifact.py +65 -0
- dagzoo-0.9.7/tests/test_lineage_schema.py +233 -0
- dagzoo-0.9.7/tests/test_mechanism_config.py +109 -0
- dagzoo-0.9.7/tests/test_metrics_torch.py +69 -0
- dagzoo-0.9.7/tests/test_missingness_sampling.py +145 -0
- dagzoo-0.9.7/tests/test_multi_function.py +250 -0
- dagzoo-0.9.7/tests/test_node_pipeline.py +202 -0
- dagzoo-0.9.7/tests/test_noise_config.py +115 -0
- dagzoo-0.9.7/tests/test_noise_presets.py +36 -0
- dagzoo-0.9.7/tests/test_noise_sampling.py +274 -0
- dagzoo-0.9.7/tests/test_numeric_converter.py +82 -0
- dagzoo-0.9.7/tests/test_parquet_writer.py +524 -0
- dagzoo-0.9.7/tests/test_postprocess.py +344 -0
- dagzoo-0.9.7/tests/test_random_functions.py +293 -0
- dagzoo-0.9.7/tests/test_random_matrices.py +39 -0
- dagzoo-0.9.7/tests/test_random_points.py +73 -0
- dagzoo-0.9.7/tests/test_request_config.py +440 -0
- dagzoo-0.9.7/tests/test_request_execution.py +404 -0
- dagzoo-0.9.7/tests/test_request_handoff.py +152 -0
- dagzoo-0.9.7/tests/test_resolution_contract.py +168 -0
- dagzoo-0.9.7/tests/test_rng.py +120 -0
- dagzoo-0.9.7/tests/test_sampling.py +77 -0
- dagzoo-0.9.7/tests/test_seed_harness_backlog.py +233 -0
- dagzoo-0.9.7/tests/test_shift_presets.py +32 -0
- dagzoo-0.9.7/tests/test_shift_runtime.py +184 -0
- dagzoo-0.9.7/tests/test_trees.py +104 -0
- 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
|
dagzoo-0.9.7/.gitignore
ADDED
|
@@ -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
|