-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
fix(sdk.v2): fixes broken output parameter type checking in _handle_single_return_value
#6566
fix(sdk.v2): fixes broken output parameter type checking in _handle_single_return_value
#6566
Conversation
Hi @judahrand. Thanks for your PR. I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
_is_parameter
type checking_handle_single_return_value
This is one of two possible approaches.
origin_type = getattr(annotation_type, '__origin__', annotation_type)
if type(return_value) != origin_type:
raise ValueError(
'Function `{}` returned value of type {}; want type {}'
.format(self._func.__name__, type(return_value),
origin_type)) This second option does not add a dependency but would also allow un-JSON-serializable types through regardless of the typehints. Given that I don't think we're currently checking whether the type hints point to something which is serializable perhaps the second approach is better? Please let me know what you think. |
@judahrand Thanks for the fix and the detailed comparison between the two approaches. |
/ok-to-test |
345bced
to
ae59310
Compare
@chensun Sounds good, I've updated the PR to take that approach. I believe there are quite a lot of other type checking issues throughout the SDK. A lot of them seem to revolve are Python 3.6 support. |
/lgtm Thanks! |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: chensun The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Description of your changes:
This function would fail under two scenarios:
list
ordict
output parameters (ie.Dict[str, str]
) raised an incorrectValueError
list
ordict
rather thanList
orDict
raised an incorrectValueError
(PEP 585)Checklist: