code: def from_py_func(cls, func):
          
          from bokeh.util.deprecation import deprecated
          deprecated("'from_py_func' is deprecated and will be removed in an eventual 2.0 release. "
                     "Use CustomJS directly instead.")
  
          if not isinstance(func, FunctionType):
              raise ValueError('CustomJS.from_py_func needs function object.')
          pscript = import_required('pscript',
                                    'To use Python functions for CustomJS, you need PScript ' +
                                    '("conda install -c conda-forge pscript" or "pip install pscript")')
          # Collect default values
          default_values = func.__defaults__  # Python 2.6+
          default_names = func.__code__.co_varnames[:len(default_values)]
          args = dict(zip(default_names, default_values))
          args.pop('window', None)  # Clear window, so we use the global window object
          # Get JS code, we could rip out the function def, or just
          # call the function. We do the latter.
          code = pscript.py2js(func, 'cb') + 'cb(%s);\n' % ', '.join(default_names)
          return cls(code=code, args=args)
docs: Create a ``CustomJS`` instance from a Python function. The
          function is translated to JavaScript using PScript.