parameters: (obj, name=None)
docstring: Test whether an function or a class should be pickled by reference
  
       Pickling by reference means by that the object (typically a function or a
       class) is an attribute of a module that is assumed to be importable in the
       target Python environment. Loading will therefore rely on importing the
       module and then calling `getattr` on it to access the function or class.
  
       Pickling by reference is the only option to pickle functions and classes
       in the standard library. In cloudpickle the alternative option is to
       pickle by value (for instance for interactively or locally defined
       functions and classes or for attributes of modules that have been
       explicitly registered to be pickled by value.
docstring_summary: Test whether an function or a class should be pickled by reference
docstring_tokens: Test whether an function or a class should be pickled by reference
function: def _should_pickle_by_reference(obj, name=None):
      """Test whether an function or a class should be pickled by reference
  
       Pickling by reference means by that the object (typically a function or a
       class) is an attribute of a module that is assumed to be importable in the
       target Python environment. Loading will therefore rely on importing the
       module and then calling `getattr` on it to access the function or class.
  
       Pickling by reference is the only option to pickle functions and classes
       in the standard library. In cloudpickle the alternative option is to
       pickle by value (for instance for interactively or locally defined
       functions and classes or for attributes of modules that have been
       explicitly registered to be pickled by value.
       """
      if isinstance(obj, types.FunctionType) or issubclass(type(obj), type):
          module_and_name = _lookup_module_and_qualname(obj, name=name)
          if module_and_name is None:
              return False
          module, name = module_and_name
          return not _is_registered_pickle_by_value(module)
  
      elif isinstance(obj, types.ModuleType):
          # We assume that sys.modules is primarily used as a cache mechanism for
          # the Python import machinery. Checking if a module has been added in
          # is sys.modules therefore a cheap and simple heuristic to tell us
          # whether we can assume that a given module could be imported by name
          # in another Python process.
          if _is_registered_pickle_by_value(obj):
              return False
          return obj.__name__ in sys.modules
      else:
          raise TypeError(
              "cannot check importability of {} instances".format(
                  type(obj).__name__)
          )
function_tokens: def _should_pickle_by_reference ( obj , name = None ) : if isinstance ( obj , types . FunctionType ) or issubclass ( type ( obj ) , type ) : module_and_name = _lookup_module_and_qualname ( obj , name = name ) if module_and_name is None : return False module , name = module_and_name return not _is_registered_pickle_by_value ( module ) elif isinstance ( obj , types . ModuleType ) : # We assume that sys.modules is primarily used as a cache mechanism for # the Python import machinery. Checking if a module has been added in # is sys.modules therefore a cheap and simple heuristic to tell us # whether we can assume that a given module could be imported by name # in another Python process. if _is_registered_pickle_by_value ( obj ) : return False return obj . __name__ in sys . modules else : raise TypeError ( "cannot check importability of {} instances" . format ( type ( obj ) . __name__ ) )