looper
looper copied to clipboard
Better Error Messages (pipestat implementation)
Related to: https://github.com/pepkit/looper/issues/392 https://github.com/pepkit/looper/issues/397
In my attempt to replicate #392, I noticed that, when using a looper config file for pipestat, if the pipestat initialization fails, Looper will raise an exception telling the user that they must configure pipestat to use the desired command.
However, Looper doesn't tell the user why pipestat initialization failed.
Example - Say I give looper an incorrect config file:
pep_config: ./project/project_config.yaml
output_dir: ./results
pipeline_interfaces:
sample: null <----Problem is here
pipestat:
results_file_path: results.yaml
Running command:
looper check --looper-config .looper_pipestat.yaml
I see this:
Traceback (most recent call last):
File "/home/drc/GITHUB/looper/master/looper/venv/bin/looper", line 8, in <module>
sys.exit(main())
File "/home/drc/GITHUB/looper/master/looper/venv/lib/python3.10/site-packages/looper/cli_looper.py",
line 742, in main
raise PipestatConfigurationException("check")
looper.exceptions.PipestatConfigurationException: Pipestat must be configured for command check
It would be better to tell the user why pipestat configuration failed.
Another, concrete example, troubleshooting custom sample names via sample_table_index, I will get an attribute error if I use looper run (which is the correct error if the custom names are not set up properly). However, if I use something like looper check, I am informed that looper.exceptions.PipestatConfigurationException: Pipestat must be configured for command check. This is actually the wrong error and would be confusing to the end user.
Error's should be propagating better now with work done in #496 Marking this as solved.