Releases: mindee/tawazi
Releases · mindee/tawazi
v0.3.2
Bug Fixes
- 🐛 wrong error message, during composition of DAGs
- 🐛 fix counting nodes during dag description. ExecNodes should now be numbered 1, 2, 3 etc.
- 🐛 failing to run DAG inside a Process. Now a DAG should run correctly inside a launched process.
Improvements
- ⚡ faster logging improves performance by upto 5% on long / complicated DAGs
- ♻️ better mypy on raise_arg_error
- ✅ test execnode with typed tuple
- ✅ test passing DAG inside a Process
v0.3.1
What's Changed
- Fix issue 205 by @bashirmindee in #150
- ⬆️ Bump mkdocs-material from 9.1.15 to 9.1.18 by @dependabot in #149
- chg: 🔖 preparing v0.3.1 by @bashirmindee in #151
Full Changelog: v0.3.0...v0.3.1
v0.3.0 (2023-05-31)
Improvement
- Run the ExecNode’s function with arbitrary arguments names
- pass in arguments & return values from created DAGs like normal functions
- Setup ExecNodes
- Debug ExecNodes
- Tag an ExecNode or multiple ExecNodes
- ExecNode is reusable (even inside the same DAG)
- Create a SubDag by specifying output ExecNodes of the DAG using Tag, id or the ExecNode itself
- Setup ExecNode do not accept dynamic arguments (arguments that can change between executions)
- DAG can return multiple values via dict, tuple or list
- Cache results of a specific DAG execution inside a file and reuse it later to skip running the same executions again
- An ExecNode can not be debug and setup at the same time!
- Configure ExecNodes using yaml, json or a python dict
- Profile the DAG execution (profiling of each ExecNode's execution)
- Create a SubDag by specifying ExecNodes to exclude of the DAG using Tag, id or the ExecNode itself
- pass in a thread-name prefix to the DAG
- Cache all the dependencies of some ExecNodes but not the specified ExecNodes themselves (helpful for debugging these ExecNodes)
- Introduce DAGExecution class which is an instance holding an execution of a DAG
- DAGExecution.scheduled_nodes contains the ExecNodes that will be executed in the next DAGExecution.run() call
- Support mypy typing
- Add a documentation page using mkdocs
- A single ExecNode can have multiple Tags
-
-
-
- ** / // % divmod abs << >> < <= == > >= operations implemented for ExecNode
-
-
- Conditionally execute an ExecNode inside a DAG using
twz_active
- helpers and_, or_, not_ are provided to do logical operations on ExecNodes
- LazyExecNode can be executed outside of DAG description according to env var TAWAZI_EXECNODE_OUTSIDE_DAG_BEHAVIOR
- unpack the results of an ExecNode execution using
unpack_to
property - Check
unpack_to
property against typing - Experimental compose a subdag from a single DAG by choosing the input ExecNodes and the output ExecNodes
- ExecNode can wrap anonymous functions that have no qualname attribute
- Choose where an ExecNode is executed (in main-thread or in a thread-pool)
- Document Usage of the Library
Breaking Changes
- Improved Interface to create DAGs using
dag
decorator - Improved Interface to create ExecNodes using
xn
decorator
Internal Changes
- Use NoVal instead of None to express not yet calculated result in ExecNode
- Copy ExecNode instead of deep-copying it
- Run tests against Python 3.7, 3.8, 3.9, 3.10, 3.11
- Run tests against the documentation
- Test Mypy
- Use Ruff in pre-commit
- use pytest code-blocks instead of mkcodes
- CI tests building the documentation
v0.2.0
What's Changed
- fix: 💚 by @bashirmindee in #1
- Update README.md by @fakela in #3
- chg: ♻️ switched from flit to poetry by @matthiasmindee in #4
- Added Coverage by @matthiasmindee in #5
- ✨ create dependabot.yml file by @matthiasmindee in #7
- ⬆️ Bump actions/setup-python from 3 to 4 by @dependabot in #9
- Enforce strict mypy on the code and add mypy to the CI by @matthiasmindee in #10
- ✨ 💚 new hooks for pre-commit, passes flake8 now by @matthiasmindee in #11
- Bug Fix while declaring a DAG by @bashirmindee in #12
- ✨ added code of conduct and contribution standards by @matthiasmindee in #13
- ⬆️ Update pytest-cov requirement from ^3.0.0 to ^4.0.0 by @dependabot in #16
- ⬆️ Update mypy requirement from ^0.971 to ^0.982 by @dependabot in #15
- Refactor The code, add subgraph run feature, use smarter execution by default by @bashirmindee in #14
- Run the tests using multiple Python versions by @bashirmindee in #18
- Run functions safely by @bashirmindee in #19
- ✨ mkdocs general documentation and readme cleanse by @matthiasmindee in #21
- ✨ ✅ improved coverage by @matthiasmindee in #22
- Documentation by @bashirmindee in #20
- chg: ♻️ 💚 integrated codecov by @matthiasmindee in #23
- fix: 💚 fix CI by @matthiasmindee in #24
- ⬆️ Update mkdocs-material requirement from 8.2.8 to 8.5.6 by @dependabot in #27
- ⬆️ Update markdown-include requirement from 0.6.0 to 0.7.0 by @dependabot in #28
- 🔖 prepare release of v0.2.0 by @matthiasmindee in #26
Full Changelog: v0.1.2...v0.2.0
1st tag
This version of Tawazi allows the construction of the DAG by using ExecNodes.