dvt-dask 2026.3.11__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.
- dvt_dask-2026.3.11/.codex/config.toml +18 -0
- dvt_dask-2026.3.11/.codex/skills/experiment-mapping-lab/SKILL.md +64 -0
- dvt_dask-2026.3.11/.codex/skills/experiment-mapping-lab/agents/openai.yaml +4 -0
- dvt_dask-2026.3.11/.codex/skills/experiment-mapping-lab/scripts/create_experiment.py +111 -0
- dvt_dask-2026.3.11/.git-blame-ignore-revs +24 -0
- dvt_dask-2026.3.11/.github/CONTRIBUTING.md +2 -0
- dvt_dask-2026.3.11/.github/PULL_REQUEST_TEMPLATE.md +3 -0
- dvt_dask-2026.3.11/.github/dependabot.yml +9 -0
- dvt_dask-2026.3.11/.github/release-drafter.yml +13 -0
- dvt_dask-2026.3.11/.github/release.yml +26 -0
- dvt_dask-2026.3.11/.github/workflows/additional.yml +32 -0
- dvt_dask-2026.3.11/.github/workflows/conda.yml +64 -0
- dvt_dask-2026.3.11/.github/workflows/label-all.yml +14 -0
- dvt_dask-2026.3.11/.github/workflows/pre-commit.yml +18 -0
- dvt_dask-2026.3.11/.github/workflows/publish-test-results.yaml +50 -0
- dvt_dask-2026.3.11/.github/workflows/release-drafter.yml +32 -0
- dvt_dask-2026.3.11/.github/workflows/release-publish.yml +33 -0
- dvt_dask-2026.3.11/.github/workflows/stale-bot.yaml +20 -0
- dvt_dask-2026.3.11/.github/workflows/test-report.yaml +66 -0
- dvt_dask-2026.3.11/.github/workflows/tests.yml +174 -0
- dvt_dask-2026.3.11/.github/workflows/upstream.yml +87 -0
- dvt_dask-2026.3.11/.gitignore +33 -0
- dvt_dask-2026.3.11/.pre-commit-config.yaml +43 -0
- dvt_dask-2026.3.11/.readthedocs.yaml +17 -0
- dvt_dask-2026.3.11/AGENTS.md +47 -0
- dvt_dask-2026.3.11/CONTRIBUTING.md +3 -0
- dvt_dask-2026.3.11/LICENSE.txt +29 -0
- dvt_dask-2026.3.11/MANIFEST.in +12 -0
- dvt_dask-2026.3.11/PKG-INFO +93 -0
- dvt_dask-2026.3.11/README.rst +30 -0
- dvt_dask-2026.3.11/codecov.yml +27 -0
- dvt_dask-2026.3.11/conftest.py +106 -0
- dvt_dask-2026.3.11/continuous_integration/environment-3.10.yaml +76 -0
- dvt_dask-2026.3.11/continuous_integration/environment-3.11.yaml +75 -0
- dvt_dask-2026.3.11/continuous_integration/environment-3.12.yaml +76 -0
- dvt_dask-2026.3.11/continuous_integration/environment-3.13.yaml +72 -0
- dvt_dask-2026.3.11/continuous_integration/environment-3.14.yaml +71 -0
- dvt_dask-2026.3.11/continuous_integration/environment-3.14t.yaml +90 -0
- dvt_dask-2026.3.11/continuous_integration/environment-mindeps-array.yaml +24 -0
- dvt_dask-2026.3.11/continuous_integration/environment-mindeps-dataframe.yaml +26 -0
- dvt_dask-2026.3.11/continuous_integration/environment-mindeps-distributed.yaml +26 -0
- dvt_dask-2026.3.11/continuous_integration/environment-mindeps-non-optional.yaml +22 -0
- dvt_dask-2026.3.11/continuous_integration/environment-mindeps-optional.yaml +65 -0
- dvt_dask-2026.3.11/continuous_integration/recipe/meta.yaml +59 -0
- dvt_dask-2026.3.11/continuous_integration/scripts/install.sh +55 -0
- dvt_dask-2026.3.11/continuous_integration/scripts/run_tests.sh +23 -0
- dvt_dask-2026.3.11/dask/__init__.py +24 -0
- dvt_dask-2026.3.11/dask/__main__.py +11 -0
- dvt_dask-2026.3.11/dask/_collections.py +10 -0
- dvt_dask-2026.3.11/dask/_compatibility.py +133 -0
- dvt_dask-2026.3.11/dask/_dispatch.py +5 -0
- dvt_dask-2026.3.11/dask/_expr.py +1452 -0
- dvt_dask-2026.3.11/dask/_pandas_compat.py +163 -0
- dvt_dask-2026.3.11/dask/_task_spec.py +1316 -0
- dvt_dask-2026.3.11/dask/_version.py +24 -0
- dvt_dask-2026.3.11/dask/array/NUMPY_LICENSE.txt +30 -0
- dvt_dask-2026.3.11/dask/array/__init__.py +931 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/__init__.py +34 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_backends.py +128 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_blockwise.py +373 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_collection.py +1581 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_creation.py +583 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_expr.py +290 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_gufunc.py +857 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_io.py +136 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_map_blocks.py +491 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_overlap.py +909 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_rechunk.py +200 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_reductions.py +366 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_shuffle.py +216 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_slicing.py +490 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_ufunc.py +345 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/_utils.py +74 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/random.py +1127 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/tests/test_collection.py +134 -0
- dvt_dask-2026.3.11/dask/array/_array_expr/tests/test_config.py +29 -0
- dvt_dask-2026.3.11/dask/array/_reductions_generic.py +342 -0
- dvt_dask-2026.3.11/dask/array/_shuffle.py +328 -0
- dvt_dask-2026.3.11/dask/array/api.py +3 -0
- dvt_dask-2026.3.11/dask/array/backends.py +440 -0
- dvt_dask-2026.3.11/dask/array/blockwise.py +312 -0
- dvt_dask-2026.3.11/dask/array/chunk.py +434 -0
- dvt_dask-2026.3.11/dask/array/chunk_types.py +157 -0
- dvt_dask-2026.3.11/dask/array/core.py +6277 -0
- dvt_dask-2026.3.11/dask/array/creation.py +1301 -0
- dvt_dask-2026.3.11/dask/array/cupy_entry_point.py +72 -0
- dvt_dask-2026.3.11/dask/array/dispatch.py +21 -0
- dvt_dask-2026.3.11/dask/array/einsumfuncs.py +295 -0
- dvt_dask-2026.3.11/dask/array/fft.py +316 -0
- dvt_dask-2026.3.11/dask/array/gufunc.py +821 -0
- dvt_dask-2026.3.11/dask/array/image.py +71 -0
- dvt_dask-2026.3.11/dask/array/lib/__init__.py +3 -0
- dvt_dask-2026.3.11/dask/array/lib/stride_tricks.py +3 -0
- dvt_dask-2026.3.11/dask/array/linalg.py +1547 -0
- dvt_dask-2026.3.11/dask/array/ma.py +228 -0
- dvt_dask-2026.3.11/dask/array/numpy_compat.py +191 -0
- dvt_dask-2026.3.11/dask/array/optimization.py +318 -0
- dvt_dask-2026.3.11/dask/array/overlap.py +943 -0
- dvt_dask-2026.3.11/dask/array/percentile.py +341 -0
- dvt_dask-2026.3.11/dask/array/random.py +1113 -0
- dvt_dask-2026.3.11/dask/array/rechunk.py +870 -0
- dvt_dask-2026.3.11/dask/array/reductions.py +1813 -0
- dvt_dask-2026.3.11/dask/array/reshape.py +592 -0
- dvt_dask-2026.3.11/dask/array/routines.py +2614 -0
- dvt_dask-2026.3.11/dask/array/slicing.py +2117 -0
- dvt_dask-2026.3.11/dask/array/stats.py +517 -0
- dvt_dask-2026.3.11/dask/array/svg.py +296 -0
- dvt_dask-2026.3.11/dask/array/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/array/tests/test_api.py +32 -0
- dvt_dask-2026.3.11/dask/array/tests/test_array_core.py +6180 -0
- dvt_dask-2026.3.11/dask/array/tests/test_array_expr_incompatible.py +31 -0
- dvt_dask-2026.3.11/dask/array/tests/test_array_function.py +265 -0
- dvt_dask-2026.3.11/dask/array/tests/test_array_utils.py +141 -0
- dvt_dask-2026.3.11/dask/array/tests/test_atop.py +886 -0
- dvt_dask-2026.3.11/dask/array/tests/test_chunk.py +133 -0
- dvt_dask-2026.3.11/dask/array/tests/test_creation.py +1115 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_core.py +677 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_creation.py +203 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_gufunc.py +26 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_linalg.py +425 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_overlap.py +132 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_percentile.py +84 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_random.py +217 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_reductions.py +79 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_routines.py +222 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_slicing.py +162 -0
- dvt_dask-2026.3.11/dask/array/tests/test_cupy_sparse.py +105 -0
- dvt_dask-2026.3.11/dask/array/tests/test_dispatch.py +292 -0
- dvt_dask-2026.3.11/dask/array/tests/test_fft.py +295 -0
- dvt_dask-2026.3.11/dask/array/tests/test_gufunc.py +725 -0
- dvt_dask-2026.3.11/dask/array/tests/test_image.py +54 -0
- dvt_dask-2026.3.11/dask/array/tests/test_linalg.py +1137 -0
- dvt_dask-2026.3.11/dask/array/tests/test_map_blocks.py +15 -0
- dvt_dask-2026.3.11/dask/array/tests/test_masked.py +505 -0
- dvt_dask-2026.3.11/dask/array/tests/test_numpy_compat.py +42 -0
- dvt_dask-2026.3.11/dask/array/tests/test_optimization.py +256 -0
- dvt_dask-2026.3.11/dask/array/tests/test_overlap.py +987 -0
- dvt_dask-2026.3.11/dask/array/tests/test_percentiles.py +132 -0
- dvt_dask-2026.3.11/dask/array/tests/test_random.py +447 -0
- dvt_dask-2026.3.11/dask/array/tests/test_rechunk.py +1251 -0
- dvt_dask-2026.3.11/dask/array/tests/test_reductions.py +1101 -0
- dvt_dask-2026.3.11/dask/array/tests/test_reshape.py +449 -0
- dvt_dask-2026.3.11/dask/array/tests/test_routines.py +2904 -0
- dvt_dask-2026.3.11/dask/array/tests/test_shuffle.py +154 -0
- dvt_dask-2026.3.11/dask/array/tests/test_slicing.py +1153 -0
- dvt_dask-2026.3.11/dask/array/tests/test_sparse.py +191 -0
- dvt_dask-2026.3.11/dask/array/tests/test_stats.py +179 -0
- dvt_dask-2026.3.11/dask/array/tests/test_svg.py +97 -0
- dvt_dask-2026.3.11/dask/array/tests/test_testing.py +21 -0
- dvt_dask-2026.3.11/dask/array/tests/test_ufunc.py +602 -0
- dvt_dask-2026.3.11/dask/array/tests/test_wrap.py +92 -0
- dvt_dask-2026.3.11/dask/array/tests/test_xarray.py +202 -0
- dvt_dask-2026.3.11/dask/array/tiledb_io.py +167 -0
- dvt_dask-2026.3.11/dask/array/ufunc.py +349 -0
- dvt_dask-2026.3.11/dask/array/utils.py +602 -0
- dvt_dask-2026.3.11/dask/array/wrap.py +242 -0
- dvt_dask-2026.3.11/dask/backends.py +163 -0
- dvt_dask-2026.3.11/dask/bag/__init__.py +46 -0
- dvt_dask-2026.3.11/dask/bag/avro.py +300 -0
- dvt_dask-2026.3.11/dask/bag/chunk.py +36 -0
- dvt_dask-2026.3.11/dask/bag/core.py +2749 -0
- dvt_dask-2026.3.11/dask/bag/random.py +194 -0
- dvt_dask-2026.3.11/dask/bag/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/bag/tests/test_avro.py +120 -0
- dvt_dask-2026.3.11/dask/bag/tests/test_bag.py +1817 -0
- dvt_dask-2026.3.11/dask/bag/tests/test_random.py +207 -0
- dvt_dask-2026.3.11/dask/bag/tests/test_text.py +153 -0
- dvt_dask-2026.3.11/dask/bag/text.py +199 -0
- dvt_dask-2026.3.11/dask/bag/utils.py +10 -0
- dvt_dask-2026.3.11/dask/base.py +1305 -0
- dvt_dask-2026.3.11/dask/blockwise.py +1569 -0
- dvt_dask-2026.3.11/dask/bytes/__init__.py +3 -0
- dvt_dask-2026.3.11/dask/bytes/core.py +194 -0
- dvt_dask-2026.3.11/dask/bytes/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/bytes/tests/test_bytes_utils.py +158 -0
- dvt_dask-2026.3.11/dask/bytes/tests/test_compression.py +24 -0
- dvt_dask-2026.3.11/dask/bytes/tests/test_http.py +222 -0
- dvt_dask-2026.3.11/dask/bytes/tests/test_local.py +354 -0
- dvt_dask-2026.3.11/dask/bytes/tests/test_s3.py +632 -0
- dvt_dask-2026.3.11/dask/bytes/utils.py +26 -0
- dvt_dask-2026.3.11/dask/cache.py +68 -0
- dvt_dask-2026.3.11/dask/callbacks.py +189 -0
- dvt_dask-2026.3.11/dask/cli.py +210 -0
- dvt_dask-2026.3.11/dask/config.py +846 -0
- dvt_dask-2026.3.11/dask/conftest.py +36 -0
- dvt_dask-2026.3.11/dask/context.py +69 -0
- dvt_dask-2026.3.11/dask/core.py +547 -0
- dvt_dask-2026.3.11/dask/dask-schema.yaml +280 -0
- dvt_dask-2026.3.11/dask/dask.yaml +59 -0
- dvt_dask-2026.3.11/dask/dataframe/__init__.py +125 -0
- dvt_dask-2026.3.11/dask/dataframe/_compat.py +84 -0
- dvt_dask-2026.3.11/dask/dataframe/_dtypes.py +71 -0
- dvt_dask-2026.3.11/dask/dataframe/_pyarrow.py +102 -0
- dvt_dask-2026.3.11/dask/dataframe/_pyarrow_compat.py +30 -0
- dvt_dask-2026.3.11/dask/dataframe/accessor.py +135 -0
- dvt_dask-2026.3.11/dask/dataframe/api.py +10 -0
- dvt_dask-2026.3.11/dask/dataframe/backends.py +871 -0
- dvt_dask-2026.3.11/dask/dataframe/categorical.py +67 -0
- dvt_dask-2026.3.11/dask/dataframe/core.py +486 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/__init__.py +10 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_accessor.py +120 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_backends.py +76 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_categorical.py +212 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_collection.py +6690 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_concat.py +383 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_cumulative.py +151 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_datetime.py +74 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_describe.py +114 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_dummies.py +179 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_expr.py +4224 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_groupby.py +2334 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_indexing.py +453 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_interchange.py +64 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_merge.py +985 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_merge_asof.py +441 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_operation_callbacks.py +515 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_quantile.py +135 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_quantiles.py +90 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_reductions.py +1545 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_repartition.py +522 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_rolling.py +343 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_shuffle.py +1428 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_str_accessor.py +192 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/_util.py +204 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/datasets.py +250 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/diagnostics/__init__.py +6 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/diagnostics/_analyze.py +203 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/diagnostics/_analyze_plugin.py +135 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/diagnostics/_explain.py +110 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/__init__.py +4 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/_delayed.py +164 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/bag.py +43 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/io.py +719 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/parquet.py +2024 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/records.py +22 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/test_delayed.py +77 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/test_distributed.py +64 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/test_from_pandas.py +156 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/test_io.py +561 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/test_parquet.py +651 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/io/tests/test_sql.py +41 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/_util.py +44 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_align_partitions.py +104 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_categorical.py +72 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_collection.py +2858 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_concat.py +405 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_core.py +65 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_cumulative.py +22 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_datasets.py +123 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_datetime.py +119 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_describe.py +67 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_diagnostics.py +40 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_distributed.py +470 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_dummies.py +30 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_format.py +221 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_fusion.py +147 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_groupby.py +1099 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_indexing.py +205 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_interchange.py +20 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_map_partitions_overlap.py +391 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_merge.py +1112 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_merge_asof.py +78 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_operation_callbacks.py +589 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_partitioning_knowledge.py +249 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_predicate_pushdown.py +61 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_quantiles.py +21 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_reductions.py +573 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_repartition.py +144 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_reshape.py +83 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_rolling.py +201 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_shuffle.py +833 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_string_accessor.py +159 -0
- dvt_dask-2026.3.11/dask/dataframe/dask_expr/tests/test_ufunc.py +78 -0
- dvt_dask-2026.3.11/dask/dataframe/dispatch.py +140 -0
- dvt_dask-2026.3.11/dask/dataframe/extensions.py +26 -0
- dvt_dask-2026.3.11/dask/dataframe/groupby.py +1259 -0
- dvt_dask-2026.3.11/dask/dataframe/hyperloglog.py +83 -0
- dvt_dask-2026.3.11/dask/dataframe/indexing.py +115 -0
- dvt_dask-2026.3.11/dask/dataframe/io/__init__.py +13 -0
- dvt_dask-2026.3.11/dask/dataframe/io/csv.py +966 -0
- dvt_dask-2026.3.11/dask/dataframe/io/demo.py +548 -0
- dvt_dask-2026.3.11/dask/dataframe/io/hdf.py +552 -0
- dvt_dask-2026.3.11/dask/dataframe/io/io.py +369 -0
- dvt_dask-2026.3.11/dask/dataframe/io/json.py +324 -0
- dvt_dask-2026.3.11/dask/dataframe/io/orc/__init__.py +3 -0
- dvt_dask-2026.3.11/dask/dataframe/io/orc/arrow.py +127 -0
- dvt_dask-2026.3.11/dask/dataframe/io/orc/core.py +224 -0
- dvt_dask-2026.3.11/dask/dataframe/io/orc/utils.py +19 -0
- dvt_dask-2026.3.11/dask/dataframe/io/parquet/__init__.py +3 -0
- dvt_dask-2026.3.11/dask/dataframe/io/parquet/arrow.py +1841 -0
- dvt_dask-2026.3.11/dask/dataframe/io/parquet/core.py +716 -0
- dvt_dask-2026.3.11/dask/dataframe/io/parquet/utils.py +762 -0
- dvt_dask-2026.3.11/dask/dataframe/io/sql.py +606 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_csv.py +1925 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_demo.py +348 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_hdf.py +880 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_io.py +990 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_json.py +246 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_orc.py +158 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_parquet.py +4004 -0
- dvt_dask-2026.3.11/dask/dataframe/io/tests/test_sql.py +584 -0
- dvt_dask-2026.3.11/dask/dataframe/io/utils.py +252 -0
- dvt_dask-2026.3.11/dask/dataframe/methods.py +541 -0
- dvt_dask-2026.3.11/dask/dataframe/multi.py +366 -0
- dvt_dask-2026.3.11/dask/dataframe/partitionquantiles.py +475 -0
- dvt_dask-2026.3.11/dask/dataframe/rolling.py +49 -0
- dvt_dask-2026.3.11/dask/dataframe/shuffle.py +240 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_accessors.py +343 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_api.py +33 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_arithmetics_reduction.py +1494 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_boolean.py +33 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_categorical.py +519 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_dataframe.py +5443 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_extensions.py +52 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_groupby.py +3286 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_hashing.py +84 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_hyperloglog.py +96 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_indexing.py +658 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_merge_column_and_index.py +277 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_methods.py +13 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_multi.py +2448 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_numeric.py +78 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_pyarrow.py +184 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_pyarrow_compat.py +142 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_reshape.py +335 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_rolling.py +508 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_shuffle.py +1290 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_ufunc.py +572 -0
- dvt_dask-2026.3.11/dask/dataframe/tests/test_utils_dataframe.py +737 -0
- dvt_dask-2026.3.11/dask/dataframe/tseries/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/dataframe/tseries/resample.py +374 -0
- dvt_dask-2026.3.11/dask/dataframe/tseries/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/dataframe/tseries/tests/test_resample.py +248 -0
- dvt_dask-2026.3.11/dask/dataframe/tseries/tests/test_resample_expr.py +152 -0
- dvt_dask-2026.3.11/dask/dataframe/utils.py +785 -0
- dvt_dask-2026.3.11/dask/datasets.py +179 -0
- dvt_dask-2026.3.11/dask/delayed.py +932 -0
- dvt_dask-2026.3.11/dask/diagnostics/__init__.py +6 -0
- dvt_dask-2026.3.11/dask/diagnostics/profile.py +414 -0
- dvt_dask-2026.3.11/dask/diagnostics/profile_visualize.py +437 -0
- dvt_dask-2026.3.11/dask/diagnostics/progress.py +153 -0
- dvt_dask-2026.3.11/dask/diagnostics/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/diagnostics/tests/test_profiler.py +389 -0
- dvt_dask-2026.3.11/dask/diagnostics/tests/test_progress.py +137 -0
- dvt_dask-2026.3.11/dask/distributed.py +24 -0
- dvt_dask-2026.3.11/dask/dot.py +550 -0
- dvt_dask-2026.3.11/dask/graph_manipulation.py +558 -0
- dvt_dask-2026.3.11/dask/hashing.py +100 -0
- dvt_dask-2026.3.11/dask/highlevelgraph.py +1017 -0
- dvt_dask-2026.3.11/dask/layers.py +484 -0
- dvt_dask-2026.3.11/dask/local.py +1014 -0
- dvt_dask-2026.3.11/dask/ml.py +15 -0
- dvt_dask-2026.3.11/dask/multiprocessing.py +270 -0
- dvt_dask-2026.3.11/dask/optimization.py +888 -0
- dvt_dask-2026.3.11/dask/order.py +839 -0
- dvt_dask-2026.3.11/dask/py.typed +0 -0
- dvt_dask-2026.3.11/dask/rewrite.py +437 -0
- dvt_dask-2026.3.11/dask/sizeof.py +316 -0
- dvt_dask-2026.3.11/dask/system.py +92 -0
- dvt_dask-2026.3.11/dask/task_spec.py +23 -0
- dvt_dask-2026.3.11/dask/tests/__init__.py +0 -0
- dvt_dask-2026.3.11/dask/tests/test_backends.py +22 -0
- dvt_dask-2026.3.11/dask/tests/test_base.py +1040 -0
- dvt_dask-2026.3.11/dask/tests/test_cache.py +80 -0
- dvt_dask-2026.3.11/dask/tests/test_callbacks.py +137 -0
- dvt_dask-2026.3.11/dask/tests/test_ci.py +41 -0
- dvt_dask-2026.3.11/dask/tests/test_cli.py +259 -0
- dvt_dask-2026.3.11/dask/tests/test_config.py +683 -0
- dvt_dask-2026.3.11/dask/tests/test_context.py +65 -0
- dvt_dask-2026.3.11/dask/tests/test_core.py +306 -0
- dvt_dask-2026.3.11/dask/tests/test_datasets.py +48 -0
- dvt_dask-2026.3.11/dask/tests/test_delayed.py +964 -0
- dvt_dask-2026.3.11/dask/tests/test_distributed.py +1091 -0
- dvt_dask-2026.3.11/dask/tests/test_docs.py +25 -0
- dvt_dask-2026.3.11/dask/tests/test_dot.py +395 -0
- dvt_dask-2026.3.11/dask/tests/test_expr.py +167 -0
- dvt_dask-2026.3.11/dask/tests/test_graph_manipulation.py +346 -0
- dvt_dask-2026.3.11/dask/tests/test_hashing.py +44 -0
- dvt_dask-2026.3.11/dask/tests/test_highgraph.py +364 -0
- dvt_dask-2026.3.11/dask/tests/test_hlgexpr.py +283 -0
- dvt_dask-2026.3.11/dask/tests/test_imports.py +49 -0
- dvt_dask-2026.3.11/dask/tests/test_layers.py +210 -0
- dvt_dask-2026.3.11/dask/tests/test_local.py +392 -0
- dvt_dask-2026.3.11/dask/tests/test_ml.py +15 -0
- dvt_dask-2026.3.11/dask/tests/test_multiprocessing.py +306 -0
- dvt_dask-2026.3.11/dask/tests/test_optimization.py +1381 -0
- dvt_dask-2026.3.11/dask/tests/test_order.py +2701 -0
- dvt_dask-2026.3.11/dask/tests/test_rewrite.py +157 -0
- dvt_dask-2026.3.11/dask/tests/test_sizeof.py +307 -0
- dvt_dask-2026.3.11/dask/tests/test_spark_compat.py +204 -0
- dvt_dask-2026.3.11/dask/tests/test_system.py +158 -0
- dvt_dask-2026.3.11/dask/tests/test_task_spec.py +1196 -0
- dvt_dask-2026.3.11/dask/tests/test_threaded.py +257 -0
- dvt_dask-2026.3.11/dask/tests/test_tokenize.py +1542 -0
- dvt_dask-2026.3.11/dask/tests/test_traceback.py +162 -0
- dvt_dask-2026.3.11/dask/tests/test_typing.py +218 -0
- dvt_dask-2026.3.11/dask/tests/test_utils.py +1028 -0
- dvt_dask-2026.3.11/dask/tests/test_utils_test.py +50 -0
- dvt_dask-2026.3.11/dask/tests/warning_aliases.py +10 -0
- dvt_dask-2026.3.11/dask/threaded.py +135 -0
- dvt_dask-2026.3.11/dask/tokenize.py +489 -0
- dvt_dask-2026.3.11/dask/typing.py +443 -0
- dvt_dask-2026.3.11/dask/utils.py +2362 -0
- dvt_dask-2026.3.11/dask/utils_test.py +164 -0
- dvt_dask-2026.3.11/dask/widgets/__init__.py +26 -0
- dvt_dask-2026.3.11/dask/widgets/templates/array.html.j2 +40 -0
- dvt_dask-2026.3.11/dask/widgets/templates/dataframe.html.j2 +3 -0
- dvt_dask-2026.3.11/dask/widgets/templates/highlevelgraph.html.j2 +25 -0
- dvt_dask-2026.3.11/dask/widgets/templates/highlevelgraph_layer.html.j2 +50 -0
- dvt_dask-2026.3.11/dask/widgets/tests/templates/bytes.html.j2 +3 -0
- dvt_dask-2026.3.11/dask/widgets/tests/templates/custom_filter.html.j2 +3 -0
- dvt_dask-2026.3.11/dask/widgets/tests/templates/example.html.j2 +3 -0
- dvt_dask-2026.3.11/dask/widgets/tests/test_widgets.py +48 -0
- dvt_dask-2026.3.11/dask/widgets/widgets.py +40 -0
- dvt_dask-2026.3.11/docs/Makefile +155 -0
- dvt_dask-2026.3.11/docs/README.rst +15 -0
- dvt_dask-2026.3.11/docs/make.bat +192 -0
- dvt_dask-2026.3.11/docs/release-procedure.md +100 -0
- dvt_dask-2026.3.11/docs/requirements-docs.txt +26 -0
- dvt_dask-2026.3.11/docs/source/10-minutes-to-dask.rst +563 -0
- dvt_dask-2026.3.11/docs/source/_static/config_converter.js +320 -0
- dvt_dask-2026.3.11/docs/source/_static/custom.js +26 -0
- dvt_dask-2026.3.11/docs/source/_static/dask-simple.png +0 -0
- dvt_dask-2026.3.11/docs/source/_static/main-page.css +153 -0
- dvt_dask-2026.3.11/docs/source/_static/profile.html +31 -0
- dvt_dask-2026.3.11/docs/source/_static/stacked_profile.html +31 -0
- dvt_dask-2026.3.11/docs/source/_static/style.css +25 -0
- dvt_dask-2026.3.11/docs/source/_static/theme_overrides.css +13 -0
- dvt_dask-2026.3.11/docs/source/_static/transpose_cyto.html +10058 -0
- dvt_dask-2026.3.11/docs/source/_static/yaml.min.js +2 -0
- dvt_dask-2026.3.11/docs/source/_templates/layout.html +3 -0
- dvt_dask-2026.3.11/docs/source/adaptive.rst +121 -0
- dvt_dask-2026.3.11/docs/source/api.rst +127 -0
- dvt_dask-2026.3.11/docs/source/array-api.rst +556 -0
- dvt_dask-2026.3.11/docs/source/array-assignment.rst +104 -0
- dvt_dask-2026.3.11/docs/source/array-best-practices.rst +127 -0
- dvt_dask-2026.3.11/docs/source/array-chunks.rst +376 -0
- dvt_dask-2026.3.11/docs/source/array-creation.rst +635 -0
- dvt_dask-2026.3.11/docs/source/array-design.rst +182 -0
- dvt_dask-2026.3.11/docs/source/array-gufunc.rst +92 -0
- dvt_dask-2026.3.11/docs/source/array-numpy-compatibility.rst +390 -0
- dvt_dask-2026.3.11/docs/source/array-overlap.rst +183 -0
- dvt_dask-2026.3.11/docs/source/array-random.rst +89 -0
- dvt_dask-2026.3.11/docs/source/array-slicing.rst +98 -0
- dvt_dask-2026.3.11/docs/source/array-sparse.rst +84 -0
- dvt_dask-2026.3.11/docs/source/array-stack.rst +84 -0
- dvt_dask-2026.3.11/docs/source/array-stats.rst +38 -0
- dvt_dask-2026.3.11/docs/source/array.rst +125 -0
- dvt_dask-2026.3.11/docs/source/bag-api.rst +123 -0
- dvt_dask-2026.3.11/docs/source/bag-creation.rst +158 -0
- dvt_dask-2026.3.11/docs/source/bag.rst +118 -0
- dvt_dask-2026.3.11/docs/source/best-practices.rst +372 -0
- dvt_dask-2026.3.11/docs/source/caching.rst +165 -0
- dvt_dask-2026.3.11/docs/source/changelog.rst +9894 -0
- dvt_dask-2026.3.11/docs/source/cheatsheet.rst +8 -0
- dvt_dask-2026.3.11/docs/source/cli.rst +137 -0
- dvt_dask-2026.3.11/docs/source/conf.py +492 -0
- dvt_dask-2026.3.11/docs/source/configuration.rst +549 -0
- dvt_dask-2026.3.11/docs/source/custom-collections.rst +473 -0
- dvt_dask-2026.3.11/docs/source/custom-graphs.rst +114 -0
- dvt_dask-2026.3.11/docs/source/customize-initialization.rst +125 -0
- dvt_dask-2026.3.11/docs/source/dashboard-progress-script.py +47 -0
- dvt_dask-2026.3.11/docs/source/dashboard.rst +269 -0
- dvt_dask-2026.3.11/docs/source/daskcheatsheet.pdf +0 -0
- dvt_dask-2026.3.11/docs/source/dataframe-api.rst +756 -0
- dvt_dask-2026.3.11/docs/source/dataframe-best-practices.rst +239 -0
- dvt_dask-2026.3.11/docs/source/dataframe-categoricals.rst +105 -0
- dvt_dask-2026.3.11/docs/source/dataframe-create.rst +186 -0
- dvt_dask-2026.3.11/docs/source/dataframe-design.rst +156 -0
- dvt_dask-2026.3.11/docs/source/dataframe-extend.rst +225 -0
- dvt_dask-2026.3.11/docs/source/dataframe-extra.rst +14 -0
- dvt_dask-2026.3.11/docs/source/dataframe-groupby.rst +231 -0
- dvt_dask-2026.3.11/docs/source/dataframe-hive.rst +246 -0
- dvt_dask-2026.3.11/docs/source/dataframe-indexing.rst +205 -0
- dvt_dask-2026.3.11/docs/source/dataframe-joins.rst +84 -0
- dvt_dask-2026.3.11/docs/source/dataframe-optimizer.rst +100 -0
- dvt_dask-2026.3.11/docs/source/dataframe-parquet.rst +270 -0
- dvt_dask-2026.3.11/docs/source/dataframe-sql.rst +273 -0
- dvt_dask-2026.3.11/docs/source/dataframe.rst +200 -0
- dvt_dask-2026.3.11/docs/source/debugging-performance.rst +15 -0
- dvt_dask-2026.3.11/docs/source/delayed-api.rst +48 -0
- dvt_dask-2026.3.11/docs/source/delayed-best-practices.rst +303 -0
- dvt_dask-2026.3.11/docs/source/delayed-collections.rst +39 -0
- dvt_dask-2026.3.11/docs/source/delayed.rst +226 -0
- dvt_dask-2026.3.11/docs/source/deploying-cli.rst +103 -0
- dvt_dask-2026.3.11/docs/source/deploying-cloud.rst +131 -0
- dvt_dask-2026.3.11/docs/source/deploying-docker.rst +77 -0
- dvt_dask-2026.3.11/docs/source/deploying-extra.rst +13 -0
- dvt_dask-2026.3.11/docs/source/deploying-hpc.rst +259 -0
- dvt_dask-2026.3.11/docs/source/deploying-kubernetes.rst +125 -0
- dvt_dask-2026.3.11/docs/source/deploying-python-advanced.rst +212 -0
- dvt_dask-2026.3.11/docs/source/deploying-python.rst +101 -0
- dvt_dask-2026.3.11/docs/source/deploying-ssh.rst +54 -0
- dvt_dask-2026.3.11/docs/source/deploying.rst +206 -0
- dvt_dask-2026.3.11/docs/source/deployment-considerations.rst +99 -0
- dvt_dask-2026.3.11/docs/source/develop.rst +347 -0
- dvt_dask-2026.3.11/docs/source/diagnostics-distributed.rst +149 -0
- dvt_dask-2026.3.11/docs/source/diagnostics-local.rst +323 -0
- dvt_dask-2026.3.11/docs/source/ecosystem.rst +83 -0
- dvt_dask-2026.3.11/docs/source/expr-system-internals.rst +206 -0
- dvt_dask-2026.3.11/docs/source/faq.rst +438 -0
- dvt_dask-2026.3.11/docs/source/futures.rst +963 -0
- dvt_dask-2026.3.11/docs/source/gpu.rst +161 -0
- dvt_dask-2026.3.11/docs/source/graph_manipulation.rst +72 -0
- dvt_dask-2026.3.11/docs/source/graphs.rst +156 -0
- dvt_dask-2026.3.11/docs/source/graphviz.rst +158 -0
- dvt_dask-2026.3.11/docs/source/high-level-graphs.rst +198 -0
- dvt_dask-2026.3.11/docs/source/how-to/connect-to-remote-data.rst +387 -0
- dvt_dask-2026.3.11/docs/source/how-to/debug.rst +279 -0
- dvt_dask-2026.3.11/docs/source/how-to/extend-sizeof.rst +36 -0
- dvt_dask-2026.3.11/docs/source/how-to/index.rst +16 -0
- dvt_dask-2026.3.11/docs/source/how-to/selecting-the-collection-backend.rst +150 -0
- dvt_dask-2026.3.11/docs/source/images/10_minutes_array_graph.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/10_minutes_bag_graph.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/10_minutes_dataframe_graph.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/HHMI_Janelia_Color.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/array.svg +421 -0
- dvt_dask-2026.3.11/docs/source/images/async-embarrassing.gif +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/2023110-rechunking-disk-perf.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/dask-order-constant-memory.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/dask-order-growing-memory.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/einstein-constant-chunks.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/einstein-exploding-chunks.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/einstein-initial-array.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/gufunc_chunksizes_constant.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/gufunc_chunksizes_exploding.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/reshape-constant-memory.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/reshape-memory-increase.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/rolling-construct-constant-chunks.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/rolling-construct-exploding-chunks.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/rolling-construct-initially.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/vindex-memory-constant.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/changelog/vindex-memory-increase.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/cloud-provider-logos.svg +1 -0
- dvt_dask-2026.3.11/docs/source/images/concurrent-futures-threaded.webp +0 -0
- dvt_dask-2026.3.11/docs/source/images/crosstalk.svg +1868 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_jupyterlab.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_link.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_memory.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_memory_new.gif +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_progress.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_status.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_task_processing.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_task_stream_unhealthy.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dashboard_taskstream_healthy.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/dask-adaptive.svg +2985 -0
- dvt_dask-2026.3.11/docs/source/images/dask-array.svg +349 -0
- dvt_dask-2026.3.11/docs/source/images/dask-cluster-manager.svg +342 -0
- dvt_dask-2026.3.11/docs/source/images/dask-dataframe.svg +117 -0
- dvt_dask-2026.3.11/docs/source/images/dask-overview-distributed-callout.svg +4 -0
- dvt_dask-2026.3.11/docs/source/images/dask-overview-schedulers.svg +4 -0
- dvt_dask-2026.3.11/docs/source/images/dask-overview.svg +419 -0
- dvt_dask-2026.3.11/docs/source/images/dask_horizontal.svg +13 -0
- dvt_dask-2026.3.11/docs/source/images/dask_horizontal_black.svg +45 -0
- dvt_dask-2026.3.11/docs/source/images/dask_horizontal_on_blue.svg +48 -0
- dvt_dask-2026.3.11/docs/source/images/dask_horizontal_on_pink.svg +46 -0
- dvt_dask-2026.3.11/docs/source/images/dask_horizontal_white.svg +46 -0
- dvt_dask-2026.3.11/docs/source/images/dask_icon.svg +25 -0
- dvt_dask-2026.3.11/docs/source/images/dask_icon_black.svg +25 -0
- dvt_dask-2026.3.11/docs/source/images/dask_icon_on_pink.svg +25 -0
- dvt_dask-2026.3.11/docs/source/images/dask_icon_white.svg +25 -0
- dvt_dask-2026.3.11/docs/source/images/dataframe-optimize-explain.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/delayed-inc-double-add.svg +312 -0
- dvt_dask-2026.3.11/docs/source/images/distributed-overview.svg +236 -0
- dvt_dask-2026.3.11/docs/source/images/frame-shuffle.svg +438 -0
- dvt_dask-2026.3.11/docs/source/images/frame-sort.svg +516 -0
- dvt_dask-2026.3.11/docs/source/images/frame.svg +275 -0
- dvt_dask-2026.3.11/docs/source/images/futures-graph.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/gputester-msg.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/growth_of_languages.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/growth_of_libraries.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/inc-add.svg +65 -0
- dvt_dask-2026.3.11/docs/source/images/map-reduce-task-scheduling.svg +2409 -0
- dvt_dask-2026.3.11/docs/source/images/map_blocks_drop_axis.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/merge_chunks.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/merge_chunks_false.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/optimize_dask1.svg +211 -0
- dvt_dask-2026.3.11/docs/source/images/optimize_dask2.svg +151 -0
- dvt_dask-2026.3.11/docs/source/images/optimize_dask3.svg +91 -0
- dvt_dask-2026.3.11/docs/source/images/optimize_dask4.svg +73 -0
- dvt_dask-2026.3.11/docs/source/images/optimize_dask5.svg +49 -0
- dvt_dask-2026.3.11/docs/source/images/optimizer/automatic-repartitioning.svg +21 -0
- dvt_dask-2026.3.11/docs/source/images/optimizer/avoiding-shuffles.svg +21 -0
- dvt_dask-2026.3.11/docs/source/images/order-failure.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/order-success.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/overlap.svg +937 -0
- dvt_dask-2026.3.11/docs/source/images/overlapping-blocks.svg +444 -0
- dvt_dask-2026.3.11/docs/source/images/overlapping-neighbors.svg +129 -0
- dvt_dask-2026.3.11/docs/source/images/pipeline.svg +754 -0
- dvt_dask-2026.3.11/docs/source/images/reshape.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/reshape_problem.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/reshape_rechunked.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/scaling-edges.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/scaling-nodes.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/simple-dask.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/transpose-hlg-hovertooltip.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/transpose-hlg-html-repr.png +0 -0
- dvt_dask-2026.3.11/docs/source/images/transpose.svg +553 -0
- dvt_dask-2026.3.11/docs/source/images/transpose_opt.svg +390 -0
- dvt_dask-2026.3.11/docs/source/images/trivial.svg +1643 -0
- dvt_dask-2026.3.11/docs/source/images/unoverlapping-neighbors.svg +76 -0
- dvt_dask-2026.3.11/docs/source/index.rst +386 -0
- dvt_dask-2026.3.11/docs/source/install.rst +225 -0
- dvt_dask-2026.3.11/docs/source/internals.rst +17 -0
- dvt_dask-2026.3.11/docs/source/logos.rst +34 -0
- dvt_dask-2026.3.11/docs/source/maintainers.rst +83 -0
- dvt_dask-2026.3.11/docs/source/ml.rst +214 -0
- dvt_dask-2026.3.11/docs/source/optimize.rst +370 -0
- dvt_dask-2026.3.11/docs/source/order.rst +160 -0
- dvt_dask-2026.3.11/docs/source/phases-of-computation.rst +116 -0
- dvt_dask-2026.3.11/docs/source/presentations.rst +25 -0
- dvt_dask-2026.3.11/docs/source/prometheus.rst +22 -0
- dvt_dask-2026.3.11/docs/source/scheduler-overview.rst +190 -0
- dvt_dask-2026.3.11/docs/source/scheduling-policy.rst +87 -0
- dvt_dask-2026.3.11/docs/source/scheduling.rst +292 -0
- dvt_dask-2026.3.11/docs/source/scripts/scheduling.py +128 -0
- dvt_dask-2026.3.11/docs/source/shared.rst +150 -0
- dvt_dask-2026.3.11/docs/source/software-environments.rst +97 -0
- dvt_dask-2026.3.11/docs/source/spark.rst +247 -0
- dvt_dask-2026.3.11/docs/source/spec.rst +186 -0
- dvt_dask-2026.3.11/docs/source/support.rst +102 -0
- dvt_dask-2026.3.11/docs/source/understanding-performance.rst +35 -0
- dvt_dask-2026.3.11/docs/source/user-interfaces.rst +350 -0
- dvt_dask-2026.3.11/docs/source/why.rst +242 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/PKG-INFO +93 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/SOURCES.txt +711 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/dependency_links.txt +1 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/entry_points.txt +5 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/requires.txt +44 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/scm_file_list.json +706 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/scm_version.json +8 -0
- dvt_dask-2026.3.11/dvt_dask.egg-info/top_level.txt +1 -0
- dvt_dask-2026.3.11/pyproject.toml +241 -0
- dvt_dask-2026.3.11/scripts/__init__.py +0 -0
- dvt_dask-2026.3.11/scripts/build.py +11 -0
- dvt_dask-2026.3.11/scripts/services/__init__.py +0 -0
- dvt_dask-2026.3.11/scripts/services/run_project_mcp.py +27 -0
- dvt_dask-2026.3.11/scripts/upload_builds.py +309 -0
- dvt_dask-2026.3.11/services/__init__.py +0 -0
- dvt_dask-2026.3.11/services/benchmarking/__init__.py +11 -0
- dvt_dask-2026.3.11/services/benchmarking/config.py +111 -0
- dvt_dask-2026.3.11/services/benchmarking/docker/Dockerfile +21 -0
- dvt_dask-2026.3.11/services/benchmarking/docker/entrypoint.sh +5 -0
- dvt_dask-2026.3.11/services/benchmarking/generators.py +90 -0
- dvt_dask-2026.3.11/services/benchmarking/measurements.py +243 -0
- dvt_dask-2026.3.11/services/benchmarking/pipeline.py +180 -0
- dvt_dask-2026.3.11/services/benchmarking/reporting.py +99 -0
- dvt_dask-2026.3.11/services/benchmarking/run_registry.py +82 -0
- dvt_dask-2026.3.11/services/benchmarking/runner.py +107 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0000_20260306_143810/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0000_20260306_143810/logs/runner.log +2552 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0000_20260306_143810/raw_measurements.csv +26 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0000_20260306_143810/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0000_20260306_143810/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0001_20260306_144219/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0001_20260306_144219/logs/runner.log +85 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0001_20260306_144219/raw_measurements.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0001_20260306_144219/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0001_20260306_144219/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0002_20260306_144348/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0002_20260306_144348/logs/runner.log +12 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0002_20260306_144348/raw_measurements.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0002_20260306_144348/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0002_20260306_144348/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0003_20260306_144403/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0003_20260306_144403/logs/runner.log +32 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0003_20260306_144403/raw_measurements.csv +26 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0003_20260306_144403/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0003_20260306_144403/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0004_20260306_144536/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0004_20260306_144536/logs/runner.log +12 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0004_20260306_144536/raw_measurements.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0004_20260306_144536/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0004_20260306_144536/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0005_20260306_144555/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0005_20260306_144555/logs/runner.log +32 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0005_20260306_144555/raw_measurements.csv +26 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0005_20260306_144555/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0005_20260306_144555/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0006_20260306_144721/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0006_20260306_144721/logs/runner.log +12 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0006_20260306_144721/raw_measurements.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0006_20260306_144721/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0006_20260306_144721/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0007_20260306_145649/config_effective.json +24 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0007_20260306_145649/logs/runner.log +12 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0007_20260306_145649/raw_measurements.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0007_20260306_145649/results.csv +6 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0007_20260306_145649/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/artifacts/callbacks/delayed_known_normal_with_cb_iter_01.json +95 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/artifacts/callbacks/delayed_unknown_normal_with_cb_iter_01.json +95 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/artifacts/callbacks/from_pandas_known_large_partitions_with_cb_iter_01.json +95 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/artifacts/callbacks/from_pandas_known_normal_with_cb_iter_01.json +95 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/artifacts/callbacks/from_pandas_known_small_partitions_with_cb_iter_01.json +95 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/config_effective.json +29 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/logs/runner.log +27 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/raw_measurements.csv +11 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/results.csv +11 -0
- dvt_dask-2026.3.11/services/benchmarking/runs/0008_20260306_150334/run_info.json +9 -0
- dvt_dask-2026.3.11/services/benchmarking/sources.py +161 -0
- dvt_dask-2026.3.11/services/benchmarking/tests/test_run_registry.py +20 -0
- dvt_dask-2026.3.11/services/benchmarking/tests/test_runner.py +114 -0
- dvt_dask-2026.3.11/services/project_mcp/README.md +35 -0
- dvt_dask-2026.3.11/services/project_mcp/__init__.py +1 -0
- dvt_dask-2026.3.11/services/project_mcp/main.py +181 -0
- dvt_dask-2026.3.11/services/project_mcp/operations.py +373 -0
- dvt_dask-2026.3.11/services/project_mcp/runtime.py +211 -0
- dvt_dask-2026.3.11/setup.cfg +4 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[mcp_servers.project_mcp]
|
|
2
|
+
command = "python"
|
|
3
|
+
args = [
|
|
4
|
+
"-m",
|
|
5
|
+
"scripts.services.run_project_mcp"
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
[mcp_servers.pycharm]
|
|
9
|
+
command = "npx"
|
|
10
|
+
args = [
|
|
11
|
+
"mcp-remote",
|
|
12
|
+
"http://localhost:64342/sse",
|
|
13
|
+
"--header",
|
|
14
|
+
"IJ_MCP_SERVER_PROJECT_PATH: ${PROJECT_PATH}"
|
|
15
|
+
]
|
|
16
|
+
startup_timeout_sec = 20
|
|
17
|
+
tool_timeout_sec = 45
|
|
18
|
+
enabled = true
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: experiment-mapping-lab
|
|
3
|
+
description: Run iterative experiments for cross-source event matching accuracy in arb_monitor. Use when the user asks to plan, implement, execute, and document a new mapping experiment between sources (especially polymarket and bcgame), including updates to tmp/experiments/* README files and INSIGHTS.md.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Experiment Mapping Lab
|
|
7
|
+
|
|
8
|
+
Execute the full experiment cycle end-to-end with precision-first defaults.
|
|
9
|
+
|
|
10
|
+
## Core workflow
|
|
11
|
+
|
|
12
|
+
1. Read `tmp/experiments/README.md`, `tmp/experiments/INSIGHTS.md`, and the latest 1-3 experiment package `README.md` files.
|
|
13
|
+
2. Recheck at least one previous experiment on new data:
|
|
14
|
+
- read sources and `parsed_at` listed in that experiment `README.md`;
|
|
15
|
+
- query current `MAX(parsed_at)` for the same sources in DB;
|
|
16
|
+
- if current `MAX(parsed_at)` is newer, rerun that previous experiment on the new snapshot.
|
|
17
|
+
3. If rerun shows divergences or precision drop:
|
|
18
|
+
- write root cause notes in `## Дополнительно` of that previous experiment `README.md`;
|
|
19
|
+
- add transferable findings to `tmp/experiments/INSIGHTS.md`.
|
|
20
|
+
4. Determine the next package name: `tmp/experiments/{experiment_number:04}_{experiment_name}`.
|
|
21
|
+
5. Create the new package and write initial `README.md` with:
|
|
22
|
+
- hypothesis
|
|
23
|
+
- difference from previous experiment
|
|
24
|
+
- method
|
|
25
|
+
- run command
|
|
26
|
+
- sources with exact `parsed_at`
|
|
27
|
+
- planned metrics
|
|
28
|
+
6. Implement experiment code inside that package (`experiment.py` by default).
|
|
29
|
+
7. Run the experiment on current data.
|
|
30
|
+
8. Save artifacts in the package (`results.json`, `matched_pairs.csv`, and optional diagnostics CSV).
|
|
31
|
+
9. Update the package `README.md` with actual numbers, findings, limitations, exact sources+`parsed_at`, and next-step proposal.
|
|
32
|
+
10. Add transferable learnings to `tmp/experiments/INSIGHTS.md`.
|
|
33
|
+
|
|
34
|
+
## Precision-first defaults
|
|
35
|
+
|
|
36
|
+
- Use latest snapshot per source from `market_items` (`MAX(parsed_at)` grouped by `source`).
|
|
37
|
+
- Restrict candidate pool by canonical sport and start-time window.
|
|
38
|
+
- Prefer one-to-one mapping (`mutual best`) before lowering thresholds.
|
|
39
|
+
- Report both coverage and risk indicators:
|
|
40
|
+
- accepted matches count and share per source
|
|
41
|
+
- threshold/margin values used
|
|
42
|
+
- ambiguity indicators (top1-top2 gap)
|
|
43
|
+
- manual sanity sample (at least 10-20 pairs when no ground truth)
|
|
44
|
+
|
|
45
|
+
## Repository-specific rules
|
|
46
|
+
|
|
47
|
+
- Keep each experiment isolated; do not edit old experiment code unless explicitly requested.
|
|
48
|
+
- Keep numbering monotonic (`0001`, `0002`, ...).
|
|
49
|
+
- Keep all experiment files under `tmp/experiments`.
|
|
50
|
+
- If `tmp/experiments/README.md` or `INSIGHTS.md` is missing, initialize both before starting a new experiment.
|
|
51
|
+
|
|
52
|
+
## Helper script
|
|
53
|
+
|
|
54
|
+
Use `scripts/create_experiment.py` in this skill to scaffold the next experiment package quickly.
|
|
55
|
+
|
|
56
|
+
Example:
|
|
57
|
+
```powershell
|
|
58
|
+
python .codex/skills/experiment-mapping-lab/scripts/create_experiment.py --repo-root C:\dev\projects\arb_monitor --experiment-name sport-time-title-v2
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The script creates:
|
|
62
|
+
- package directory with next numeric prefix
|
|
63
|
+
- `__init__.py`
|
|
64
|
+
- starter `README.md`
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
import argparse
|
|
5
|
+
import re
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
EXPERIMENT_DIR_PATTERN = re.compile(r"^(\d{4})_(.+)$")
|
|
9
|
+
|
|
10
|
+
README_TEMPLATE = """# {title}
|
|
11
|
+
|
|
12
|
+
## Hypothesis
|
|
13
|
+
Describe what should improve and why.
|
|
14
|
+
|
|
15
|
+
## Difference From Previous Experiment
|
|
16
|
+
- Describe concrete changes vs previous experiment.
|
|
17
|
+
|
|
18
|
+
## Method
|
|
19
|
+
- Data scope:
|
|
20
|
+
- Candidate generation:
|
|
21
|
+
- Scoring or rules:
|
|
22
|
+
- Acceptance criteria:
|
|
23
|
+
|
|
24
|
+
## Sources And Parsed At
|
|
25
|
+
- source: `parsed_at`
|
|
26
|
+
|
|
27
|
+
## Run Command
|
|
28
|
+
```powershell
|
|
29
|
+
python tmp/experiments/{package}/experiment.py
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Artifacts
|
|
33
|
+
- `results.json`
|
|
34
|
+
- `matched_pairs.csv`
|
|
35
|
+
- `top2_candidates.csv` (optional)
|
|
36
|
+
|
|
37
|
+
## Results
|
|
38
|
+
Fill after execution.
|
|
39
|
+
|
|
40
|
+
## Additional
|
|
41
|
+
- Previous experiment recheck on newer data:
|
|
42
|
+
- Divergences/precision drop analysis (if any):
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def find_next_number(experiments_dir: Path) -> int:
|
|
47
|
+
max_num = 0
|
|
48
|
+
for child in experiments_dir.iterdir():
|
|
49
|
+
if not child.is_dir():
|
|
50
|
+
continue
|
|
51
|
+
match = EXPERIMENT_DIR_PATTERN.match(child.name)
|
|
52
|
+
if not match:
|
|
53
|
+
continue
|
|
54
|
+
max_num = max(max_num, int(match.group(1)))
|
|
55
|
+
return max_num + 1
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def normalize_name(name: str) -> str:
|
|
59
|
+
cleaned = re.sub(r"[^a-zA-Z0-9\s_]", "", name).strip().lower()
|
|
60
|
+
cleaned = re.sub(r"[\s\-]+", "_", cleaned)
|
|
61
|
+
cleaned = re.sub(r"_+", "_", cleaned)
|
|
62
|
+
if not cleaned:
|
|
63
|
+
raise ValueError("Experiment name is empty after normalization")
|
|
64
|
+
return cleaned
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def create_package(repo_root: Path, experiment_name: str, dry_run: bool) -> Path:
|
|
68
|
+
experiments_dir = repo_root / "tmp" / "experiments"
|
|
69
|
+
experiments_dir.mkdir(parents=True, exist_ok=True)
|
|
70
|
+
|
|
71
|
+
number = find_next_number(experiments_dir)
|
|
72
|
+
slug = normalize_name(experiment_name)
|
|
73
|
+
package_name = f"{number:04}_{slug}"
|
|
74
|
+
package_dir = experiments_dir / package_name
|
|
75
|
+
|
|
76
|
+
if dry_run:
|
|
77
|
+
return package_dir
|
|
78
|
+
|
|
79
|
+
package_dir.mkdir(parents=False, exist_ok=False)
|
|
80
|
+
|
|
81
|
+
init_text = f'"""Experiment package: {package_name}."""\n'
|
|
82
|
+
(package_dir / "__init__.py").write_text(init_text, encoding="utf-8")
|
|
83
|
+
|
|
84
|
+
readme_title = f"{number:04} {slug.replace('_', ' ').title()}"
|
|
85
|
+
readme_text = README_TEMPLATE.format(title=readme_title, package=package_name)
|
|
86
|
+
(package_dir / "README.md").write_text(readme_text, encoding="utf-8")
|
|
87
|
+
|
|
88
|
+
return package_dir
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def parse_args() -> argparse.Namespace:
|
|
92
|
+
parser = argparse.ArgumentParser(description="Create the next experiment package in tmp/experiments")
|
|
93
|
+
parser.add_argument("--repo-root", required=True, help="Repository root path")
|
|
94
|
+
parser.add_argument("--experiment-name", required=True, help="Experiment name slug or phrase")
|
|
95
|
+
parser.add_argument("--dry-run", action="store_true", help="Only print target directory")
|
|
96
|
+
return parser.parse_args()
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def main() -> None:
|
|
100
|
+
args = parse_args()
|
|
101
|
+
repo_root = Path(args.repo_root).resolve()
|
|
102
|
+
package_dir = create_package(
|
|
103
|
+
repo_root=repo_root,
|
|
104
|
+
experiment_name=args.experiment_name,
|
|
105
|
+
dry_run=args.dry_run,
|
|
106
|
+
)
|
|
107
|
+
print(str(package_dir))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if __name__ == "__main__":
|
|
111
|
+
main()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# .git-blame-ignore-revs
|
|
2
|
+
# absolufy-imports - No relative - PEP8 (#8796)
|
|
3
|
+
cccb9d8d8e33a891396b1275c2448c352ef40c27
|
|
4
|
+
|
|
5
|
+
# Update `pre-commit` version (#8691)
|
|
6
|
+
510bbc380531cbf56a409f1ae68e6fd84a9599e6
|
|
7
|
+
|
|
8
|
+
# Run pyupgrade in CI (#8246)
|
|
9
|
+
80a82008d5b02a08f6ff59d802defcc43247eb1a
|
|
10
|
+
|
|
11
|
+
# Bump pre-commit hook versions (#7676)
|
|
12
|
+
d6bbbb08c92652eae2820e93edc2f3fe502391d3
|
|
13
|
+
|
|
14
|
+
# Start adding isort (#7370)
|
|
15
|
+
a31c0fc72e1cc59b8b0254965824abb0718c5f56
|
|
16
|
+
|
|
17
|
+
# Rerun with latest black release (#6568)
|
|
18
|
+
64e2a9b3b9992503221a074a547827501927d1fa
|
|
19
|
+
|
|
20
|
+
# LINT: Fixup black string normalization (#5227)
|
|
21
|
+
d92f4015a1da3da10c04c682ed2acae8469e9576
|
|
22
|
+
|
|
23
|
+
# Apply Black formatting (#4983)
|
|
24
|
+
7e4beffb339c69278091d4e305c2ae18ddf8c74f
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# These will be overridden by the publish workflow and set to the new tag
|
|
2
|
+
name-template: 'Next Release'
|
|
3
|
+
tag-template: 'next'
|
|
4
|
+
|
|
5
|
+
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
|
|
6
|
+
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
7
|
+
|
|
8
|
+
template: |
|
|
9
|
+
## Changes
|
|
10
|
+
|
|
11
|
+
$CHANGES
|
|
12
|
+
|
|
13
|
+
See the [Changelog](https://docs.dask.org/en/stable/changelog.html) for more information.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# .github/release.yml
|
|
2
|
+
|
|
3
|
+
changelog:
|
|
4
|
+
categories:
|
|
5
|
+
- title: New Features
|
|
6
|
+
labels:
|
|
7
|
+
- feature
|
|
8
|
+
- title: Enhancements
|
|
9
|
+
labels:
|
|
10
|
+
- enhancement
|
|
11
|
+
- title: Bug Fixes
|
|
12
|
+
labels:
|
|
13
|
+
- bug
|
|
14
|
+
- title: Deprecations
|
|
15
|
+
labels:
|
|
16
|
+
- deprecation
|
|
17
|
+
- title: Documentation
|
|
18
|
+
labels:
|
|
19
|
+
- documentation
|
|
20
|
+
- title: Maintenance
|
|
21
|
+
labels:
|
|
22
|
+
- tests
|
|
23
|
+
- hygiene
|
|
24
|
+
- title: Misc
|
|
25
|
+
labels:
|
|
26
|
+
- "*"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Additional
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
# Required shell entrypoint to have properly activated conda environments
|
|
6
|
+
defaults:
|
|
7
|
+
run:
|
|
8
|
+
shell: bash -l {0}
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
doctest:
|
|
12
|
+
runs-on: "ubuntu-latest"
|
|
13
|
+
timeout-minutes: 90
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout source
|
|
16
|
+
uses: actions/checkout@v6
|
|
17
|
+
|
|
18
|
+
- name: Setup Conda Environment
|
|
19
|
+
uses: conda-incubator/setup-miniconda@v3.3.0
|
|
20
|
+
with:
|
|
21
|
+
miniforge-version: latest
|
|
22
|
+
use-mamba: true
|
|
23
|
+
channel-priority: strict
|
|
24
|
+
environment-file: continuous_integration/environment-3.12.yaml
|
|
25
|
+
activate-environment: test-environment
|
|
26
|
+
auto-activate-base: false
|
|
27
|
+
|
|
28
|
+
- name: Install
|
|
29
|
+
run: source continuous_integration/scripts/install.sh
|
|
30
|
+
|
|
31
|
+
- name: Run tests
|
|
32
|
+
run: pytest -v --doctest-modules --ignore-glob='*/test_*.py' --ignore='dask/array/_array_expr/' dask
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: Conda build
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
tags:
|
|
7
|
+
- "*"
|
|
8
|
+
pull_request:
|
|
9
|
+
paths:
|
|
10
|
+
- setup.py
|
|
11
|
+
- continuous_integration/recipe/**
|
|
12
|
+
- .github/workflows/conda.yml
|
|
13
|
+
- pyproject.toml
|
|
14
|
+
|
|
15
|
+
# When this workflow is queued, automatically cancel any previous running
|
|
16
|
+
# or pending jobs from the same branch
|
|
17
|
+
concurrency:
|
|
18
|
+
group: conda-${{ github.ref }}
|
|
19
|
+
cancel-in-progress: true
|
|
20
|
+
|
|
21
|
+
# Required shell entrypoint to have properly activated conda environments
|
|
22
|
+
defaults:
|
|
23
|
+
run:
|
|
24
|
+
shell: bash -l {0}
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
conda:
|
|
28
|
+
name: Build (and upload)
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v6
|
|
32
|
+
with:
|
|
33
|
+
fetch-depth: 0
|
|
34
|
+
- name: Set up Python
|
|
35
|
+
uses: conda-incubator/setup-miniconda@v3.3.0
|
|
36
|
+
with:
|
|
37
|
+
miniforge-version: latest
|
|
38
|
+
use-mamba: true
|
|
39
|
+
python-version: 3.9
|
|
40
|
+
channel-priority: strict
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: |
|
|
43
|
+
mamba install -c conda-forge boa conda-verify
|
|
44
|
+
|
|
45
|
+
which python
|
|
46
|
+
pip list
|
|
47
|
+
mamba list
|
|
48
|
+
- name: Build conda package
|
|
49
|
+
run: |
|
|
50
|
+
# suffix for nightly package versions
|
|
51
|
+
export VERSION_SUFFIX=a`date +%y%m%d`
|
|
52
|
+
|
|
53
|
+
conda mambabuild continuous_integration/recipe \
|
|
54
|
+
--no-anaconda-upload \
|
|
55
|
+
--output-folder .
|
|
56
|
+
- name: Upload conda package
|
|
57
|
+
if: github.event_name == 'push' && github.repository == 'dask/dask'
|
|
58
|
+
env:
|
|
59
|
+
ANACONDA_API_TOKEN: ${{ secrets.DASK_CONDA_TOKEN }}
|
|
60
|
+
run: |
|
|
61
|
+
# install anaconda for upload
|
|
62
|
+
mamba install -c conda-forge anaconda-client
|
|
63
|
+
|
|
64
|
+
anaconda upload --label dev noarch/*.tar.bz2
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name: "Issue and PR Labeler"
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
types: [opened]
|
|
5
|
+
issues:
|
|
6
|
+
types: [opened, reopened]
|
|
7
|
+
jobs:
|
|
8
|
+
label-all-on-open:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: andymckay/labeler@1.0.4
|
|
12
|
+
with:
|
|
13
|
+
add-labels: "needs triage"
|
|
14
|
+
ignore-if-labeled: false
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: Linting
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: main
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
checks:
|
|
11
|
+
name: pre-commit hooks
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v6
|
|
15
|
+
- uses: actions/setup-python@v6
|
|
16
|
+
with:
|
|
17
|
+
python-version: '3.11'
|
|
18
|
+
- uses: pre-commit/action@v3.0.1
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Copied from https://github.com/EnricoMi/publish-unit-test-result-action/blob/v1.23/README.md#support-fork-repositories-and-dependabot-branches
|
|
2
|
+
# Warning: changes to this workflow will NOT be picked up until they land in the main branch!
|
|
3
|
+
# See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run
|
|
4
|
+
|
|
5
|
+
name: Publish test results
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
workflow_run:
|
|
9
|
+
workflows: [Tests]
|
|
10
|
+
types: [completed]
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish-test-results:
|
|
14
|
+
name: Publish test results
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
if: github.event.workflow_run.conclusion != 'skipped'
|
|
17
|
+
|
|
18
|
+
# Needed to post comments on the PR
|
|
19
|
+
permissions:
|
|
20
|
+
checks: write
|
|
21
|
+
pull-requests: write
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
- name: Download and extract artifacts
|
|
25
|
+
env:
|
|
26
|
+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
27
|
+
run: |
|
|
28
|
+
mkdir artifacts && cd artifacts
|
|
29
|
+
|
|
30
|
+
artifacts_url=${{ github.event.workflow_run.artifacts_url }}
|
|
31
|
+
|
|
32
|
+
gh api --paginate "$artifacts_url" -q '.artifacts[] | [.name, .archive_download_url] | @tsv' | while read artifact
|
|
33
|
+
do
|
|
34
|
+
IFS=$'\t' read name url <<< "$artifact"
|
|
35
|
+
gh api $url > "$name.zip"
|
|
36
|
+
unzip -d "$name" "$name.zip"
|
|
37
|
+
done
|
|
38
|
+
|
|
39
|
+
- name: Publish Unit Test Results
|
|
40
|
+
uses: EnricoMi/publish-unit-test-result-action@v2
|
|
41
|
+
with:
|
|
42
|
+
check_name: Unit Test Results
|
|
43
|
+
comment_title: |
|
|
44
|
+
Unit Test Results
|
|
45
|
+
_See [test report](https://dask.github.io/dask/test_report.html) for an extended history of previous test failures. This is useful for diagnosing flaky tests._
|
|
46
|
+
commit: ${{ github.event.workflow_run.head_sha }}
|
|
47
|
+
event_file: artifacts/Event File/event.json
|
|
48
|
+
event_name: ${{ github.event.workflow_run.event }}
|
|
49
|
+
junit_files: artifacts/**/*.xml
|
|
50
|
+
fail_on: "errors"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Release Drafter
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
update_release_draft:
|
|
13
|
+
if: github.repository == 'dask/dask'
|
|
14
|
+
permissions:
|
|
15
|
+
# Write permission is required to create a GitHub release
|
|
16
|
+
contents: write
|
|
17
|
+
pull-requests: read
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v6
|
|
21
|
+
with:
|
|
22
|
+
fetch-depth: 0 # Required to get tag history
|
|
23
|
+
- name: Check if release commit
|
|
24
|
+
id: check_release_commit
|
|
25
|
+
run: git describe --exact-match --tags $(git rev-parse HEAD)
|
|
26
|
+
continue-on-error: true
|
|
27
|
+
- uses: release-drafter/release-drafter@v6
|
|
28
|
+
if: steps.check_release_commit.outcome != 'success'
|
|
29
|
+
with:
|
|
30
|
+
disable-autolabeler: true
|
|
31
|
+
env:
|
|
32
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Release Publisher
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "*.*.*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
publish_release:
|
|
13
|
+
if: github.repository == 'dask/dask'
|
|
14
|
+
permissions:
|
|
15
|
+
# Write permission is required to publish a GitHub release
|
|
16
|
+
contents: write
|
|
17
|
+
pull-requests: read
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- name: Set version env
|
|
21
|
+
# Use a little bit of bash to extract the tag name from the GitHub ref
|
|
22
|
+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
|
23
|
+
- uses: release-drafter/release-drafter@v6
|
|
24
|
+
with:
|
|
25
|
+
disable-autolabeler: true
|
|
26
|
+
# Override the Release name/tag/version with the actual tag name
|
|
27
|
+
name: ${{ env.RELEASE_VERSION }}
|
|
28
|
+
tag: ${{ env.RELEASE_VERSION }}
|
|
29
|
+
version: ${{ env.RELEASE_VERSION }}
|
|
30
|
+
# Publish the Release
|
|
31
|
+
publish: true
|
|
32
|
+
env:
|
|
33
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: 'Label stale issues and PRs'
|
|
2
|
+
on:
|
|
3
|
+
schedule:
|
|
4
|
+
- cron: '30 1 * * 1' # runs once a week
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
stale:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/stale@v10
|
|
11
|
+
with:
|
|
12
|
+
stale-issue-message: '' # no comment left if string is empty
|
|
13
|
+
stale-pr-message: '' # no comment left if string is empty
|
|
14
|
+
days-before-stale: 30
|
|
15
|
+
days-before-close: -1
|
|
16
|
+
stale-issue-label: 'needs attention'
|
|
17
|
+
stale-pr-label: 'needs attention'
|
|
18
|
+
exempt-issue-labels: 'good intro to dask,good first issue,Good First Issue,good second issue,feature request'
|
|
19
|
+
exempt-draft-pr: true
|
|
20
|
+
start-date: '2020-04-18T00:00:00Z' # ignore before this date, ISO 8601 or RFC 2822
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Test Report
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# Run 2h after the daily tests.yaml
|
|
6
|
+
- cron: "0 8,20 * * *"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test-report:
|
|
14
|
+
name: Test Report
|
|
15
|
+
# Do not run the report job on forks
|
|
16
|
+
if: github.repository == 'dask/dask' || github.event_name == 'workflow_dispatch'
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
env:
|
|
19
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
20
|
+
defaults:
|
|
21
|
+
run:
|
|
22
|
+
shell: bash -l {0}
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v6
|
|
25
|
+
with:
|
|
26
|
+
repository: dask/distributed
|
|
27
|
+
|
|
28
|
+
- name: Setup Conda Environment
|
|
29
|
+
uses: conda-incubator/setup-miniconda@v3.3.0
|
|
30
|
+
with:
|
|
31
|
+
miniforge-version: latest
|
|
32
|
+
condarc-file: continuous_integration/condarc
|
|
33
|
+
use-mamba: true
|
|
34
|
+
# Note: this file is in the dask/distributed repo
|
|
35
|
+
environment-file: continuous_integration/scripts/test-report-environment.yml
|
|
36
|
+
activate-environment: dask
|
|
37
|
+
|
|
38
|
+
- name: Show conda options
|
|
39
|
+
run: conda config --show
|
|
40
|
+
|
|
41
|
+
- name: mamba list
|
|
42
|
+
run: mamba list
|
|
43
|
+
|
|
44
|
+
- uses: actions/cache@v5
|
|
45
|
+
id: cache
|
|
46
|
+
with:
|
|
47
|
+
# Suffix is depending on the backend / OS. Let's be agnostic here
|
|
48
|
+
# See https://docs.python.org/3/library/shelve.html#shelve.open
|
|
49
|
+
path: |
|
|
50
|
+
test_report*
|
|
51
|
+
!test_report.html
|
|
52
|
+
# Note: these files are in the dask/distributed repository
|
|
53
|
+
key: ${{ hashFiles('continuous_integration/scripts/test_report*') }}
|
|
54
|
+
|
|
55
|
+
- name: Generate report
|
|
56
|
+
run: |
|
|
57
|
+
python continuous_integration/scripts/test_report.py --repo dask/dask --max-days 90 --max-runs 30 --nfails 1 -o test_report.html
|
|
58
|
+
python continuous_integration/scripts/test_report.py --repo dask/dask --max-days 7 --max-runs 30 --nfails 2 -o test_short_report.html --title "Test Short Report"
|
|
59
|
+
mkdir deploy
|
|
60
|
+
mv test_report.html test_short_report.html deploy/
|
|
61
|
+
|
|
62
|
+
- name: Deploy 🚀
|
|
63
|
+
uses: JamesIves/github-pages-deploy-action@v4.8.0
|
|
64
|
+
with:
|
|
65
|
+
branch: gh-pages
|
|
66
|
+
folder: deploy
|