From ee0caa94e9b3c9bd5a6f625f4e5f1a9aaaf5409a Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Tue, 17 Oct 2023 22:30:08 +0200 Subject: [PATCH 1/2] Remove. --- docs/source/_static/images/capture.svg | 167 ----------------- .../images/clean-dry-run-directories.svg | 59 ------ docs/source/_static/images/clean-dry-run.svg | 60 ------ docs/source/_static/images/collect-nodes.svg | 123 ------------ docs/source/_static/images/collect.svg | 121 ------------ docs/source/_static/images/dry-run.svg | 132 ------------- docs/source/_static/images/help_page.svg | 139 -------------- docs/source/_static/images/markers.svg | 144 -------------- docs/source/_static/images/pdb.svg | 143 -------------- .../_static/images/persist-executed.svg | 133 ------------- .../source/_static/images/persist-skipped.svg | 133 ------------- docs/source/_static/images/profile.svg | 141 -------------- docs/source/_static/images/pytask-profile.png | Bin 101272 -> 0 bytes docs/source/_static/images/readme.svg | 134 ------------- .../source/_static/images/repeating-tasks.svg | 142 -------------- docs/source/_static/images/show-locals.svg | 176 ------------------ docs/source/_static/images/trace.svg | 119 ------------ docs/source/_static/images/try-first.svg | 136 -------------- docs/source/_static/images/try-last.svg | 136 -------------- docs/source/_static/images/warning.svg | 146 --------------- docs/source/_static/images/write-a-task.svg | 134 ------------- docs/source/_static/md/capture.md | 2 +- .../_static/md/clean-dry-run-directories.md | 2 +- docs/source/_static/md/clean-dry-run.md | 2 +- docs/source/_static/md/collect-nodes.md | 2 +- docs/source/_static/md/collect.md | 2 +- docs/source/_static/md/dry-run.md | 2 +- docs/source/_static/md/help-page.md | 2 +- .../md/migrating-from-scripts-to-pytask.md | 2 +- docs/source/_static/md/pdb.md | 2 +- docs/source/_static/md/persist-executed.md | 2 +- docs/source/_static/md/persist-persisted.md | 2 +- docs/source/_static/md/persist-skipped.md | 2 +- docs/source/_static/md/profiling-tasks.md | 34 ++++ docs/source/_static/md/readme.md | 2 +- docs/source/_static/md/repeating-tasks.md | 2 +- docs/source/_static/md/show-locals.md | 2 +- docs/source/_static/md/trace.md | 2 +- docs/source/_static/md/try-first.md | 2 +- docs/source/_static/md/try-last.md | 2 +- docs/source/_static/md/warning.md | 2 +- docs/source/_static/md/write-a-task.md | 2 +- docs/source/changes.md | 1 + docs/source/tutorials/profiling_tasks.md | 2 +- 44 files changed, 56 insertions(+), 2639 deletions(-) delete mode 100644 docs/source/_static/images/capture.svg delete mode 100644 docs/source/_static/images/clean-dry-run-directories.svg delete mode 100644 docs/source/_static/images/clean-dry-run.svg delete mode 100644 docs/source/_static/images/collect-nodes.svg delete mode 100644 docs/source/_static/images/collect.svg delete mode 100644 docs/source/_static/images/dry-run.svg delete mode 100644 docs/source/_static/images/help_page.svg delete mode 100644 docs/source/_static/images/markers.svg delete mode 100644 docs/source/_static/images/pdb.svg delete mode 100644 docs/source/_static/images/persist-executed.svg delete mode 100644 docs/source/_static/images/persist-skipped.svg delete mode 100644 docs/source/_static/images/profile.svg delete mode 100644 docs/source/_static/images/pytask-profile.png delete mode 100644 docs/source/_static/images/readme.svg delete mode 100644 docs/source/_static/images/repeating-tasks.svg delete mode 100644 docs/source/_static/images/show-locals.svg delete mode 100644 docs/source/_static/images/trace.svg delete mode 100644 docs/source/_static/images/try-first.svg delete mode 100644 docs/source/_static/images/try-last.svg delete mode 100644 docs/source/_static/images/warning.svg delete mode 100644 docs/source/_static/images/write-a-task.svg create mode 100644 docs/source/_static/md/profiling-tasks.md diff --git a/docs/source/_static/images/capture.svg b/docs/source/_static/images/capture.svg deleted file mode 100644 index cca2f187..00000000 --- a/docs/source/_static/images/capture.svg +++ /dev/null @@ -1,167 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 2 tasks.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_capture.py::task_func1.
-
task_capture.py::task_func2F
-
└─────────────────────────────┴─────────┘
-
-
────────────────────────────────────────────── Failures ──────────────────────────────────────────────
-
-
────────────────────────────── Task task_capture.py::task_func2 failed ───────────────────────────────
-
-
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
-
-
C:\Users\pytask-dev\git\pytask-examples\task_capture.py:13 in task_func2
-
-
10
-
11 def task_func2():
-
12 │ print("Debug statement")
-
13 assert False
-
14
-
15
-
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
-
AssertionError
-
-
──────────────────────────────────── Captured stdout during call ─────────────────────────────────────
-
Debug statement
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ───────────╮
-
2 Collected tasks
-
1 Succeeded (50.0%)
-
1 Failed (50.0%)
-
╰───────────────────────────────╯
-
─────────────────────────────────────── Failed in 0.03 seconds ───────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/clean-dry-run-directories.svg b/docs/source/_static/images/clean-dry-run-directories.svg deleted file mode 100644 index b1284915..00000000 --- a/docs/source/_static/images/clean-dry-run-directories.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - pytask - - - - - - - ──────────────────────────────────────── Start pytask session ──────────────────────────────────────── -Platform: win32 -- Python 3.10.2, pytask 0.2.2, pluggy 0.12.0                                          -Root: C:\Users\TobiasR\git\pytask                                                                      -Collected 25 tasks.                                                                                    -                                                                                                       -Files and directories which can be removed:                                                            -                                                                                                       -Would remove svgs\obsolete_file_1.md                                                                   -Would remove svgs\obsolete_folder                                                                      -                                                                                                       -────────────────────────────────────────────────────────────────────────────────────────────────────── - - - diff --git a/docs/source/_static/images/clean-dry-run.svg b/docs/source/_static/images/clean-dry-run.svg deleted file mode 100644 index 77b508ae..00000000 --- a/docs/source/_static/images/clean-dry-run.svg +++ /dev/null @@ -1,60 +0,0 @@ - - - - pytask - - - - - - - ──────────────────────────────────────── Start pytask session ──────────────────────────────────────── -Platform: win32 -- Python 3.10.2, pytask 0.2.2, pluggy 0.12.0                                          -Root: C:\Users\TobiasR\git\pytask                                                                      -Collected 25 tasks.                                                                                    -                                                                                                       -Files which can be removed:                                                                            -                                                                                                       -Would remove svgs\obsolete_file_1.md                                                                   -Would remove svgs\obsolete_folder\obsolete_file_2.md                                                   -Would remove svgs\obsolete_folder\obsolete_file_3.md                                                   -                                                                                                       -────────────────────────────────────────────────────────────────────────────────────────────────────── - - - diff --git a/docs/source/_static/images/collect-nodes.svg b/docs/source/_static/images/collect-nodes.svg deleted file mode 100644 index 06ab1965..00000000 --- a/docs/source/_static/images/collect-nodes.svg +++ /dev/null @@ -1,123 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask collect --nodes
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 1 task.
-
-
Collected tasks:
-
└── 🐍 <Module task_module.py>
-
└── 📝 <Function task_module.py::task_write_file>
-
├── 📄 <Dependency pytask-examples\in.txt>
-
└── 📄 <Product pytask-examples/out.txt>
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/collect.svg b/docs/source/_static/images/collect.svg deleted file mode 100644 index 3939a24f..00000000 --- a/docs/source/_static/images/collect.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask collect
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\TobiasR\git\pytask-examples
-
Collected 1 task.
-
-
Collected tasks:
-
└── 🐍 <Module task_module.py>
-
└── 📝 <Function task_module.py::task_write_file>
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/dry-run.svg b/docs/source/_static/images/dry-run.svg deleted file mode 100644 index cb909827..00000000 --- a/docs/source/_static/images/dry-run.svg +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pytask - - - - - - - - - - ───────────────────────────────────────────────── Start pytask session ───────────────────────────────────────────────── -Platform: win32 -- Python 3.10.4, pytask 0.2.5., pluggy 1.0.0 -Root: C:\Users\TobiasR\git\pytask -Collected 1 task. - - -┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓ -Task                         Outcome -┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩ -task_dry_run.py::task_dry_runw       -└───────────────────────────────┴─────────┘ - -──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -╭──────────── Summary ─────────────╮ -1Collected tasks   -1Would be executed(100.0%) -╰──────────────────────────────────╯ -──────────────────────────────────────────────── Succeeded in 0 seconds ──────────────────────────────────────────────── - - - - diff --git a/docs/source/_static/images/help_page.svg b/docs/source/_static/images/help_page.svg deleted file mode 100644 index 9e339c60..00000000 --- a/docs/source/_static/images/help_page.svg +++ /dev/null @@ -1,139 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask --help
-
pytask v0.2.0
-
-
Usage: pytask [OPTIONS] [COMMAND] [PATHS]
-
-
Manage your tasks with pytask.
-
-
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────╮
-
build * Collect tasks, execute them and report the results.
-
-
This is pytask's default command. pytask collects tasks from the given paths or the
-
current working directory, executes them and reports the results.
-
clean Clean the provided paths by removing files unknown to pytask.
-
collect Collect tasks and report information about them.
-
dag Create a visualization of the project's directed acyclic graph.
-
markers Show all registered markers.
-
profile Show information about tasks like runtime and memory consumption of products.
-
╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯
-
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────╮
-
--version Show the version and exit.
-
-h --help Show this message and exit.
-
╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯
-
https://pytask-dev.readthedocs.io
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/markers.svg b/docs/source/_static/images/markers.svg deleted file mode 100644 index 5febd4cd..00000000 --- a/docs/source/_static/images/markers.svg +++ /dev/null @@ -1,144 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask markers
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-
Marker Description
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
-
pytask.mark.depends_on │ Add dependencies to a task. See this tutorial for more │
-
│ │ information: https://bit.ly/3JlxylS. │
-
│ │ │
-
pytask.mark.persist Prevent execution of a task if all products exist and even if
-
│ │ something has changed (dependencies, source file, products).
-
│ │ This decorator might be useful for expensive tasks where only
-
│ │ the formatting of the file has changed. The state of the files
-
│ │ which have changed will also be remembered and another run will
-
│ │ skip the task with success.
-
│ │ │
-
pytask.mark.produces │ Add products to a task. See this tutorial for more information: │
- -
│ │ │
-
pytask.mark.skip Skip a task and all its dependent tasks.
-
│ │ │
-
pytask.mark.skip_ancestor_failedInternal decorator applied to tasks if any of its preceding
-
│ │ tasks failed.
-
│ │ │
-
pytask.mark.skip_unchanged Internal decorator applied to tasks which have already been
-
│ │ executed and have not been changed.
-
│ │ │
-
pytask.mark.skipif Skip a task and all its dependent tasks if a condition is met.
-
│ │ │
-
pytask.mark.task │ Mark a function as a task regardless of its name. Or mark tasks │
-
│ │ which are repeated in a loop. See this tutorial for more │
-
│ │ information: https://bit.ly/3DWrXS3. │
-
│ │ │
-
pytask.mark.try_first Try to execute a task a early as possible.
-
│ │ │
-
pytask.mark.try_last Try to execute a task a late as possible.
-
└──────────────────────────────────┴─────────────────────────────────────────────────────────────────┘
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/pdb.svg b/docs/source/_static/images/pdb.svg deleted file mode 100644 index cb7576a4..00000000 --- a/docs/source/_static/images/pdb.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask --pdb
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\my_project
-
Collected 1 task.
-
-
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
-
-
C:\Users\pytask-dev\git\my_project\task_data_preparation.py:23 in task_create_random_data
-
-
20 │
-
21 │ df = pd.DataFrame({"x": x, "y": y})
-
22 │
-
23 raise Exception
-
24 │
-
25 │ df.to_pickle(produces)
-
26
-
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
-
Exception
-
-
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PDB post_mortem (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-
> c:\users\pytask-dev\git\my_project\task_data_preparation.py(23)task_create_random_data()
-
-> raise Exception
-
(Pdb) |
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/persist-executed.svg b/docs/source/_static/images/persist-executed.svg deleted file mode 100644 index cde5d16f..00000000 --- a/docs/source/_static/images/persist-executed.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 1 task.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_module.py::task_make_input_bold .
-
└────────────────────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
1 Collected tasks
-
1 Succeeded (100.0%)
-
╰────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.07 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/persist-skipped.svg b/docs/source/_static/images/persist-skipped.svg deleted file mode 100644 index 39889332..00000000 --- a/docs/source/_static/images/persist-skipped.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask --verbose 2
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 1 task.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_module.py::task_make_input_bold s
-
└───────────────────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭──────────────── Summary ─────────────────╮
-
1 Collected tasks
-
1 Skipped because unchanged (100.0%)
-
╰──────────────────────────────────────────╯
-
────────────────────────────────────── Succeeded in 0.0 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/profile.svg b/docs/source/_static/images/profile.svg deleted file mode 100644 index e6212614..00000000 --- a/docs/source/_static/images/profile.svg +++ /dev/null @@ -1,141 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\software_patents
-
Configuration: C:\Users\pytask-dev\git\software_patents\pyproject.toml
-
Plugins: latex-0.2.0, parallel-0.2.0
-
Collected 18 tasks.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓
-
Task Duration (in s) Size of Products
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
-
task_apply_bh_to_indicators.py::task_apply_bh_to_indicators[… 3.93 123 MB
-
task_apply_bh_to_indicators.py::task_apply_bh_to_indicators[… 0.09 13 MB
-
task_replicate_results_of_bh2007.py::task_replicate_results_… 0.09 13 MB
-
task_replicate_results_of_bh2007.py::task_replicate_results_… 8.99 8 MB
-
task_merge_indicators.py::task_merge_indicators 74.44 499 MB
-
task_prepare_bessen_hunt_2007.py::task_prepare_bessen_hunt_2… 80.15 15 MB
-
task_prepare_datasets.py::task_copy_files[depends_on0-produc… 0.11 35 MB
-
task_prepare_datasets.py::task_copy_files[depends_on1-produc… 0.92 35 MB
-
task_prepare_datasets.py::task_copy_files[depends_on2-produc… 0.11 34 MB
-
task_prepare_datasets.py::task_copy_files[depends_on3-produc… 0.12 35 MB
-
task_prepare_datasets.py::task_copy_files[depends_on4-produc… 0.12 35 MB
-
task_prepare_datasets.py::task_copy_files[depends_on5-produc… 0.44 143 MB
-
task_prepare_datasets.py::task_copy_files[depends_on6-produc… 0.73 143 MB
-
task_prepare_datasets.py::task_copy_files[depends_on7-produc… 0.37 114 MB
-
task_prepare_datasets.py::task_copy_files[depends_on8-produc… 0.62 170 MB
-
task_visualize_distribution_of_patents.py::task_visualize_di… 17.3 42 KB
-
task_compile_document.py::task_compile_thesis 7.08 539 KB
-
task_table_bessen_hunt_2007_and_replication.py::task_table_b… 0.09 784 bytes
-
└───────────────────────────────────────────────────────────────┴─────────────────┴──────────────────┘
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/pytask-profile.png b/docs/source/_static/images/pytask-profile.png deleted file mode 100644 index 72508fadaa3d2c022de325e35b7cde783af7915e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101272 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 KQm$kX{67E`9|Af6 diff --git a/docs/source/_static/images/readme.svg b/docs/source/_static/images/readme.svg deleted file mode 100644 index 009cdabb..00000000 --- a/docs/source/_static/images/readme.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 1 task.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_hello.py::task_hello_earth.
-
└─────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
1 Collected tasks
-
1 Succeeded (100.0%)
-
╰────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.07 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/repeating-tasks.svg b/docs/source/_static/images/repeating-tasks.svg deleted file mode 100644 index 3b59c6e2..00000000 --- a/docs/source/_static/images/repeating-tasks.svg +++ /dev/null @@ -1,142 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 10 tasks.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_repeating.py::task_create_random_data[data_0.pkl-0].
-
task_repeating.py::task_create_random_data[data_1.pkl-1].
-
task_repeating.py::task_create_random_data[data_2.pkl-2].
-
task_repeating.py::task_create_random_data[data_3.pkl-3].
-
task_repeating.py::task_create_random_data[data_4.pkl-4].
-
task_repeating.py::task_create_random_data[data_5.pkl-5].
-
task_repeating.py::task_create_random_data[data_6.pkl-6].
-
task_repeating.py::task_create_random_data[data_7.pkl-7].
-
task_repeating.py::task_create_random_data[data_8.pkl-8].
-
task_repeating.py::task_create_random_data[data_9.pkl-9].
-
└──────────────────────────────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭──────────── Summary ────────────╮
-
10 Collected tasks
-
10 Succeeded (100.0%)
-
╰─────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.43 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/show-locals.svg b/docs/source/_static/images/show-locals.svg deleted file mode 100644 index 90ae923c..00000000 --- a/docs/source/_static/images/show-locals.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask --show-locals
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\my_project
-
Collected 1 task.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_create_random_data.py::task_create_random_dataF
-
└─────────────────────────────────────────────────────┴─────────┘
-
-
────────────────────────────────────────────── Failures ──────────────────────────────────────────────
-
-
─────────────────── Task task_create_random_data.py::task_create_random_data failed ──────────────────
-
-
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
-
-
C:\Users\pytask-dev\git\my_project\task_create_random_data.py:23 in task_create_random_data
-
-
20 │
-
21 │ df = pd.DataFrame({"x": x, "y": y})
-
22 │
-
23 raise Exception
-
24 │
-
25 │ df.to_pickle(produces)
-
26
-
-
╭────────────────────────────────────── locals ───────────────────────────────────────╮
-
beta = 2
-
df = │ │ x y
-
0 6.257302 12.876199
-
1 3.678951 8.661903
-
2 11.404227 23.755534
-
3 6.049001 11.394267
-
4 -0.356694 -1.978809
-
epsilon = array([ 0.36159505, 1.30400005, 0.94708096, -0.70373524, -1.26542147])
-
produces = WindowsPath('C:/Users/pytask-dev/git/my_project/data.pkl')
-
rng = Generator(PCG64) at 0x20987EC6340
-
x = array([ 6.25730221, 3.67895137, 11.4042265 , 6.04900117, -0.35669373])
-
y = array([12.87619948, 8.66190278, 23.75553397, 11.39426711, -1.97880893])
-
╰─────────────────────────────────────────────────────────────────────────────────────╯
-
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
-
Exception
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
1 Collected tasks
-
1 Failed (100.0%)
-
╰────────────────────────────────╯
-
─────────────────────────────────────── Failed in 0.01 seconds ───────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/trace.svg b/docs/source/_static/images/trace.svg deleted file mode 100644 index 9ca0fdd0..00000000 --- a/docs/source/_static/images/trace.svg +++ /dev/null @@ -1,119 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\my_project
-
Collected 1 task.
-
-
-
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PDB runcall (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-
-
> c:\users\pytask-dev\git\my_project\task_create_random_data.py(13)task_create_random_data()
-
-> rng = np.random.default_rng(0)
-
(Pdb) |
-
-
-
- -
-
diff --git a/docs/source/_static/images/try-first.svg b/docs/source/_static/images/try-first.svg deleted file mode 100644 index e0149ca3..00000000 --- a/docs/source/_static/images/try-first.svg +++ /dev/null @@ -1,136 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask -s
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\pytask-examples
-
Collected 2 tasks.
-
-
I'm first.
-
I'm second.
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_example.py::task_first.
-
task_example.py::task_second.
-
└────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
2 Collected tasks
-
2 Succeeded (100.0%)
-
╰────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.11 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/try-last.svg b/docs/source/_static/images/try-last.svg deleted file mode 100644 index c3a70804..00000000 --- a/docs/source/_static/images/try-last.svg +++ /dev/null @@ -1,136 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask -s
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\pytask-examples
-
Collected 2 tasks.
-
-
I'm second.
-
I'm first.
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_example.py::task_first.
-
task_example.py::task_second.
-
└────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
2 Collected tasks
-
2 Succeeded (100.0%)
-
╰────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.11 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/warning.svg b/docs/source/_static/images/warning.svg deleted file mode 100644 index e7f1533b..00000000 --- a/docs/source/_static/images/warning.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.1, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\pytask-examples
-
Collected 1 task.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_warning.py::task_warning.
-
└───────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
1 Collected tasks
-
1 Succeeded (100.0%)
-
╰────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.24 seconds ──────────────────────────────────────
-
╭───────────────────────────────────────────── Warnings ─────────────────────────────────────────────╮
-
│ task_warning.py::task_warning │
-
│ C:\Users\pytask-dev\git\pytask-examples\task_warning.py:8: SettingWithCopyWarning: │
-
│ A value is trying to be set on a copy of a slice from a DataFrame. │
-
│ Try using .loc = value instead │
-
│ │
-
│ See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/ │
-
│ indexing.html#returning-a-view-versus-a-copy │
-
│ df[df["a"] < 5]["b"] = 1 │
-
│ │
-
https://pytask-dev.rtfd.io/en/stable/how_to_guides/capture_warnings.html │
-
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
-
-
-
-
- -
-
diff --git a/docs/source/_static/images/write-a-task.svg b/docs/source/_static/images/write-a-task.svg deleted file mode 100644 index 7554a703..00000000 --- a/docs/source/_static/images/write-a-task.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - -
-
-
- - - - - -
pytask
-
-
-
$ pytask
-
──────────────────────────────────────── Start pytask session ────────────────────────────────────────
-
Platform: win32 -- Python 3.10.0, pytask 0.2.0, pluggy 1.0.0
-
Root: C:\Users\pytask-dev\git\my_project
-
Collected 1 task.
-
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
-
Task Outcome
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
-
task_data_preparation.py::task_create_random_data.
-
└───────────────────────────────────────────────────┴─────────┘
-
-
──────────────────────────────────────────────────────────────────────────────────────────────────────
-
╭─────────── Summary ────────────╮
-
1 Collected tasks
-
1 Succeeded (100.0%)
-
╰────────────────────────────────╯
-
───────────────────────────────────── Succeeded in 0.06 seconds ──────────────────────────────────────
-
-
-
-
- -
-
diff --git a/docs/source/_static/md/capture.md b/docs/source/_static/md/capture.md index 25cfc5f1..4d65089c 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 7afe0f57..c73ed9ee 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 0f0dfb4e..a128bfc4 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 5d144598..d5659f78 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 d6876c52..0683a6b8 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/dry-run.md b/docs/source/_static/md/dry-run.md index 7d9b768d..2483e83b 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/_static/md/help-page.md b/docs/source/_static/md/help-page.md index 14e6fc96..2d9081e5 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.3.0
+
pytask v0.4.0
Usage: pytask [OPTIONS] [COMMAND] [PATHS] Manage your tasks with pytask. 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 98f87f9c..7137b27e 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 4f4dbc93..b606a6a3 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 2d8327ff..3cfd5494 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 3ed7c0a6..0ddc7ec3 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 bd95a93e..827682bb 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 new file mode 100644 index 00000000..d86e4a6e --- /dev/null +++ b/docs/source/_static/md/profiling-tasks.md @@ -0,0 +1,34 @@ +
+ +```console + +$ pytask profile +──────────────────────────── Start pytask session ──────────────────────────── +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.0 +Root: C:\Users\pytask-dev\git\my_project +Collected 18 task. + +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ +┃ Task ┃ Duration (in s) ┃ Size ┃ +┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ +│ task_apply_bh_to_indicators.py::task_apply_… │ 3.93 │ 123 MB │ +│ task_apply_bh_to_indicators.py::task_apply_… │ 0.09 │ 13 MB │ +│ task_replicate_results_of_bh2007.py::task_r… │ 0.09 │ 13 MB │ +│ task_replicate_results_of_bh2007.py::task_r… │ 8.99 │ 8 MB │ +│ task_merge_indicators.py::task_merge_indica… │ 74.44 │ 499 MB │ +│ task_prepare_bessen_hunt_2007.py::task_prep… │ 80.15 │ 15 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.11 │ 35 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.92 │ 35 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.11 │ 34 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.12 │ 35 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.12 │ 35 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.44 │ 143 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.73 │ 143 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.37 │ 114 MB │ +│ task_prepare_datasets.py::task_copy_files[d… │ 0.62 │ 170 MB │ +│ task_visualize_distribution_of_patents.py::… │ 17.3 │ 42 KB │ +│ task_compile_document.py::task_compile_thes… │ 7.08 │ 539 KB │ +│ task_table_bessen_hunt_2007_and_replication… │ 0.09 │ 784 bytes │ +└──────────────────────────────────────────────┴─────────────────┴───────────┘ +────────────────────────────────────────────────────────────────────────────── +``` diff --git a/docs/source/_static/md/readme.md b/docs/source/_static/md/readme.md index 61c40181..f309eb1f 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 81716ed2..967eb094 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 71abfe9e..0c681d8f 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 56607dac..3a99c1e5 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 f61d7bf6..e25b31a1 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 b902ff84..1e8f1fc4 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 b3f60b7f..987cdfc0 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.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 f384fbbb..817149c3 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.10.0, pytask 0.3.0, pluggy 1.0.0 +Platform: win32 -- Python 3.10.0, pytask 0.4.0, pluggy 1.0.0 Root: C:\Users\pytask-dev\git\my_project Collected 1 task. diff --git a/docs/source/changes.md b/docs/source/changes.md index 4ea568aa..6b0d391c 100644 --- a/docs/source/changes.md +++ b/docs/source/changes.md @@ -9,6 +9,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and - {pull}`449` simplifies the code building the plugin manager. - {pull}`451` improves `collect_command.py` and renames `graph.py` to `dag_command.py`. +- {pull}`453` removes more `.svg`s and replaces them with animations. ## 0.4.1 - 2023-10-11 diff --git a/docs/source/tutorials/profiling_tasks.md b/docs/source/tutorials/profiling_tasks.md index 4f5681ab..e5f337ae 100644 --- a/docs/source/tutorials/profiling_tasks.md +++ b/docs/source/tutorials/profiling_tasks.md @@ -8,5 +8,5 @@ $ pytask profile Here is an example -```{image} /_static/images/profile.svg +```{include} ../_static/md/profiling-tasks.md ``` From 28882045e8c8278e5f62cd24fa8ecc985aa05a6b Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Tue, 17 Oct 2023 22:30:52 +0200 Subject: [PATCH 2/2] fix. --- docs/source/changes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/changes.md b/docs/source/changes.md index 6b0d391c..ead3bbad 100644 --- a/docs/source/changes.md +++ b/docs/source/changes.md @@ -9,7 +9,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and - {pull}`449` simplifies the code building the plugin manager. - {pull}`451` improves `collect_command.py` and renames `graph.py` to `dag_command.py`. -- {pull}`453` removes more `.svg`s and replaces them with animations. +- {pull}`454` removes more `.svg`s and replaces them with animations. ## 0.4.1 - 2023-10-11