-
-
Notifications
You must be signed in to change notification settings - Fork 778
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
Fixed Improper Method Call: Replaced NotImplementedError
with NotImplemented
#7900
Conversation
/test mini |
As per the definition of
I think
should be replaced by |
@kmaehashi In that case, let's use Let me add new commits to this PR. |
I guess just doing |
Please refer to the suggestion at: cupy#7900 (comment)
I've replaced def __rtruediv__(self, other):
return NotImplemented in _csr.py since the method isn't even implemented at all. |
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.
LGTM!
/test mini |
/test mini |
@fazledyn-or LGTM. Thanks for your contribution! |
Details
In file: _csc.py, class:
csc_matrix
, there is a special method__mul__
that raises aNotImplementedError
. If a special method supporting a binary operation is not implemented it should returnNotImplemented
. On the other hand,NotImplementedError
should be raised from abstract methods inside user defined base classes to indicate that derived classes should override those methods. iCR suggested that the special method__mul__
should returnNotImplemented
instead of raising an exception.In file: _csr.py, class:
csr_matrix
, there is a special method__truediv__
that raises aNotImplementedError
. If a special method supporting a binary operation is not implemented it should returnNotImplemented
. On the other hand,NotImplementedError
should be raised from abstract methods inside user defined base classes to indicate that derived classes should override those methods. iCR suggested that the special method__truediv__
should returnNotImplemented
instead of raising an exception.An example of how
NotImplemented
helps the interpreter support a binary operation is shown here.Notes
Both the class
csr_matrix
andcsc_matrix
inherits the following classes as below. Among them, a binary operation method, such as__mul__
is already defined and implemented in class_base.spmatrix
. As a result, it's suggested thatNotImplemented
should be used instead of raising an exception.However, for special custom methods, one can opt-in to use
raise NotImplementedError
.CLA Requirements:
This section is only relevant if your project requires contributors to sign a Contributor License Agreement (CLA) for external contributions.
All contributed commits are already automatically signed off.
The meaning of a signoff depends on the project, but it typically certifies that committer has the rights to submit this work under the same license and agrees to a Developer Certificate of Origin (see https://developercertificate.org/ for more information).
Sponsorship and Support:
This work is done by the security researchers from OpenRefactory and is supported by the Open Source Security Foundation (OpenSSF): Project Alpha-Omega. Alpha-Omega is a project partnering with open source software project maintainers to systematically find new, as-yet-undiscovered vulnerabilities in open source code - and get them fixed – to improve global software supply chain security.
The bug is found by running the Intelligent Code Repair (iCR) tool by OpenRefactory and then manually triaging the results.