-
-
Notifications
You must be signed in to change notification settings - Fork 10.4k
[refactor] improve ConstantList exception specificity #22156
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
[refactor] improve ConstantList exception specificity #22156
Conversation
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels. Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can either: Add 🚀 |
Replace generic Exception with TypeError for all mutating operations in ConstantList class. This provides more precise error semantics as these operations attempt to modify an immutable data structure, which is fundamentally a type compatibility issue. Changes: - append, extend, insert, pop, remove, clear methods - __setitem__ and __delitem__ magic methods This improves error handling precision and follows Python best practices for exception types. Signed-off-by: zitian.zhao <[email protected]>
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.
Code Review
This pull request correctly refactors the ConstantList
class to raise TypeError
instead of a generic Exception
for mutating operations. This is a good improvement as it provides more specific and standard error semantics for an immutable collection. I've added a couple of high-severity comments to address incorrect method signatures for insert
and pop
, which, if corrected, will ensure the class behaves consistently with Python's built-in list and raises the intended errors.
vllm/v1/utils.py
Outdated
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 insert
method signature is incorrect. It should match the list.insert(index, object)
signature to correctly override the behavior and provide the intended TypeError
. The current signature insert(self, item)
takes only one argument besides self
, which will cause a TypeError
about the number of arguments if a user tries to call it like list.insert(0, value)
, preventing the intended "Cannot insert..." error from being raised.
def insert(self, item): | |
def insert(self, index, item): |
vllm/v1/utils.py
Outdated
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 pop
method signature is incorrect. It should match list.pop([index])
, which takes an optional index argument. The current signature pop(self, item)
requires one argument, which is inconsistent with list.pop()
that can be called with zero or one argument (the index). This will lead to unexpected TypeError
exceptions related to arguments, rather than the intended one about immutability.
def pop(self, item): | |
def pop(self, index=-1): |
f035195
to
5f09cad
Compare
…2156) Signed-off-by: zitian.zhao <[email protected]>
…2156) Signed-off-by: zitian.zhao <[email protected]> Signed-off-by: Jinzhen Lin <[email protected]>
…2156) Signed-off-by: zitian.zhao <[email protected]> Signed-off-by: Noam Gat <[email protected]>
…2156) Signed-off-by: zitian.zhao <[email protected]> Signed-off-by: Paul Pak <[email protected]>
…2156) Signed-off-by: zitian.zhao <[email protected]> Signed-off-by: Diego-Castan <[email protected]>
…2156) Signed-off-by: zitian.zhao <[email protected]>
…2156) Signed-off-by: zitian.zhao <[email protected]>
Replace generic Exception with TypeError for all mutating operations in ConstantList class. This provides more precise error semantics as these operations attempt to modify an immutable data structure, which is fundamentally a type compatibility issue.
Changes:
This improves error handling precision and follows Python best practices for exception types.