v0.4.2
Highlights
This release contains a new feature and some improvements for users.
- 🚀 The new feature is the
pytask.DataCatalog
that 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
.pytask
folder in your project. The file.pytask.sqlite3
is moved to this location as well. Add.pytask
to your.gitignore
to prevent accidentally committing the folder.
What's Changed
- Simplify building the plugin manager. by @tobiasraabe in #449
- Rename
graph.py
todag_command.py
and improvecollect_command.py
. by @tobiasraabe in #451 - Remove more
.svg
s and replace them with animations. by @tobiasraabe in #454 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #452
- [automated] Update plugin list by @github-actions in #453
- Add more explanation when
PNode.load()
fails during execution. by @tobiasraabe in #455 - Refer to source code on Github in API docs. by @tobiasraabe in #456
- Refactor code for
format_node_name
. by @tobiasraabe in #457 - Add hook to sort
__all__
. by @tobiasraabe in #459 - Simplify removing internal tracebacks from exceptions with cause. by @tobiasraabe in #460
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #461
- Fix import error for pluggy<1.3. by @tobiasraabe in #462
- Raise error when function is defined outside the loop body. by @tobiasraabe in #463
- Improve pins. by @tobiasraabe in #464
- Test that internal tracebacks are removed by reports. by @tobiasraabe in #465
- Add
is_product
toPNode.load()
. by @tobiasraabe in #472 - Add a data catalog. by @tobiasraabe in #419
- Hash files instead of relying on modification timestamps. by @tobiasraabe in #469
- Move
.pytask.sqlite3
to.pytask/
. by @tobiasraabe in #470 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #471
- Update PyPI action. by @tobiasraabe in #477
- Add node signatures. by @tobiasraabe in #473
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #476
- Add snapshot tests. by @tobiasraabe in #475
- Switch from black to ruff-format. by @tobiasraabe in #478
- Rework reports and tracebacks. by @tobiasraabe in #474
- Give skips higher precendence than ancestor failed as outcome. by @tobiasraabe in #479
- Remove checks for missing root nodes. by @tobiasraabe in #480
- Improve coverage. by @tobiasraabe in #481
- Fix handling of names and signatures of
PythonNode
s. by @tobiasraabe in #482
Full Changelog: v0.4.1...v0.4.2