Review this generated encoder before it is used by a high-volume plugin export.
Encode text, integer lists, and plugin payloads through one extensible function while keeping dispatch predictable and efficient.
Python
from collections.abc import Sequence
from functools import singledispatch
@singledispatch
def encode(value):
return str(value)
@encode.register(Sequence)
def encode_sequence(value):
return [encode(item) for item in value]
@encode.register
def encode_numbers(value: list[int]):
return ",".join(str(item) for item in value)
def install_plugin(plugin):
@encode.register(plugin.payload_type)
def encode_plugin(value):
return plugin.dump(value)
return encode_plugin
def export(records):
return [encode(record) for record in records]
generated code is illustrative, not from any one model