MCPcopy Create free account
hub / github.com/apache/fory / _read_field_value

Method _read_field_value

python/pyfory/struct.py:547–575  ·  view source on GitHub ↗
(
        self,
        read_context,
        serializer,
        is_nullable,
        is_dynamic,
        is_basic,
        is_tracking_ref,
        is_compatible_scalar_field,
    )

Source from the content-addressed store, hash-verified

545 write_context.write_no_ref(field_value, serializer=serializer)
546
547 def _read_field_value(
548 self,
549 read_context,
550 serializer,
551 is_nullable,
552 is_dynamic,
553 is_basic,
554 is_tracking_ref,
555 is_compatible_scalar_field,
556 ):
557 if is_nullable and is_basic:
558 if read_context.read_int8() == NULL_FLAG:
559 return None
560 return serializer.read(read_context)
561 if is_basic:
562 return serializer.read(read_context)
563 if is_tracking_ref:
564 return read_context.read_ref(serializer=None if is_dynamic else serializer)
565 if is_nullable:
566 flag = read_context.read_int8()
567 if flag == NULL_FLAG:
568 return None
569 if is_compatible_scalar_field and flag != NOT_NULL_VALUE_FLAG:
570 from pyfory.error import ForyInvalidDataError
571
572 raise ForyInvalidDataError(f"Invalid compatible scalar null flag: {flag}")
573 if is_dynamic:
574 return read_context.read_no_ref()
575 return read_context.read_no_ref(serializer=serializer)
576
577 def _default_field_value(self, field_name):
578 default_factory = self._default_values_factory.get(field_name)

Callers 2

readMethod · 0.95

Calls 5

read_no_refMethod · 0.80
readMethod · 0.65
read_int8Method · 0.45
read_refMethod · 0.45

Tested by

no test coverage detected