-
Notifications
You must be signed in to change notification settings - Fork 14.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 TIPydantic serialization of MappedOperator #39288
Fix TIPydantic serialization of MappedOperator #39288
Conversation
Previously we relied on SerializedBaseOperator.serialize_operator for serialization of all Operator objects but this is no bueno because it does not work for mapped operator. Instead we use BaseSerialization.serialize, which calls the right method for each obj type. To make this actually work for db isolation though, we had to do a few more things. 1. operator_class obj was not deserialized properly so fixed that. It's a weird case cus it roundtrips to a dict -- not a class. Also expand_input did not work quite right because it roundtrips to _ExpandInputRef. Then we had to make a small change to get_map_type_key since we might have _ExpandInputRef here. (cherry picked from commit 65748faa979c346023f57df94440bf06e3b2e760)
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.
Nit: could be great to add unit tests associated to changes in models
@uranusjr do you have any concerns with this PR? |
@uranusjr just going to merge this for now; if you look and find issues, we can make changes. |
Hey @dstandish -> this one has been merged without rebasing after it has not been run for a month or so and it broke main quite heavily. I will revert it now and it should be re-created and fixed |
This reverts commit c2f1739.
Update - it was not a month, but I think it has clashed with other changes in the meantime. |
I will also see if I can fix those issues in paralell, while checking if this is indeed the problem - so I might be able to fix it. |
The apache#39288 clashed with another change and failed main
The #39288 clashed with another change and failed main
Previously we relied on SerializedBaseOperator.serialize_operator for serialization of all Operator objects but this is no bueno because it does not work for mapped operator. Instead we use BaseSerialization.serialize, which calls the right method for each obj type. To make this actually work for db isolation though, we had to do a few more things. 1. operator_class obj was not deserialized properly so fixed that. It's a weird case cus it roundtrips to a dict -- not a class. Also expand_input did not work quite right because it roundtrips to _ExpandInputRef. Then we had to make a small change to get_map_type_key since we might have _ExpandInputRef here.
The apache#39288 clashed with another change and failed main
Previously we relied on SerializedBaseOperator.serialize_operator for serialization of all Operator objects but this is no bueno because it does not work for mapped operator. Instead we use BaseSerialization.serialize, which calls the right method for each obj type. To make this actually work for db isolation though, we had to do a few more things. 1. operator_class obj was not deserialized properly so fixed that. It's a weird case cus it roundtrips to a dict -- not a class. Also expand_input did not work quite right because it roundtrips to _ExpandInputRef. Then we had to make a small change to get_map_type_key since we might have _ExpandInputRef here.