code: def _code_reduce(obj):
      """codeobject reducer"""
      # If you are not sure about the order of arguments, take a look at help
      # of the specific type from types, for example:
      # >>> from types import CodeType
      # >>> help(CodeType)
      if hasattr(obj, "co_exceptiontable"):  # pragma: no branch
          # Python 3.11 and later: there are some new attributes
          # related to the enhanced exceptions.
          args = (
              obj.co_argcount,
              obj.co_posonlyargcount,
              obj.co_kwonlyargcount,
              obj.co_nlocals,
              obj.co_stacksize,
              obj.co_flags,
              obj.co_code,
              obj.co_consts,
              obj.co_names,
              obj.co_varnames,
              obj.co_filename,
              obj.co_name,
              obj.co_qualname,
              obj.co_firstlineno,
              obj.co_linetable,
              obj.co_exceptiontable,
              obj.co_freevars,
              obj.co_cellvars,
          )
      elif hasattr(obj, "co_linetable"):  # pragma: no branch
          # Python 3.10 and later: obj.co_lnotab is deprecated and constructor
          # expects obj.co_linetable instead.
          args = (
              obj.co_argcount,
              obj.co_posonlyargcount,
              obj.co_kwonlyargcount,
              obj.co_nlocals,
              obj.co_stacksize,
              obj.co_flags,
              obj.co_code,
              obj.co_consts,
              obj.co_names,
              obj.co_varnames,
              obj.co_filename,
              obj.co_name,
              obj.co_firstlineno,
              obj.co_linetable,
              obj.co_freevars,
              obj.co_cellvars,
          )
      elif hasattr(obj, "co_nmeta"):  # pragma: no cover
          # "nogil" Python: modified attributes from 3.9
          args = (
              obj.co_argcount,
              obj.co_posonlyargcount,
              obj.co_kwonlyargcount,
              obj.co_nlocals,
              obj.co_framesize,
              obj.co_ndefaultargs,
              obj.co_nmeta,
              obj.co_flags,
              obj.co_code,
              obj.co_consts,
              obj.co_varnames,
              obj.co_filename,
              obj.co_name,
              obj.co_firstlineno,
              obj.co_lnotab,
              obj.co_exc_handlers,
              obj.co_jump_table,
              obj.co_freevars,
              obj.co_cellvars,
              obj.co_free2reg,
              obj.co_cell2reg,
          )
      elif hasattr(obj, "co_posonlyargcount"):
          # Backward compat for 3.9 and older
          args = (
              obj.co_argcount,
              obj.co_posonlyargcount,
              obj.co_kwonlyargcount,
              obj.co_nlocals,
              obj.co_stacksize,
              obj.co_flags,
              obj.co_code,
              obj.co_consts,
              obj.co_names,
              obj.co_varnames,
              obj.co_filename,
              obj.co_name,
              obj.co_firstlineno,
              obj.co_lnotab,
              obj.co_freevars,
              obj.co_cellvars,
          )
      else:
          # Backward compat for even older versions of Python
          args = (
              obj.co_argcount,
              obj.co_kwonlyargcount,
              obj.co_nlocals,
              obj.co_stacksize,
              obj.co_flags,
              obj.co_code,
              obj.co_consts,
              obj.co_names,
              obj.co_varnames,
              obj.co_filename,
              obj.co_name,
              obj.co_firstlineno,
              obj.co_lnotab,
              obj.co_freevars,
              obj.co_cellvars,
          )
      return types.CodeType, args
  
imports: import _collections_abc
  import abc
  import copyreg
  import io
  import itertools
  import logging
  import sys
  import struct
  import types
  import weakref
  import typing
  from enum import Enum
  from collections import ChainMap, OrderedDict
  from .compat import pickle, Pickler
  from .cloudpickle import _extract_code_globals, _BUILTIN_TYPE_NAMES, DEFAULT_PROTOCOL, _find_imported_submodules, _get_cell_contents, _should_pickle_by_reference, _builtin_type, _get_or_create_tracker_id, _make_skeleton_class, _make_skeleton_enum, _extract_class_dict, dynamic_subimport, subimport, _typevar_reduce, _get_bases, _make_cell, _make_empty_cell, CellType, _is_parametrized_type_hint, PYPY, cell_set, parametrized_type_hint_getinitargs, _create_parametrized_type_hint, builtin_code_type, _make_dict_keys, _make_dict_values, _make_dict_items, _make_function
label_desc: Use image node_id 7 for calling a global function with example usage: _code_reduce(obj) and returns: types,  args