dvc run -d source.npy -o target.npy python some_process.py source.npy target.npy . As there are repeated file names, it might be a “smell of code”."
Solution: introduce --pass-params to add all the dependencies and output params in the same order.
This is really hacky and not at all flexible. You only build your pipeline once, so it is not that inconvenient to introduce such a hack. Plus it defeats the purpose of our explicit dvc run syntax making your command really cryptic. I would rather not add this.
Something is needed to avoid the duplication which is a good source of mistakes.
This is the way to avoid the duplication with a minimum overhead - a single option instead of "flexible" set of options. Another alternative is to do this by param: @1 @3 or @dvcparam1 @dvcparam3. The first approach just the simplest way of doing this.
Yes, you build a pipeline once. But it still requires a way to avoid mistakes.
I agree that this is a quite hacky option and we should not use it in tutorials.
Related discussion on discord https://discordapp.com/channels/485586884165107732/563406153334128681/567801713948360725 proposing --parse option that would parse command by itself.