pepkit / eido

Validator for PEP objects
http://eido.databio.org
BSD 2-Clause "Simplified" License
4 stars 6 forks source link

Improve Error-Messages #69

Open KuechlerO opened 3 months ago

KuechlerO commented 3 months ago

Hi guys,

thx for your tool! Your concept is really cool and a handy feature :)

I have decided to integrate this tool in my Snakemake-Pipeline. However, I now already stumbled multiple times over the issue of having metadata-files that fail the eido evaluation, but the Error messages which are returned by the tool are not helping at all. Thus, every time when I face such an error I have to invest a lot of time to finally figure out what's the reason for the failing validation.

Here is a minimal reproducible example:

  1. pep_schemal.yaml
    
    description: Minimal example

imports:

properties: samples: type: array items: type: object properties: sample_directory: type: string pattern: "^/\S+$|None"


2. `input_no_error.csv`

sample_name,sample_directory test,/testung


3. `input_error.csv`

sample_name,sample_directory test,testung


Then the output:

No error

$ eido validate input_no_error.csv -s pep_schema.yaml Validation successful

Error

$ eido validate input_error.csv -s pep_schema.yaml Traceback (most recent call last): File "/Users/oliverkuchler/miniforge3/envs/snakemake7/bin/eido", line 10, in sys.exit(main()) ^^^^^^ File "/Users/oliverkuchler/miniforge3/envs/snakemake7/lib/python3.12/site-packages/eido/cli.py", line 159, in main validator(*arguments) File "/Users/oliverkuchler/miniforge3/envs/snakemake7/lib/python3.12/site-packages/eido/validation.py", line 73, in validate_project _validate_object( File "/Users/oliverkuchler/miniforge3/envs/snakemake7/lib/python3.12/site-packages/eido/validation.py", line 45, in _validate_object instance_name = error.instance[sample_name_colname]


```

Is there any plans for the future to improve the output?
It would be very cool if one could at least see, because of which input the validation fails.