@@ -372,11 +372,15 @@ def _python_value_to_proto_value(
372
372
if feast_value_type == ValueType .BYTES_LIST :
373
373
raise _type_err (sample , ValueType .BYTES_LIST )
374
374
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 ]
377
378
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
+ ]
380
384
raise _type_err (sample , valid_types [0 ])
381
385
382
386
if sample is not None and not all (
@@ -506,7 +510,14 @@ def python_values_to_proto_values(
506
510
if value_type == ValueType .UNKNOWN :
507
511
raise TypeError ("Couldn't infer value type from empty value" )
508
512
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
510
521
511
522
512
523
def _proto_value_to_value_type (proto_value : ProtoValue ) -> ValueType :
0 commit comments