Problems with datalad handbook's containers-run

Following the DataLad 101 course I get errors with executing containers-run command:

(base) twutz@mate:~/vtwutz_ext/DataLad-101/midterm_project$ datalad containers-run -m "rerun analysis in container" \
>   --container-name midterm-software \
>   --input "input/iris.csv" \
>   --output "prediction_report.csv" \
>   --output "pairwise_relationships.png" \
>   "python3 code/script.py"
/home/twutz/miniconda3/lib/python3.9/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (5.0.0)/charset_normalizer (2.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported "
[INFO   ] Making sure inputs are available (this may take some time) 
unlock(ok): pairwise_relationships.png (file)
unlock(ok): prediction_report.csv (file)
[INFO   ] == Command start (output follows) ===== 
usage: script.py [-h] data output_figure output_report
script.py: error: the following arguments are required: data, output_figure, output_report
[INFO   ] == Command exit (modification check follows) ===== 
run(error): /home/twutz/vtwutz_ext/DataLad-101/midterm_project (dataset) [singularity exec .datalad/environments/m...]
add(ok): pairwise_relationships.png (file)                                      
add(ok): prediction_report.csv (file)                                           
action summary:                                                                 
  add (ok: 2)
  get (notneeded: 4)
  run (error: 1)
  save (notneeded: 2)
  unlock (ok: 2)

Finally, the failure got obvious: the code in the docu is missing {inputs} {outputs}. Furthermore, the order of output arguments need to be changed.

Please, also support a --dry-run argument.

  • What steps will reproduce the problem?
    • follow the 101 course of datalad’s handbook
  • What version of DataLad are you using (run datalad --version)? On what operating system (consider running datalad plugin wtf)?
    • datalad version 0.16.5
    • linuxmint/20.2/uma, release 5.4.0-121-generic
    • git annex version: 10.20220525-gf1fdc90
    • datalad_container version: version: 1.1.4
    • singularity version 3.5.3 / 2.6.1-dist

I am not a regular python user. All the libraries were installed with conda install -c conda-forge datalad-container.
The warning on urllib3 is there are every command but, so far in the tutorial did not cause problems.
The run command (previously in the 101 course) worked with packages installed in a venv.

I reinstalled singulairty-container from neurodebian (version 2.6.1-dist) but the error persisted.

How can I see what is going wrong with the datalad containers-run command? It only displays a shortended command.
From the output it seems that the inputs/outputs are not properly told to the script.
With the run-command there was a --dry-run=basic, that seems not available with the containers-run.

I modified the python script to print the arguments and piped the output to a file:

import sys
print('Number of arguments:', len(sys.argv), 'arguments.')
print('Argument List:', str(sys.argv))

With result:

Number of arguments: 1 arguments.
Argument List: ['code/script.py']

Finally, I found the error in the docu and report it at the start of this post.

The provenance features of datalad are really cool. I am exploring datalad in combination with/alternative to snakemake and DrWatson.jl.

reported