pytask
pytask copied to clipboard
Support NamedTuples for named arguments in parametrizations.
Workarounds
typing.NamedTuple or collections.namedtuple can be used to achieve named arguments per iteration of the parametrization.
from pathlib import Path
from typing import NamedTuple
class Task(NamedTuple):
depends_on: Path
produces: Path
@pytask.mark.parametrize("depends_on, produces", [
Task(depends_on="first_dataset.pkl", produces="first_plot.png"),
Task(depends_on="second_dataset.pkl", produces="second_plot.png"),
])
def task_plot_data(depends_on, produces):
df = pd.read_pickle(depends_on)
ax = df.plot()
plt.savefig(produces)
- [ ] Document example usage in the documentation.
- [ ] Implement a check for whether the arguments of the namedtuple match the signature of the parametrization.
Originally posted by @tobiasraabe in https://github.com/pytask-dev/pytask/issues/206#issuecomment-1045368086
This will not be pursued. #229 implements a new approach to parametrizations which will eventually supersede pytest's approach.
We keep this issue open for documentation. Probably until the pytest approach is deprecated.