code: def _asdict_inner(obj, dict_factory):
      if _is_dataclass_instance(obj):
          result = []
          for f in fields(obj):
              value = _asdict_inner(getattr(obj, f.name), dict_factory)
              result.append((f.name, value))
          return dict_factory(result)
      elif isinstance(obj, (list, tuple)):
          return type(obj)(_asdict_inner(v, dict_factory) for v in obj)
      elif isinstance(obj, dict):
          return type(obj)(
              (
                  _asdict_inner(k, dict_factory),
                  _asdict_inner(v, dict_factory),
              )
              for k, v in obj.items()
          )
      else:
          return copy.deepcopy(obj)
  
imports: import re
  import sys
  import copy
  import types
  import inspect
  import keyword
label_desc: Use image node_id 26 for calling a global function with example usage: _asdict_inner(obj, dict_factory) and returns: dict_factory, type, type, copy