Recent Releases of pytask
pytask - v0.5.5
What's Changed
- Don't exit early to detect missing files. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/694
- Add note about using pytask with workspaces. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/692
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.5.4...v0.5.5
- Python
Published by github-actions[bot] 7 months ago
pytask - v0.5.4
What's Changed
- Use uv more. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/680
- Remove differentiation between test kinds. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/683
- Test lowest dependency resolution. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/684
- Ensure compatibility with click v8.2. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/676
- Improve installation instructions and fix terminal animations by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/686
- Fix file URLs to paths and tasks and enable colors and icons on Windows. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/685
- Update changelog and publish in the repo root. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/687
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.5.3...v0.5.4
- Python
Published by github-actions[bot] 9 months ago
pytask - v0.5.3
What's Changed
This release was overdue. This is not because it includes a big feature, but because little changes kept piling up and should have been released earlier.
- Add data catalog name to nodes to make the representation unique. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/650
- Ignore the .pixi folder during the collection. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/662
- Update pre-commit and pin click. by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/677
- Add de-/serializer func to PickleNode attributes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/673
- Enable some tests in CI or offline, remove refurb. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/678
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.5.2...v0.5.3
- Python
Published by github-actions[bot] 9 months ago
pytask - v0.5.2
What's Changed
This release comes with only some minor improvements. Notably,
- pytask adds a
.gitignoreto.pytask, preventing users from accidentally committing the folder following best practices from venv and pytest. - Support for Python 3.8 ended, and support for Python 3.13 was added. There might be an issue with uv's standalone Python versions and being stuck in the debugger launched by pytask. If it happens, filing an issue would be appreciated.
Changes
- Add dark mode svgs to index page. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/636
- Stop live execution after exception. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/640
- Add
.gitignoreto.pytaskto avoid committing it. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/646 - Support Python 3.13 and drop 3.8. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/633
- Fix type annotation for hash function. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/655
- Document pipefunc. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/656
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.5.1...v0.5.2
- Python
Published by github-actions[bot] about 1 year ago
pytask - v0.5.1
What's Changed
This release contains mostly bug fixes but also the guide for complex task repetitions has been updated and includes some learnings from recent projects.
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/615
- Fix interaction between provisional nodes and
@mark.persist. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/617 - Ensure that
root_dirofDirectoryNodeis created. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/618 - tests: remove dependence on root folder name by @erooke in https://github.com/pytask-dev/pytask/pull/620
- tests: make coiled an optional import by @erooke in https://github.com/pytask-dev/pytask/pull/619
- Fix the pull request template. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/621
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/610
- Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 in the github-actions group by @dependabot in https://github.com/pytask-dev/pytask/pull/623
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/622
- Add warning when non-matching files are passed to pytask. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/627
- Fix duplicated collection of task modules. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/628
- Fix display issues with the programmatic interface. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/631
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/629
- Bump sigstore/gh-action-sigstore-python from 2.1.1 to 3.0.0 in the github-actions group by @dependabot in https://github.com/pytask-dev/pytask/pull/630
- Fix issue with rerunning tasks via
pytask.build. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/626 - Redesign the scaling tasks guide. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/616
- Follow-up on #616. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/632
New Contributors
- @erooke made their first contribution in https://github.com/pytask-dev/pytask/pull/620
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.5.0...v0.5.1
- Python
Published by github-actions[bot] over 1 year ago
pytask - v0.5.0
Highlights
✨ pytask v0.5.0 is released and contains two big features. ✨
🤖 Provisional Nodes and Task Generators
pytask now has mechanisms to define tasks that produce an unknown number of products, which are provisional nodes. For example, when a task splits data by rows into chunks of roughly 100MB.
If you want further to process each chunk of data with a separate task, use task generators to create as many tasks as there are chunks.
Everything is explained in the how-to guide Provisional Nodes and Task Generators.
🚀 Support for HPC and your favorite cloud provider (AWS, GCP, Azure) using dask / coiled
pytask can build your project on virtual machines from the cloud provider of your choice. Read more about it in the release announcement of pytask-parallel v0.5.0.
Removals
- The markers
@pytask.mark.depends_onand@pytask.mark.producesare removed. Please define dependencies and products using the new approaches. - Instead of
@pytask.mark.taskusefrom pytask import taskand@task.
What's Changed
- Fix type hints for
Task.execute()andTaskWithoutPath.execute(). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/548 - [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/550
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/549
- Remove
depends_onandproducesmarkers. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/551 - Remove
@pytask.mark.taskand switch to@task. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/552 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/554
- Forbid strings as values for
pathsin config file. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/553 - Use new-style hook wrappers and require pluggy 1.3. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/555
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/556
- Fix issue with
@task(after=...)in notebooks and terminals. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/557 - Fix path in "Node is dir" error message by @egerlach in https://github.com/pytask-dev/pytask/pull/561
- Bump the github-actions group with 2 updates by @dependabot in https://github.com/pytask-dev/pytask/pull/560
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/559
- Make universal-pathlib 0.2.2 an official dependency. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/566
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/562
- Bump the github-actions group with 1 update by @dependabot in https://github.com/pytask-dev/pytask/pull/564
- Fix typos in definingdependenciesproducts.md by @ChristianZimpelmann in https://github.com/pytask-dev/pytask/pull/563
- Improve handling of
task_files. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/568 - Remove hooks related to the DAG. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/569
- Remove redundant calls of
PNode.state(). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/571 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/573
- Remove
pytask_execute_create_schedulerhook. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/575 - Implement task generators and provisional nodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/487
- Fix interaction with
--pdb,--traceand tasks that return. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/579 - Simplify the code related to tracebacks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/581
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/584
- Improve typing of
capture.py. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/587 - Improve linting. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/586
- Reset class variables of
ExecutionReportandTraceback. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/588 - Fix error introduced by #588. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/590
- Invalidate cache to check whether remote files exist. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/591
- Resolve root paths and module names for imported files. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/589
- Use uv to speed up CI. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/567
- Bump the github-actions group with 1 update by @dependabot in https://github.com/pytask-dev/pytask/pull/578
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/577
- Recreate
PythonNodes every time. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/593 - Publish
NodeLoadError. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/594 - Manage project with rye. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/596
- Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3 in the github-actions group by @dependabot in https://github.com/pytask-dev/pytask/pull/597
- Replace requests with httpx. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/598
- Stop unwrapping coiled functions. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/595
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/592
- Add fixture for changing cwd. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/599
- Refactor tests using subprocesses. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/600
- Bump peter-evans/create-pull-request from 6.0.3 to 6.0.4 in the github-actions group by @dependabot in https://github.com/pytask-dev/pytask/pull/602
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/601
- Fix example about capturing warnings in docs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/603
- Fix
PythonNodeexamples in docs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/604 - Improve infra and add step for type checking. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/605
- Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 in the github-actions group by @dependabot in https://github.com/pytask-dev/pytask/pull/608
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/607
- Allow tasks to be pending. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/609
- Remove status from
pytask_execute_task_log_start. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/611 - Validate the names of data catalogs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/612
- Improve documentation for data catalogs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/606
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/613
New Contributors
- @egerlach made their first contribution in https://github.com/pytask-dev/pytask/pull/561
- @ChristianZimpelmann made their first contribution in https://github.com/pytask-dev/pytask/pull/563
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.5...v0.5.0
- Python
Published by github-actions[bot] over 1 year ago
pytask - v0.4.7
What's Changed
A patch release to fix an error where using --pdb or --trace lead to tasks always returning None which affected tasks that use returns as products.
- Backport #580 to v0.4.7. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/580
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.6...v0.4.7
- Python
Published by github-actions[bot] almost 2 years ago
pytask - v0.4.6
What's Changed
A bug fix release that fixes an error when users used from pytask import mark to mark their tasks.
- Skip collection of
MarkGeneratorwhen usingfrom pytask import mark. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/576
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.5...v0.4.6
- Python
Published by github-actions[bot] almost 2 years ago
pytask - v0.4.5
Highlights
pytask is moving towards v0.5, which will remove lots of deprecated features. Please upgrade your syntax or pin pytask to <0.5 in your requirements files.
The release comes with two new features and lots of little improvements.
pytask can now handle files that are referenced via HTTP(S) URLs or files on popular cloud storage like AWS, all thanks to universal_pathlib. Explanations can be found in this guide.
It is now easier to extend pytask than before. The new
hook_moduleconfiguration option allows adding modules that contain hook implementations. This guide offers more explanation.
What's Changed
- CI: remove unneeded install of graphviz on ubuntu by @NickCrews in https://github.com/pytask-dev/pytask/pull/515
- Raise error when non-existing task paths are added to the config. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/517
- Do not allow builtin functions as tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/519
- Enhance issue templates. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/522
- Refactor
get_file. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/523 - Improve some linter and formatter rules. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/524
- Bump actions/setup-python from 4 to 5 by @dependabot in https://github.com/pytask-dev/pytask/pull/527
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/526
- Enable
PathNodeandPickleNodeto deal with URLs, S3, etc.. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/525 - Add error message for not collected tasks with
@taskdecorator. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/521 - Improve codecov and coverage. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/528
- Bump sigstore/gh-action-sigstore-python from 2.1.0 to 2.1.1 by @dependabot in https://github.com/pytask-dev/pytask/pull/533
- Bump actions/download-artifact from 3 to 4 by @dependabot in https://github.com/pytask-dev/pytask/pull/531
- Bump actions/upload-artifact from 3 to 4 by @dependabot in https://github.com/pytask-dev/pytask/pull/532
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/530
- Reenable and fix tests with Jupyter. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/535
- Allow task functions to be partialed. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/536
- Fix coverage. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/537
- Change CLI entrypoint and allow passing task function to pytask.build. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/540
- Refactor the plugin manager. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/542
- Implement
hook_moduleconfig option. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/539 - Update imports in tests. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/543
- Some changes to the docs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/538
- Require sqlalchemy>=2 and upgrade code. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/544
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/541
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/546
- Release v0.4.5. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/545
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.4...v0.4.5
- Python
Published by github-actions[bot] about 2 years ago
pytask - v0.4.4
What's Changed
- Fix typing issues with the DataCatalog. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/510
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/511
- Improve the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/509
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.3...v0.4.4
- Python
Published by github-actions[bot] about 2 years ago
pytask - v0.4.3
What's Changed
This release contains a lot of smaller improvements and bug fixes. Here is a short list.
- #484 raises an error message when a
PathNodewas used with a directory instead a file. - #496 makes pytask even lazier. When a preceding task is executed and produces the same outputs, the following task will no longer be executed.
- Objects in task modules that overwrite
__getattr__should not cause any problems anymore (#507 was fixed in #508). Same applies to importTaskin task modules.
Complete list of changes
- Simplify the teardown of a task. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/483
- Correctly unconfigure pytask. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/485
- Raise informative error when path nodes point to directories. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/484
- Add default names to
PPathNodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/486 - Modernize
TopologicalSorter. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/458 - Raise error for invalid value in return annotation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/488
- Refactor and better test products. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/489
- Refactor and better test parsing of dependencies. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/490
- Addition to #489. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/491
- Make pytask even lazier. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/496
- Bump sigstore/gh-action-sigstore-python from 1.2.3 to 2.1.0 by @dependabot in https://github.com/pytask-dev/pytask/pull/495
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/494
- Remove unnecessary code from the collection of tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/497
- Fix errors when using
TaskandTaskWithoutPathin task modules. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/498 - Allow tasks to depend on other tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/493
- Move test dependencies to
pyproject.tomlby @tobiasraabe in https://github.com/pytask-dev/pytask/pull/500 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/499
- Remove
MetaNode. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/501 - [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/505
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/504
- Catch objects pretending to be
PTask. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/508
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.2...v0.4.3
- Python
Published by github-actions[bot] about 2 years ago
pytask - v0.4.2
Highlights
This release contains a new feature and some improvements for users.
- 🚀 The new feature is the
pytask.DataCatalogthat allows users to manage dependencies and products in projects more easily. Read the tutorial to get started. 🚀 - File changes are now detected by hashes instead of modification timestamps. It should prevent accidental executions when working with cloud storage providers like Dropbox or OneDrive and in many other situations. To save runtime, pytask uses a cache for the hashes when the modification timestamp has not changed.
- Nodes now have signatures that separate how nodes are named and displayed from how nodes are identified internally. If you have written a custom node, please update it according to the how-to guide.
- All of pytask's internal files are now stored in a
.pytaskfolder in your project. The file.pytask.sqlite3is moved to this location as well. Add.pytaskto your.gitignoreto prevent accidentally committing the folder.
What's Changed
- Simplify building the plugin manager. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/449
- Rename
graph.pytodag_command.pyand improvecollect_command.py. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/451 - Remove more
.svgs and replace them with animations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/454 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/452
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/453
- Add more explanation when
PNode.load()fails during execution. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/455 - Refer to source code on Github in API docs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/456
- Refactor code for
format_node_name. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/457 - Add hook to sort
__all__. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/459 - Simplify removing internal tracebacks from exceptions with cause. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/460
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/461
- Fix import error for pluggy<1.3. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/462
- Raise error when function is defined outside the loop body. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/463
- Improve pins. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/464
- Test that internal tracebacks are removed by reports. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/465
- Add
is_producttoPNode.load(). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/472 - Add a data catalog. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/419
- Hash files instead of relying on modification timestamps. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/469
- Move
.pytask.sqlite3to.pytask/. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/470 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/471
- Update PyPI action. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/477
- Add node signatures. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/473
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/476
- Add snapshot tests. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/475
- Switch from black to ruff-format. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/478
- Rework reports and tracebacks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/474
- Give skips higher precendence than ancestor failed as outcome. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/479
- Remove checks for missing root nodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/480
- Improve coverage. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/481
- Fix handling of names and signatures of
PythonNodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/482
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.1...v0.4.2
- Python
Published by tobiasraabe over 2 years ago
pytask - v0.4.1
What's Changed
Of course, it's a mandatory bug fix release after a bigger release.
Using the product annotation, Annotated[..., Product] did not work with multiple products.
- Fix setting the name of
PythonNode. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/443 - Move content of
setup.cfgtopyproject.toml. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/444 - [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/445
- Fix when multiple product annotations are used. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/448
- Fix
PythonNodewhen used as return. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/446 - Simplify the
tree_mapcode for generating the DAG. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/447
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.4.0...v0.4.1
- Python
Published by tobiasraabe over 2 years ago
pytask - v0.4.0
News
pytask became three years old in July, which is a suitable event to rethink pytask's design and blow dust off of some of its oldest components.
Here are the highlights of v0.4.0 :rocket: :star:
Highlights
New interfaces for products.
Every argument can be declared as a product with the new' Product' annotation. The path can be passed as a default value.
```python from pathlib import Path
from pytask import Product from typing_extensions import Annotated
def taskhelloearth(path: Annotated[Path, Product] = Path("helloearth.txt")): path.writetext("Hello, earth!") ```
More explanation can be found at https://tinyurl.com/yrezszr4.
It is also possible to use the return of the task function as a product, which allows wrapping any third-party function as a task function. Read more about it here: https://tinyurl.com/pytask-return.
```python from pathlib import Path
from pytask import Product from typing_extensions import Annotated
def taskhelloearth() -> Annotated[str, Path("hello_earth.txt")]: return "Hello, earth!" ```
Every task argument is a dependency
In older pytask versions, only paths were treated as task dependencies. That meant when you passed other arguments to the task, and they changed, it did not trigger a rerun of the task.
Now, every argument to a task can be a dependency, and you can hash them if they should trigger a rerun. It is explained in https://tinyurl.com/pytask-hash.
```python from pathlib import Path from typing import Annotated
from pytask import Product from pytask import PythonNode
def taskexample( text: Annotated[str, PythonNode(value="Hello, World", hash=True)], path: Annotated[Path, Product] = Path("file.txt"), ) -> None: path.writetext(text) ```
A new functional interface
The functional interface for pytask has been reworked and accepts a list of task functions. You can use it within your terminal or a Jupyter notebook. Read this guide to learn more about it: https://tinyurl.com/pytask-functional.
```python from pathlib import Path from typing import Annotated
from pytask import build
def createtext() -> Annotated[str, Path("helloearth.txt")]: return "Hello, earth!"
session = build(tasks=[create_text]) ```
Custom Nodes through Protocols
In the newest version, nodes (dependencies and products) and tasks follow protocols. It allows for customizations like PickleNodes that store any Python object as a pickle file and inject the object into the task when used as a dependency. It is explained in more detail in this guide: https://tinyurl.com/pytask-custom-nodes.
Other notable changes
- Python 3.12 is supported, and support for Python 3.7 is dropped.
@pytask.mark.depends_onand@pytask.mark.producesare deprecated. There are better options to define dependencies and products explained in https://tinyurl.com/yrezszr4.@pytask.mark.taskis also deprecated and replaced byfrom pytask import taskand@task.
What's Changed
- Remove Python 3.7 support and add a new action for mamba. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/323
- Replace pony with sqlalchemy>=1.4.36. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/387
- Remove
@pytask.mark.parametrize. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/391 - Parse dependencies from all args if
depends_onis not used. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/384 - Add products with
typing.Annotation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/394 - Refactor pybaum to
_pytask.tree_util. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/395 - Replace pybaum with optree and add paths to PythonNode names. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/396
- Add support for
NamedTupleand attrs classes in@pytask.mark.task(kwargs=...). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/397 - Deprecate decorators for
depends_onandproduces. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/398 - Use protocols instead of ABCs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/402
- Allow tasks to return products. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/404
- Tracking changes in v0.4.0. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/400
- Bump peter-evans/create-pull-request from 5.0.1 to 5.0.2 by @dependabot in https://github.com/pytask-dev/pytask/pull/390
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/388
- Allow to use prefix trees as nodes to parse function returns. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/406
- Remove
.valuefromNodeprotocol. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/408 - Make
.from_annotan optional feature of nodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/409 - Allow to pass functions to
PythonNode(hash=...). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/410 - Add protocols for tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/412
- Remove scripts to generate
.svgs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/413 - Allow more ruff rules. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/414
- A new functional interface. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/411
- Deprecate
@pytask.mark.taskin favor of@pytask.task. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/417 - Simplify and fix code in
dag.py. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/418 - Convert
DeprecationWarningtoFutureWarningfor deprecated decorators. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/420 - Remove deprecation warning for
produces. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/421 - Document new interface. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/392
- Fix
import_path. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/424 - Publish
pytask.tree_util. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/426 - Fix type annotations of
task.depends_onandtask.produces. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/427 - Document functional interface. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/423
- Update example in
README.md. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/428 - Add better error message when
node.state()throws error during DAG validation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/429 - Update parts of the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/430
- Enable colors in WSL. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/431
- Fix type checking for
pytask.mark.x. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/432 - Fix ids of
PythonNodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/433 - Add support for Python 3.12. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/434
- Fix detection of task functions. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/437
- Clarify some types. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/438
- Refine typing. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/440
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.3.2...v0.4.0
- Python
Published by tobiasraabe over 2 years ago
pytask - v0.4.0rc1
This is the first release candidate for the v0.4.* release series.
The final release still requires some changes. For example, the documentation needs to be extended. But, the essential parts are already there, and it is time to collect some final feedback! Let me know what you think and what needs to be improved. You can comment in the discussion for this release #422.
Now, let's take a look at the changes.
What's Changed
New
- Dependencies and products of tasks have new interfaces that are explained in this tutorial.
- You can also now declare products by allowing task functions to return. Follow this guide.
- If you have inputs to task functions that should be hashed to detect any changes, follow this guide.
- Before, only
pathlib.Paths received special treatment as dependencies or products to task functions. Now, it is possible to define your own nodes that simplify, for example, loading pickle files as this guide explains. But many more extensions are possible, like defining data in an S3 bucket as a dependency or product. - The functional interface has been reworked and now accepts tasks directly, allowing you to execute pytask on the command line or in Jupyter notebooks. The documentation must still be written, but here is your starting point.
Removals
- Python 3.7 is no longer supported.
@pytask.mark.parametrizeis removed. Follow this tutorial instead.
Deprecations
@pytask.mark.depends_on,@pytask.mark.producesare deprecated and will be removed in v0.5.0.@pytask.mark.taskis deprecated. Use@pytask.taskinstead.- Paths defined as strings are deprecated and should be replaced with proper
pathlib.Pathobjects.
Full list of changes
- Remove Python 3.7 support and add a new action for mamba. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/323
- Replace pony with sqlalchemy>=1.4.36. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/387
- Remove
@pytask.mark.parametrize. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/391 - Parse dependencies from all args if
depends_onis not used. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/384 - Add products with
typing.Annotation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/394 - Refactor pybaum to
_pytask.tree_util. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/395 - Replace pybaum with optree and add paths to PythonNode names. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/396
- Add support for
NamedTupleand attrs classes in@pytask.mark.task(kwargs=...). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/397 - Deprecate decorators for
depends_onandproduces. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/398 - Use protocols instead of ABCs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/402
- Allow tasks to return products. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/404
- Tracking changes in v0.4.0. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/400
- Bump peter-evans/create-pull-request from 5.0.1 to 5.0.2 by @dependabot in https://github.com/pytask-dev/pytask/pull/390
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/388
- Allow to use prefix trees as nodes to parse function returns. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/406
- Remove
.valuefromNodeprotocol. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/408 - Make
.from_annotan optional feature of nodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/409 - Allow to pass functions to
PythonNode(hash=...). by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/410 - Add protocols for tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/412
- Remove scripts to generate
.svgs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/413 - Allow more ruff rules. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/414
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/407
- A new functional interface. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/411
- Deprecate
@pytask.mark.taskin favor of@pytask.task. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/417 - Simplify and fix code in
dag.py. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/418 - Convert
DeprecationWarningtoFutureWarningfor deprecated decorators. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/420 - Remove deprecation warning for
produces. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/421 - Document new interface. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/392
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/415
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.3.2...v0.4.0rc1
- Python
Published by tobiasraabe over 2 years ago
pytask - v0.3.2
Highlights
This release contains the following highlights:
- Previously, if you accidentally hit the save button on an unchanged task file, the task would be rerun by pytask, although nothing had changed. Now, pytask wouldn't rerun the task because it also compares the hashes of task files, not only the modification timestamp.
- If you want to enforce rerunning tasks, there is now a
--forceflag. Take the function name/id of the task and runpytask -k <task id> --force, and the task + its necessary tasks will be executed. Or delete a product from the task you want to rerun. - The import mechanism for task modules has been reworked, and errors resolved. Thanks to @NickCrews!
Additionally, the @pytask.mark.parametrize decorator is deprecated and will be removed in pytask v0.4. If you use the decorator, you will have two options:
- (Recommended) Upgrade your code to the new approach for repeating tasks described in this tutorial.
- Or, pin pytask to
pytask<0.4and silence the deprecation warning by settingsilence_parametrize_deprecation = truein yourpyproject.tomlunder[tool.pytask.ini_options].
What's Changed
- Update version numbers in animations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/345
- Add dependabot for GitHub actions. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/348
- Publish
db. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/352 - Refactor nodes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/355
- Add
-f/--forceto force executing tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/354 - Add hashing to avoid re-executing tasks when modification times changed. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/357
- Update
update_plugin_list.py. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/364 - Rework panel with sphinx-design. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/365
- Add light and dark logos for the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/366
- Fix the panel on the index page of the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/367
- Fix error introduced in #364. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/369
- Revert change turning Node.state() into a hook. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/370
- Rename Node back to MetaNode. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/371
- Clearer documentation for
pytask dag -o. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/376 - Conditionally skip tests on MacOS. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/378
- Deprecate
@pytask.mark.parametrize. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/381 - Fix the import mechanism for task modules. by @NickCrews in https://github.com/pytask-dev/pytask/pull/373
- Update changes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/383
New Contributors
- @dependabot made their first contribution in https://github.com/pytask-dev/pytask/pull/349
- @NickCrews made their first contribution in https://github.com/pytask-dev/pytask/pull/373
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.3.1...v0.3.2
- Python
Published by tobiasraabe over 2 years ago
pytask - v0.3.1
What's Changed
- Fix bug when passing no path on the command line. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/337
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/341
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/340
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.3.0...v0.3.1
- Python
Published by tobiasraabe about 3 years ago
pytask - v0.3.0
Highlights
This release includes a breaking change due to internal refactorings. The change affects how command line options and the configuration file are loaded and validated. For users, the changes are subtle; the help pages of the commands have prettier options and default values.
Make sure to upgrade pytask and the plugins to v0.3 or pin the packages to <0.3.
There is some delay until the updates for pytask and its plugins are available. Be aware of errors when using mixed v0.2 and v0.3 installations.
The most significant benefit is for developers who want to add command line options and configuration values. The parsing can now be handled with proper click types, for example, EnumChoice to implement choice options. Defaults are attached to command line options and are automatically displayed in the help pages.
What's Changed
- Update workflow status badge. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/326
- Deprecate INI configurations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/313
- Add ruff to linters. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/329
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/328
- Refactor
database.py. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/332 - Add a guide to migrate from scripts to pytask. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/330
- Upgrade attrs and related code. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/333
- Use ruff with all rules selected by default. by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/331
- Set target version for ruff. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/334
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/335
- Extend the API documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/336
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.7...v0.3.0
- Python
Published by tobiasraabe about 3 years ago
pytask - v0.2.7
News
This is probably the last patch release before the v0.3.0 release. There are some highlights like the new terminal animations in the documentation. I hope you enjoy them.
What's Changed
- Replace pydot with pygraphviz. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/308
- Add refurb to pre-commit hooks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/311
- Fix links in docs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/310
- Add Python 3.11 to CI. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/307
- Clarify example in docs on nested dependencies and products. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/318
- Formalize more choice options to enums. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/321
- Add terminal animations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/322
- Collect automatically created tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/325
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.6...v0.2.7
- Python
Published by tobiasraabe about 3 years ago
pytask - v0.2.6
What's Changed
- Add docformatter. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/297
- Move and publish some functions related to warnings. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/298
- [automated] Update plugin list by @github-actions in https://github.com/pytask-dev/pytask/pull/300
- fix[docs]: Fix mismatched backticks by @augustebaum in https://github.com/pytask-dev/pytask/pull/303
- Remove colorama. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/305
- Fix typo in link and adjust documentation for warnings. by @hmgaudecker in https://github.com/pytask-dev/pytask/pull/306
New Contributors
Many thanks to the new contributors 🙇!
- @augustebaum made their first contribution in https://github.com/pytask-dev/pytask/pull/303
- @hmgaudecker made their first contribution in https://github.com/pytask-dev/pytask/pull/306
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.5...v0.2.6
- Python
Published by tobiasraabe over 3 years ago
pytask - v0.2.5
Highlight
The highlight of this release is a dry-run mode that shows which tasks will be run during the next execution. Just type pytask --dry-run. Here is the documentation.
What's Changed
- Pin pybaum to >=0.1.1. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/288
pytask collectdisplays shortened task names. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/289- Implement a dry-run mode. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/290
- Fix bug with
--pdband pytask-latex. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/296
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.4...v0.2.5
- Python
Published by tobiasraabe over 3 years ago
pytask - v0.2.4
What's Changed
- Some pages of the documentation have been improved. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/279 and https://github.com/pytask-dev/pytask/pull/281
- Don't display traceback with 'previous task failed' with verbose <= 1. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/285
- Show all files that are not produced by a task. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/287
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.3...v0.2.4
- Python
Published by tobiasraabe over 3 years ago
pytask - v0.2.3
Highlights
This release includes some minor fixes. For example, deprecation warnings are not activated by default anymore, and you can remove the filters for these warnings again.
What's Changed
- Fix
pytask cleanwhen git is not installed. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/276 - Do not capture
DeprecationWarningandPendingDeprecationWarningby default. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/277 - Reduce the number of locations where warnings are raised. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/278
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.2...v0.2.3
- Python
Published by tobiasraabe over 3 years ago
pytask - v0.2.2
Highlight
The command pytask clean has been reworked! 🎉
pytask clean allows to clean your project from obsolete files. For example, when you renamed a product of a task and the old product still exists in the build folder.
All files which are not known by pytask or git can be cleaned.

You find more information in the tutorial.
What's Changed
- Fix info under live execution table. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/267
- Rework the
cleancommand. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/273
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.1...v0.2.2
- Python
Published by tobiasraabe almost 4 years ago
pytask - v0.2.1
Highlights
This release has two features.
A new configuration value,
sort_tableallows you to control whether the table after the execution is sorted alphabetically or ordered by execution. Here is the entry in the documentation. Thanks to @timmens for his first contribution 🎉.pytask is now able to capture warnings and to report them. Here is an example with the infamous
SettingWithCopyWarningfrom pandas
Take a look at the how-to guide about capturing warnings to learn more about the feature.
Currently, this feature does not work when you parallelize the execution with pytask-parallel. Support is planned.
What's Changed
- Add svg for profiling tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/259
- Add sort_table option by @timmens in https://github.com/pytask-dev/pytask/pull/261
- Capture warnings. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/263
New Contributors
- @timmens made their first contribution in https://github.com/pytask-dev/pytask/pull/261
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.2.0...v0.2.1
- Python
Published by tobiasraabe almost 4 years ago
pytask - v0.2.0
The v0.2 release contains several new features and breaking changes with v0.1.x versions of the plugins for the good of the whole project.
Highlights
- The documentation is improved a lot and features shiny svgs.
- Parametrizations are now a lot easier! Repeat your tasks in loops instead of parametrizations.
```python import numpy as np import pytask
for i in range(10):
@pytask.mark.task
def task_create_random_data(produces=f"data_{i}.pkl", seed=i):
rng = np.random.default_rng(seed)
...
```
pyproject.tomlis the new configuration file for pytask. This release soft-deprecates all ini-configurations. Here is more information.- Dependencies and products can be nested to allow for more structure.
The release also allows the plugins to provide better interfaces in their next releases. Keep an eye on new releases in the coming days.
What's Changed
- Use pybaum for more flexible dependencies and products. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/211
- Implement a new loop-based approach to parametrizations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/229
- Move documenation to MyST. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/232
- Add a counter under the execution table to show completed tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/252
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.1.9...v0.2.0
- Python
Published by tobiasraabe almost 4 years ago
pytask - v0.1.9
Highlights
The highlight of the current release is an automatically updated list of plugins for pytask which you can see here.
Apart from that, the release includes improvements to code, tests, and the documentation.
What's Changed
- Enhance the tutorial on how to set up a project. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/217
- Remove
depends_onandproducesfrom task function when parsed. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/218 - Remove leftovers from pytest from
_pytask.mark.Mark. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/219 - Publish types, classes, and functions. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/197
- Add an automated job to create a list of plugins in the docs. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/222
- Add more test cases for parametrizations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/221
- Fix a circular import error created by #197. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/225
- Fix crowding-out of tasks in table by skipped and persisted tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/226
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.1.8...v0.1.9
- Python
Published by tobiasraabe almost 4 years ago
pytask - v0.1.8
Highlight
The highlight of this release is the new design of the help pages which are now colored and better structured.

What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/212
- Allow
__tracebackhide__to be a callable. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/210 - Add .coveragerc and improve coverage. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/213
- Make help pages prettier. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/215
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.1.7...v0.1.8
- Python
Published by tobiasraabe about 4 years ago
pytask - v0.1.7
Highlights
This is the first release of pytask which supports Python 3.10. At the same time, Python 3.6 is deprecated since EOF was in last december.
What's Changed
- Cancel previous CI runs automatically. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/209
- Deprecate Python 3.6. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/192
- Add support and testing for Python 3.10. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/153
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/pytask-dev/pytask/pull/179
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.1.6...v0.1.7
- Python
Published by tobiasraabe about 4 years ago
pytask - v0.1.6
Highlights
This release features the new @pytask.mark.task decorator which allows to mark functions as tasks without requiring the task_ prefix. It also accepts an optional name parameter to rename the task to something else than the function name.
python
@pytask.mark.task
def prepare_data():
pass
What's Changed
- Add guide on how to profile pytask. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/191
- Add more figures to the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/193
- Change demo in README.rst. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/194
- Mention the two new cookiecutters more prominently. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/196
- Fix skipif marker in the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/198
- A better error message when paths are ambiguous on case-insensitive file systems. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/199
- Mark arbitrary function as tasks with
@pytask.mark.task. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/200 - Test
_pytask.mark_utils. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/201 - Remove internal traceback frames from exceptions raised within pytask. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/204
- Fix directory structure in the best practices guide on parametrizations. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/208
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.1.5...v0.1.6
- Python
Published by tobiasraabe about 4 years ago
pytask - v0.1.5
What's Changed
- Enhance live display by deactivating auto-refresh among other things. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/186
- Refactorings related to
ExitCode. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/188 - Add
--show-tracebackto control whether tracebacks are displayed. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/187 - Don't display a table when no entry is present. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/189
- Refactor remaining pieces related to reducenodename. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/184
- Refactor exporting the DAG as a figure. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/185
- Update the release notes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/190
Full Changelog: https://pytask-dev.readthedocs.io/en/latest/changes.html
- Python
Published by tobiasraabe about 4 years ago
pytask - v0.1.4
This release includes a lot of changes to the styling of the interface as well as multiple internal improvements such as internal typing and clearer internal task outcomes.
What's Changed
The most notable changes in this release involve the style of the interface.
- Task ids are shorter than before, the part with the path is dimmed to highlight the function name.
- The bright part of the task name is clickable and will open the task module in the editor. Use
editor_url_scheme=vscodein the configuration file and you will even jump to the correct line where the task is defined in vscode. (Link) - A panel with a summary on task outcomes is displayed at the end of the report.

pytask is now also rudimentarily typed. Hopefully, a fully typed interface will follow soon.
More information about changes in this release can be found in the changelog.
- Python
Published by tobiasraabe about 4 years ago
pytask - v0.1.2
This release includes a lot of enhancements and cleanups for the displayed information.
- Skipped and persisted tasks are not displayed in the table with the default verbosity.
- The number of rows in the execution table is limited to 15 items to make the display cleaner and the update process smoother.
- The duration of the execution is displayed in a human readable way and not just in total seconds.
--show-errors-immediatelyallows to display errors with tracebacks as soon as they occur.
For more information, check out the changelog.
- Python
Published by tobiasraabe about 4 years ago
pytask - v0.1.0
This release includes several new features:
- A live table to see the progress during the execution.
- Interrupt the execution with a
KeyboardInterruptErrorand display collected reports. - Beautiful rendering of tracebacks from subprocesses.
- and other improvements listed in the release notes.
- Python
Published by tobiasraabe over 4 years ago
pytask - v0.0.15
What's Changed
- Add citation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/78
- Pretty format tasks with mixed priorities, simplify findcommonancestor function and others. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/80
- Raise error if paths are not correctly cased on case-insensitive Windows. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/81
- Fix error in path normalization. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/84
- Sort collected tasks, dependencies, and products. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/85
- Replace versioneer with setuptools_scm. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/83
- Fix dirty version in the documentation. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/87
- Allow profiling tasks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/88
- Fix display of squared brackets in console output. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/93
- Add
--show-localswhich prints local variables in tracebacks. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/94 - Add a dynamic spinner to show the progress during collection. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/96
- Enable color support in WSL + Windows Terminal and fix
show_locals. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/99 - Add new command
pytask dagto visualize the DAG. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/101 - Add example if parametrized with an incorrect number of arg_values." by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/102
- Simplify the logging of task outcomes. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/105
- Add new hook pytaskunconfigure, return borrowed pdb.settrace at the end of session, reenable tests for PytaskPDB. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/107
- Refine graph implemented in #101. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/108
- Require networkx>=2.4 due to Python 3.9. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/109
- Add "New Features" to README.rst. by @tobiasraabe in https://github.com/pytask-dev/pytask/pull/110
Full Changelog: https://github.com/pytask-dev/pytask/compare/v0.0.14...v0.0.15
- Python
Published by tobiasraabe over 4 years ago