@@ -118,12 +118,13 @@ def update_datetime_attribute(dst: str, src: str):
118118 def updater (self , obj , action ):
119119 value = getattr (action , src )
120120
121- if not isinstance (value , datetime ):
122- raise TypeError (f"Unsupported datetime object type: f{ type (value )} " )
121+ # value should be either None or datetime
122+ if isinstance (value , datetime ):
123+ value = value .isoformat ()
123124
124- if obj .get (dst ) != value . isoformat () :
125+ if obj .get (dst ) != value :
125126 new = copy .deepcopy (obj )
126- new [dst ] = value . isoformat ()
127+ new [dst ] = value
127128 return new
128129 return obj
129130
@@ -134,13 +135,13 @@ def update_nested_object_attribute(dst: str, src: str):
134135 def updater (self , obj , action ):
135136 values = getattr (action , src )
136137
137- if not isinstance (values , list ):
138- raise TypeError (f"Unsupported nested object type: f{ type (values )} " )
138+ # values should be either None or a list
139+ if isinstance (values , list ):
140+ values = [item .serialize () for item in values ]
139141
140- items = [item .serialize () for item in values ]
141- if items != obj .get (dst ):
142+ if values != obj .get (dst ):
142143 new = copy .deepcopy (obj )
143- new [dst ] = items
144+ new [dst ] = values
144145 return new
145146
146147 return obj
0 commit comments