diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f28950f..aabe40da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,11 @@ chronological order. Releases follow [semantic versioning](https://semver.org/) releases are available on [PyPI](https://pypi.org/project/pytask) and [Anaconda.org](https://anaconda.org/conda-forge/pytask). -## Unreleased +## 0.6.0 - 2026-05-01 +- [#875](https://github.com/pytask-dev/pytask/pull/875) improves the documentation + homepage cards by making the full tile clickable and fixes the plugin list warning + admonition formatting. - [#874](https://github.com/pytask-dev/pytask/pull/874) improves the lockfile documentation by restructuring related guides around user workflows and introducing `pytask.lock` in the tutorials. diff --git a/docs/source/_static/css/custom.css b/docs/source/_static/css/custom.css index af20402d..5b14a18e 100644 --- a/docs/source/_static/css/custom.css +++ b/docs/source/_static/css/custom.css @@ -3,9 +3,16 @@ } .home-card-grid li { + position: relative; text-align: center; } +.home-card-grid li .home-card-title::after { + position: absolute; + inset: 0; + content: ""; +} + .home-card-icon { display: block; margin: 0 auto 0.75rem; diff --git a/docs/source/_static/md/capture.md b/docs/source/_static/md/capture.md index afc7e525..79c18401 100644 --- a/docs/source/_static/md/capture.md +++ b/docs/source/_static/md/capture.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 tasks. diff --git a/docs/source/_static/md/clean-dry-run-directories.md b/docs/source/_static/md/clean-dry-run-directories.md index 063e8925..bb5fe37c 100644 --- a/docs/source/_static/md/clean-dry-run-directories.md +++ b/docs/source/_static/md/clean-dry-run-directories.md @@ -4,7 +4,7 @@ $ pytask clean --directories ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/clean-dry-run.md b/docs/source/_static/md/clean-dry-run.md index 4872c9e3..cffde583 100644 --- a/docs/source/_static/md/clean-dry-run.md +++ b/docs/source/_static/md/clean-dry-run.md @@ -4,7 +4,7 @@ $ pytask clean ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/collect-nodes.md b/docs/source/_static/md/collect-nodes.md index 5ba213ff..63d489b0 100644 --- a/docs/source/_static/md/collect-nodes.md +++ b/docs/source/_static/md/collect-nodes.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/collect.md b/docs/source/_static/md/collect.md index b7a2adb3..5bd6e5bc 100644 --- a/docs/source/_static/md/collect.md +++ b/docs/source/_static/md/collect.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/defining-dependencies-products.md b/docs/source/_static/md/defining-dependencies-products.md index d991931c..b6235227 100644 --- a/docs/source/_static/md/defining-dependencies-products.md +++ b/docs/source/_static/md/defining-dependencies-products.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 task. diff --git a/docs/source/_static/md/dry-run.md b/docs/source/_static/md/dry-run.md index 2a0209ed..ba4e043a 100644 --- a/docs/source/_static/md/dry-run.md +++ b/docs/source/_static/md/dry-run.md @@ -4,7 +4,7 @@ $ pytask --dry-run ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/explain.md b/docs/source/_static/md/explain.md index 0f7e8a54..dcb26818 100644 --- a/docs/source/_static/md/explain.md +++ b/docs/source/_static/md/explain.md @@ -4,7 +4,7 @@ $ pytask --explain ────────────────────────── Start pytask session ───────────────────────── -Platform: darwin -- Python 3.12.0, pytask 0.5.6, pluggy 1.6.0 +Platform: darwin -- Python 3.13.0, pytask 0.6.0, pluggy 1.6.0 Root: /Users/pytask-dev/git/my_project Collected 3 tasks. diff --git a/docs/source/_static/md/help-page.md b/docs/source/_static/md/help-page.md index 30354811..5fce1c11 100644 --- a/docs/source/_static/md/help-page.md +++ b/docs/source/_static/md/help-page.md @@ -3,7 +3,7 @@ ```console $ pytask --help -
pytask v0.5.3
+
pytask v0.6.0
Usage: pytask [OPTIONS] [COMMAND] [PATHS] Manage your tasks with pytask. diff --git a/docs/source/_static/md/lock-accept-dry-run.md b/docs/source/_static/md/lock-accept-dry-run.md index acf5ee72..eba967c7 100644 --- a/docs/source/_static/md/lock-accept-dry-run.md +++ b/docs/source/_static/md/lock-accept-dry-run.md @@ -4,7 +4,7 @@ $ pytask lock accept -k train --dry-run ────────────────────────── Start pytask session ────────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3 +Platform: win32 -- Python 3.13.0, pytask 0.6.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 tasks. Would accept recorded state for task_train.py::task_train. diff --git a/docs/source/_static/md/lock-accept-interactive.md b/docs/source/_static/md/lock-accept-interactive.md index 67615034..6e5952eb 100644 --- a/docs/source/_static/md/lock-accept-interactive.md +++ b/docs/source/_static/md/lock-accept-interactive.md @@ -3,7 +3,7 @@ ```console $ pytask lock accept -k train ────────────────────────── Start pytask session ────────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3 +Platform: win32 -- Python 3.13.0, pytask 0.6.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 tasks. # Accept recorded state for task_train.py::task_train? [y/N]: $ y diff --git a/docs/source/_static/md/lock-clean.md b/docs/source/_static/md/lock-clean.md index b60b30ed..c260245c 100644 --- a/docs/source/_static/md/lock-clean.md +++ b/docs/source/_static/md/lock-clean.md @@ -3,7 +3,7 @@ ```console $ pytask lock clean ────────────────────────── Start pytask session ────────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3 +Platform: win32 -- Python 3.13.0, pytask 0.6.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 tasks. # Remove recorded state for task_old.py::task_train? [y/N]: $ y diff --git a/docs/source/_static/md/logging-live.md b/docs/source/_static/md/logging-live.md index c42106d4..9f974d28 100644 --- a/docs/source/_static/md/logging-live.md +++ b/docs/source/_static/md/logging-live.md @@ -4,7 +4,7 @@ $ pytask --log-cli --log-cli-level=INFO --show-capture=log ───────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 tasks. diff --git a/docs/source/_static/md/migrating-from-scripts-to-pytask.md b/docs/source/_static/md/migrating-from-scripts-to-pytask.md index 4508d10a..6d8aa591 100644 --- a/docs/source/_static/md/migrating-from-scripts-to-pytask.md +++ b/docs/source/_static/md/migrating-from-scripts-to-pytask.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/pdb.md b/docs/source/_static/md/pdb.md index 3017f26e..f13f1abf 100644 --- a/docs/source/_static/md/pdb.md +++ b/docs/source/_static/md/pdb.md @@ -4,7 +4,7 @@ $ pytask --pdb ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/persist-executed.md b/docs/source/_static/md/persist-executed.md index f2d8ba0d..47694422 100644 --- a/docs/source/_static/md/persist-executed.md +++ b/docs/source/_static/md/persist-executed.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/persist-persisted.md b/docs/source/_static/md/persist-persisted.md index 75f055ed..bdfe8464 100644 --- a/docs/source/_static/md/persist-persisted.md +++ b/docs/source/_static/md/persist-persisted.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/persist-skipped.md b/docs/source/_static/md/persist-skipped.md index 27cfbcab..645d90a3 100644 --- a/docs/source/_static/md/persist-skipped.md +++ b/docs/source/_static/md/persist-skipped.md @@ -4,7 +4,7 @@ $ pytask --verbose 2 ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/profiling-tasks.md b/docs/source/_static/md/profiling-tasks.md index e906ecc5..a3244bdf 100644 --- a/docs/source/_static/md/profiling-tasks.md +++ b/docs/source/_static/md/profiling-tasks.md @@ -4,7 +4,7 @@ $ pytask profile ───────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 18 task. diff --git a/docs/source/_static/md/readme.md b/docs/source/_static/md/readme.md index e0a2e096..a74635ba 100644 --- a/docs/source/_static/md/readme.md +++ b/docs/source/_static/md/readme.md @@ -4,7 +4,7 @@ $ pytask ──────────────────────────── Start pytask session ──────────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/repeating-tasks.md b/docs/source/_static/md/repeating-tasks.md index 4f461bc4..47787123 100644 --- a/docs/source/_static/md/repeating-tasks.md +++ b/docs/source/_static/md/repeating-tasks.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 10 task. diff --git a/docs/source/_static/md/show-locals.md b/docs/source/_static/md/show-locals.md index 6e6c3655..9e8a1e3b 100644 --- a/docs/source/_static/md/show-locals.md +++ b/docs/source/_static/md/show-locals.md @@ -4,7 +4,7 @@ $ pytask --show-locals ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/trace.md b/docs/source/_static/md/trace.md index 6626b4d9..e6318d7f 100644 --- a/docs/source/_static/md/trace.md +++ b/docs/source/_static/md/trace.md @@ -4,7 +4,7 @@ $ pytask --trace ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/try-first.md b/docs/source/_static/md/try-first.md index 3363b6b6..51e8cbb3 100644 --- a/docs/source/_static/md/try-first.md +++ b/docs/source/_static/md/try-first.md @@ -4,7 +4,7 @@ $ pytask -s ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 task. diff --git a/docs/source/_static/md/try-last.md b/docs/source/_static/md/try-last.md index 7e1e128b..d0a4094b 100644 --- a/docs/source/_static/md/try-last.md +++ b/docs/source/_static/md/try-last.md @@ -4,7 +4,7 @@ $ pytask -s ────────────────────────── Start pytask session ──────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 2 task. diff --git a/docs/source/_static/md/warning.md b/docs/source/_static/md/warning.md index 2295f900..fa920ba7 100644 --- a/docs/source/_static/md/warning.md +++ b/docs/source/_static/md/warning.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/write-a-task.md b/docs/source/_static/md/write-a-task.md index a8fe9f8f..95080385 100644 --- a/docs/source/_static/md/write-a-task.md +++ b/docs/source/_static/md/write-a-task.md @@ -4,7 +4,7 @@ $ pytask ────────────────────────── Start pytask session ───────────────────────── -Platform: win32 -- Python 3.12.0, pytask 0.5.3, pluggy 1.3.0 +Platform: win32 -- Python 3.13.0, pytask 0.6.0, pluggy 1.3.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/how_to_guides/functional_interface.ipynb b/docs/source/how_to_guides/functional_interface.ipynb index 76293065..f7601314 100644 --- a/docs/source/how_to_guides/functional_interface.ipynb +++ b/docs/source/how_to_guides/functional_interface.ipynb @@ -85,11 +85,11 @@ { "data": { "text/html": [ - "
Platform: darwin -- Python 3.12.12, pytask 0.5.6, pluggy 1.6.0\n",
+       "
Platform: darwin -- Python 3.12.12, pytask 0.6.0, pluggy 1.6.0\n",
        "
\n" ], "text/plain": [ - "Platform: darwin -- Python 3.12.12, pytask 0.5.6, pluggy 1.6.0\n" + "Platform: darwin -- Python 3.12.12, pytask 0.6.0, pluggy 1.6.0\n" ] }, "metadata": {}, @@ -334,11 +334,11 @@ { "data": { "text/html": [ - "
Platform: darwin -- Python 3.12.12, pytask 0.5.6, pluggy 1.6.0\n",
+       "
Platform: darwin -- Python 3.12.12, pytask 0.6.0, pluggy 1.6.0\n",
        "
\n" ], "text/plain": [ - "Platform: darwin -- Python 3.12.12, pytask 0.5.6, pluggy 1.6.0\n" + "Platform: darwin -- Python 3.12.12, pytask 0.6.0, pluggy 1.6.0\n" ] }, "metadata": {}, diff --git a/docs/source/index.md b/docs/source/index.md index e320bf1c..97b9499c 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -13,40 +13,25 @@ [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pytask-dev/pytask/main.svg)](https://results.pre-commit.ci/latest/github/pytask-dev/pytask/main) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) -## Features - -pytask is a [workflow management system](glossary.md#workflow-management-system) that -facilitates reproducible data analyses. Its features include: +pytask facilitates reproducible data analyses. Its features are: -- **Automatic discovery of tasks.** -- **Lazy evaluation.** If a task, its dependencies, and its products have not changed, - do not execute it. -- **Debug mode.** +- **Automatic discovery of tasks** +- **Lazy execution**: Skip tasks when inputs and outputs are unchanged. +- **Debug mode**: [Jump into the debugger](https://pytask-dev.readthedocs.io/en/stable/tutorials/debugging.html) - if a task fails, get feedback quickly, and be more productive. -- **Repeat a task with different inputs.** - [Loop over task functions](https://pytask-dev.readthedocs.io/en/stable/tutorials/repeating_tasks_with_different_inputs.html) - to run the same task with different inputs. -- **Select tasks via expressions.** Run only a subset of tasks with - [expressions and marker expressions](https://pytask-dev.readthedocs.io/en/stable/tutorials/selecting_tasks.html). -- **Easily extensible with plugins**. pytask is built on top of - [pluggy](https://pluggy.readthedocs.io/en/latest/), a plugin management framework, - which allows you to adjust pytask to your needs. Plugins are available for + if a task fails. +- **Repeat a task with different inputs**: + [Loop over task functions](https://pytask-dev.readthedocs.io/en/stable/tutorials/repeating_tasks_with_different_inputs.html). +- **Task Selection**: Run subsets with + [expressions and markers](https://pytask-dev.readthedocs.io/en/stable/tutorials/selecting_tasks.html). +- **Plugins**: Extend pytask with plugins for [parallelization](https://github.com/pytask-dev/pytask-parallel), [LaTeX](https://github.com/pytask-dev/pytask-latex), [R](https://github.com/pytask-dev/pytask-r), and - [Stata](https://github.com/pytask-dev/pytask-stata), and more can be found - [here](https://github.com/topics/pytask). Learn more about plugins in - [this tutorial](https://pytask-dev.readthedocs.io/en/stable/tutorials/plugins.html). - -To get started with pytask, the documentation includes a series of tutorials. Go to the -first [tutorial](tutorials/installation.md) for the installation and proceed from there. - -## Documentation - -If you want to know more about pytask, dive into one of the following topics. + [Stata](https://github.com/pytask-dev/pytask-stata), and + [more](https://pytask-dev.readthedocs.io/en/stable/tutorials/plugins.html).
diff --git a/docs/source/plugin_list.md b/docs/source/plugin_list.md index d33b91e7..7bf0ab90 100644 --- a/docs/source/plugin_list.md +++ b/docs/source/plugin_list.md @@ -5,15 +5,13 @@ Packages classified as inactive are excluded. !!! warning -``` -Please be aware that this list is not a curated collection of projects and does not -undergo a systematic review process. It serves purely as an informational resource -to aid in the discovery of `pytask` plugins. + Please be aware that this list is not a curated collection of projects and does not + undergo a systematic review process. It serves purely as an informational resource to + aid in the discovery of `pytask` plugins. -Do not presume any endorsement from the `pytask` project or its developers, and -always conduct your own quality assessment before incorporating any of these plugins -into your own projects. -``` + Do not presume any endorsement from the `pytask` project or its developers, and always + conduct your own quality assessment before incorporating any of these plugins into your + own projects. This list contains 6 plugins. diff --git a/scripts/update_plugin_list.py b/scripts/update_plugin_list.py index fc1c2853..8e6eb970 100644 --- a/scripts/update_plugin_list.py +++ b/scripts/update_plugin_list.py @@ -49,15 +49,13 @@ !!! warning -``` -Please be aware that this list is not a curated collection of projects and does not -undergo a systematic review process. It serves purely as an informational resource -to aid in the discovery of `pytask` plugins. - -Do not presume any endorsement from the `pytask` project or its developers, and -always conduct your own quality assessment before incorporating any of these plugins -into your own projects. -``` + Please be aware that this list is not a curated collection of projects and does + not undergo a systematic review process. It serves purely as an informational + resource to aid in the discovery of `pytask` plugins. + + Do not presume any endorsement from the `pytask` project or its developers, and + always conduct your own quality assessment before incorporating any of these + plugins into your own projects. """