Improve error messages
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.2k
- Forks
- 1.4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 14
Description
Is your feature request related to a problem?
Coming back to xarray, and using it based on what I remember from a year ago or so, means I make lots of mistakes. I've also been using it outside of a repl, where error messages are more important, given I can't explore a dataset inline.
Some of the error messages could be much more helpful. Take one example:
xarray.core.merge.MergeError: conflicting values for variable 'date' on objects to be combined.
You can skip this check by specifying compat='override'.
The second sentence is nice. But the first could be give us much more information:
- Which variables conflict? I'm merging four objects, so would be so helpful to know which are causing the issue.
- What is the conflict? Is one a superset and I can
join=...? Are they off by 1 or are they completely different types?- Our
testing.assert_equalproduces pretty nice errors, as a comparison
- Our
Having these good is really useful, lets folks stay in the flow while they're working, and it signals that we're a well-built, refined library.
Describe the solution you'd like
I'm not sure the best way to surface the issues — error messages make for less legible contributions than features or bug fixes, and the primary audience for good error messages is often the opposite of those actively developing the library. They're also more difficult to manage as GH issues — there could be scores of marginal issues which would often be out of date.
One thing we do in PRQL is have a file that snapshots error messages test_bad_error_messages.rs, which can then be a nice contribution to change those from bad to good. I'm not sure whether that would work here (python doesn't seem to have a great snapshotter, pytest-regtest is the best I've found; I wrote pytest-accept but requires doctests).
Any other ideas?
Describe alternatives you've considered
No response
Additional context
A couple of specific error-message issues:
Contributor guide
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 by tracing the xarray.core.merge.MergeError example and compare its output with the messages produced by testing.assert_equal. Review the related issues 2078 and 5290, then determine a focused error-message improvement and how it should be tested; the issue does not define a specific completion target.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100