From edf9b5471ad0c350d580907c2c933cecb800f071 Mon Sep 17 00:00:00 2001 From: Alexey Volkov Date: Thu, 24 Jan 2019 20:01:23 -0800 Subject: [PATCH] SDK/Components - convert_object_to_struct now uses __init__ to get field list (#733) This stops serialization of any additional attributes set on an object --- sdk/python/kfp/components/modelbase.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/python/kfp/components/modelbase.py b/sdk/python/kfp/components/modelbase.py index dae2ce685b9..e29b1a50a8e 100644 --- a/sdk/python/kfp/components/modelbase.py +++ b/sdk/python/kfp/components/modelbase.py @@ -183,7 +183,8 @@ def convert_object_to_struct(obj, serialized_names: Mapping[str, str] = {}): ''' signature = inspect.signature(obj.__init__) #Needed for default values result = {} - for python_name, value in obj.__dict__.items(): #TODO: Should we take the fields from the constructor parameters instead? #TODO: Make it possible to specify the field ordering + for python_name in signature.parameters: #TODO: Make it possible to specify the field ordering regardless of the presence of default values + value = getattr(obj, python_name) if python_name.startswith('_'): continue attr_name = serialized_names.get(python_name, python_name)