@@ -372,11 +372,15 @@ def _python_value_to_proto_value(
372372 if feast_value_type == ValueType .BYTES_LIST :
373373 raise _type_err (sample , ValueType .BYTES_LIST )
374374
375- json_value = json .loads (sample )
376- if isinstance (json_value , list ):
375+ json_sample = json .loads (sample )
376+ if isinstance (json_sample , list ):
377+ json_values = [json .loads (value ) for value in values ]
377378 if feast_value_type == ValueType .BOOL_LIST :
378- json_value = [bool (item ) for item in json_value ]
379- return [ProtoValue (** {field_name : proto_type (val = json_value )})] # type: ignore
379+ json_values = [bool (item ) for item in json_values ]
380+ return [
381+ ProtoValue (** {field_name : proto_type (val = v )}) # type: ignore
382+ for v in json_values
383+ ]
380384 raise _type_err (sample , valid_types [0 ])
381385
382386 if sample is not None and not all (
@@ -506,7 +510,14 @@ def python_values_to_proto_values(
506510 if value_type == ValueType .UNKNOWN :
507511 raise TypeError ("Couldn't infer value type from empty value" )
508512
509- return _python_value_to_proto_value (value_type , values )
513+ proto_values = _python_value_to_proto_value (value_type , values )
514+
515+ if len (proto_values ) != len (values ):
516+ raise ValueError (
517+ f"Number of proto values { len (proto_values )} does not match number of values { len (values )} "
518+ )
519+
520+ return proto_values
510521
511522
512523def _proto_value_to_value_type (proto_value : ProtoValue ) -> ValueType :
0 commit comments