pepkit / looper

A job submitter for Portable Encapsulated Projects
http://looper.databio.org
BSD 2-Clause "Simplified" License
20 stars 7 forks source link

Better Error Messages (pipestat implementation) #425

Closed donaldcampbelljr closed 3 months ago

donaldcampbelljr commented 11 months ago

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.

donaldcampbelljr commented 8 months ago

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.

donaldcampbelljr commented 4 months ago

Error's should be propagating better now with work done in #496 Marking this as solved.