(
self,
read_context,
serializer,
is_nullable,
is_dynamic,
is_basic,
is_tracking_ref,
is_compatible_scalar_field,
)
| 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) |
no test coverage detected