Improve Error-Messages
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
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:
pep_schemal.yaml
description: Minimal example
imports:
- http://schema.databio.org/pep/2.1.0.yaml
properties:
samples:
type: array
items:
type: object
properties:
sample_directory:
type: string
pattern: "^/\\S+$|None"
input_no_error.csv
sample_name,sample_directory
test,/testung
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 <module>
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with eido/validation.py around _validate_object and the traceback path from eido/cli.py. Reproduce the failure with input_error.csv and pep_schema.yaml, then inspect how validation errors are surfaced. Done means the invalid input reports a useful validation reason and context instead of an unhelpful traceback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100