(self, field_name, elem_type, carrier, types_path=None)
| 878 | self.type_resolver = type_resolver |
| 879 | |
| 880 | def visit_array(self, field_name, elem_type, carrier, types_path=None): |
| 881 | type_id = _array_type_id(elem_type, carrier) |
| 882 | from pyfory.serializer import ( |
| 883 | ForyArrayFieldSerializer, |
| 884 | Numpy1DArraySerializer, |
| 885 | PyArraySerializer, |
| 886 | fory_array_wrapper_type, |
| 887 | typecode_dict, |
| 888 | typeid_code, |
| 889 | ) |
| 890 | |
| 891 | if carrier == "array": |
| 892 | wrapper_type = fory_array_wrapper_type(type_id) |
| 893 | return ForyArrayFieldSerializer(self.type_resolver, wrapper_type, type_id, field_name) |
| 894 | if carrier == "pyarray": |
| 895 | typecode = typeid_code.get(type_id) |
| 896 | if typecode is None: |
| 897 | raise TypeError(f"pyfory.PyArray does not support array type id {type_id}") |
| 898 | _itemsize, ftype, _type_id = typecode_dict[typecode] |
| 899 | return PyArraySerializer(self.type_resolver, ftype, type_id) |
| 900 | if carrier == "ndarray": |
| 901 | for dtype, (_itemsize, _format, ftype, dtype_type_id) in Numpy1DArraySerializer.dtypes_dict.items(): |
| 902 | if dtype_type_id == type_id: |
| 903 | if ENABLE_FORY_CYTHON_SERIALIZATION: |
| 904 | from pyfory.serialization import Numpy1DArraySerializer as Numpy1DArrayRuntimeSerializer |
| 905 | |
| 906 | return Numpy1DArrayRuntimeSerializer(self.type_resolver, ftype, dtype) |
| 907 | return Numpy1DArraySerializer(self.type_resolver, ftype, dtype) |
| 908 | raise TypeError(f"pyfory.NDArray does not support array type id {type_id}") |
| 909 | raise TypeError(f"Unknown array carrier {carrier!r}") |
| 910 | |
| 911 | def visit_list(self, field_name, elem_type, types_path=None): |
| 912 | from pyfory.serializer import ListSerializer # Local import |
nothing calls this directly
no test coverage detected