MCPcopy Index your code
hub / github.com/apache/fory / ForyArrayListAdapterSerializer

Class ForyArrayListAdapterSerializer

python/pyfory/serializer.py:626–649  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

624
625
626class ForyArrayListAdapterSerializer(Serializer):
627 def __init__(self, type_resolver, wrapper_type, wrapper_serializer, field_name=None):
628 super().__init__(type_resolver, wrapper_type)
629 self.wrapper_type = wrapper_type
630 self.wrapper_serializer = wrapper_serializer
631 self.field_name = field_name or "<array>"
632 self.need_to_write_ref = False
633
634 def _copy_list_to_wrapper(self, value):
635 if type(value) is not list:
636 raise TypeError(f"pyfory.Array list adapter for {self.field_name!r} requires list, got {type(value)!r}")
637 wrapper = self.wrapper_type()
638 for index, item in enumerate(value):
639 try:
640 wrapper.append(item)
641 except (TypeError, ValueError, OverflowError) as exc:
642 raise type(exc)(f"{self.field_name}[{index}] invalid for {self.wrapper_type.__name__}: {exc}") from exc
643 return wrapper
644
645 def write(self, buffer, value):
646 self.wrapper_serializer.write(buffer, self._copy_list_to_wrapper(value))
647
648 def read(self, buffer):
649 return self.wrapper_serializer.read(buffer)
650
651
652class ForyArrayFieldSerializer(Serializer):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected