docstr: Reducer for function objects.
  
  If obj is a top-level attribute of a file-backed module, this
  reducer returns NotImplemented, making the CloudPickler fallback to
  traditional _pickle.Pickler routines to save obj. Otherwise, it reduces
  obj using a custom cloudpickle reducer designed specifically to handle
  dynamic functions.
  
  As opposed to cloudpickle.py, There no special handling for builtin
  pypy functions because cloudpickle_fast is CPython-specific.
docstr_tok: ["Reducer","for","function","objects",".","If","obj","is","a","top-level","attribute","of","a","file-backed","module",",","this","reducer","returns","NotImplemented",",","making","the","CloudPickler","fallback","to","traditional","_pickle.Pickler","routines","to","save","obj",".","Otherwise",",","it","reduces","obj","using","a","custom","cloudpickle","reducer","designed","specifically","to","handle","dynamic","functions",".","As","opposed","to","cloudpickle.py",",","There","no","special","handling","for","builtin","pypy","functions","because","cloudpickle_fast","is","CPython-specific","."]
code: def _function_reduce(self, obj):
      """Reducer for function objects.
  
      If obj is a top-level attribute of a file-backed module, this
      reducer returns NotImplemented, making the CloudPickler fallback to
      traditional _pickle.Pickler routines to save obj. Otherwise, it reduces
      obj using a custom cloudpickle reducer designed specifically to handle
      dynamic functions.
  
      As opposed to cloudpickle.py, There no special handling for builtin
      pypy functions because cloudpickle_fast is CPython-specific.
      """
      if _should_pickle_by_reference(obj):
          return NotImplemented
      else:
          return self._dynamic_function_reduce(obj)
  
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 2 for calling the CloudPickler obj's underlying member method code with example usage: obj._function_reduce(obj) and returns: NotImplemented, self