-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CLN] make ValueError and TypeError present as InvalidArgumentError #3017
Conversation
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
except ValueError as e: | ||
return JSONResponse( | ||
content={"error": "InvalidArgumentError", "message": str(e)}, | ||
status_code=400, | ||
) | ||
except TypeError as e: | ||
return JSONResponse( | ||
content={"error": "InvalidArgumentError", "message": str(e)}, | ||
status_code=400, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we transform these error types to a ChromaError
inside this handler and then allow the normal error flow to handle them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought about that, but it felt silly / not helpful to do so, I could go either way - and don't have a principled way of deciding since the change is localized - I.e we'd catch this type, turn it into a chroma error and rethrow.
If you have a way to decide lmk - I can change it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah current method seems fine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to understand this a bit better; how do we know both of these are due to an InvalidArgumentError
? Why don't we throw a ChromaError
that represents an InvalidArgumentError
further down the stack?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ValueError / TypeError
"A TypeError occurs when an operation or function is applied to an object of inappropriate type. A ValueError occurs when a built-in operation or function receives an argument that has the right type but an inappropriate value"
Map to chromas invalid argument error. Rather than replace ALL instances in our code of ValueError/TypeError I opted to catch them and transmit them to clients as an InvalidArgumentError.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The global replace is probably the 'right' thing in the long run (and an easy starter issue); let's make an issue for that. Meantime this looks fine to land.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
…3017) ## Description of changes *Summarize the changes made by this PR.* - Improvements & Bug fixes - This will propagate value/type errors as invalid argument errors - New functionality - None ## Test plan *How are these changes tested?* - [x] Tests pass locally with `pytest` for python, `yarn test` for js, `cargo test` for rust ## Documentation Changes None
Description of changes
Summarize the changes made by this PR.
Test plan
How are these changes tested?
pytest
for python,yarn test
for js,cargo test
for rustDocumentation Changes
None