code: def __post_init__(self):
      i_pdict, o_pdict = make_param_dict(
          self.inputs, self.outputs, self.uid
      )
      self.inp_attr_dict = make_parameter_container(i_pdict)
      self.out_attr_dict = make_parameter_container(o_pdict)
  
      _dsk_func_inputs = []
      for k, datatype in self.inputs.items():
          _dsk_func_inputs.append(f"{self.uid}.inputs.{k}")
          self.dsk[f"{self.uid}.inputs.{k}"] = (
              datatype.packed_deserialize,
              f"{self.uid}.inputs.{k}.serial",
          )
  
      self.dsk[f"{self.uid}.funcout"] = (
          # inline _exposed_fn run with 'outputs_to_keymap_fn' since
          # it is a cheap transformation we need to do every time.
          compose(
              partial(fn_outputs_to_keyed_map, self.outputs.keys()),
              self.exposed,
          ),
          *_dsk_func_inputs,
      )
  
      for k, datatype in self.outputs.items():
          self.dsk[f"{self.uid}.outputs.{k}"] = (
              partial(cytoolz_get, k),
              f"{self.uid}.funcout",
          )
          self.dsk[f"{self.uid}.outputs.{k}.serial"] = (
              datatype.serialize,
              f"{self.uid}.outputs.{k}",
          )
  
file_path: lightning-flash/src/flash/core/serve/decorators.py
imports: from dataclasses import dataclass, field, fields
  from functools import partial, wraps
  from keyword import iskeyword
  from types import FunctionType, MethodType
  from typing import Dict, List, Sequence, Tuple, Union
  from uuid import uuid4
  from flash.core.serve.core import Connection, ParameterContainer, Servable, make_param_dict, make_parameter_container
  from flash.core.serve.types.base import BaseType
  from flash.core.serve.utils import fn_outputs_to_keyed_map
  from flash.core.utilities.imports import _CYTOOLZ_AVAILABLE, _TOPIC_SERVE_AVAILABLE
label_desc: Use image node_id 1 for calling the BoundMeta obj's underlying member method code with example usage: obj.__post_init__() without return types