class_docstr: Base class for defining serializers. The serializers are not really meant to be
  used directly in practice, instad use the :meth:`decorate` method or the
  decorators defined in :mod:`src.data_new.serialize`. In order to define new
  serializers, implement the :meth:`load_result` and :meth:`save_result` methods.
  
  In order to serialize the function the function call `f(*args, **kwargs)`, we call
  using the :meth:`get` method instead
  
  .. code-block ::
  
      serializer: Serializer
      result = serializer.get(f, *args, **kwargs)
  
  :ivar path: Either a literal path (str or pathlib.Path) object or a callable that
      return a path when called with the function, f, and arguments as an
      :class:`inspect.BoundArgument` instance.
class_docstr_tok: ["Base","class","for","defining","serializers",".","The","serializers","are","not","really","meant","to","be","used","directly","in","practice",",","instad","use","the",":","meth",":","`","decorate","`","method","or","the","decorators","defined","in",":","mod",":","`","src.data_new.serialize","`",".","In","order","to","define","new","serializers",",","implement","the",":","meth",":","`","load_result","`","and",":","meth",":","`","save_result","`","methods",".","In","order","to","serialize","the","function","the","function","call","`","f","(","*","args",",","*","*","kwargs",")","`",",","we","call","using","the",":","meth",":","`","get","`","method","instead","..","code-block",":",":","serializer",":","Serializer","result","=","serializer.get","(","f",",","*","args",",","*","*","kwargs",")",":","ivar","path",":","Either","a","literal","path","(","str","or","pathlib.Path",")","object","or","a","callable","that","return","a","path","when","called","with","the","function",",","f",",","and","arguments","as","an",":","class",":","`","inspect.BoundArgument","`","instance","."]
docstr: Computes f(...)
docstr_tok: ["Computes","f","(","...",")"]
code: def compute(self, f: Callable[..., T], ba: BoundArguments) -> T:
      """Computes f(...)"""
  
      return f(*ba.args, **ba.kwargs)
  
imports: import inspect
  import json
  import logging
  import pickle
  from dataclasses import asdict, dataclass, field, is_dataclass
  from functools import wraps
  from inspect import BoundArguments
  from pathlib import Path
  from typing import Any, Callable, Dict, Generic, List, Literal, Protocol, TypeVar, Union, cast, get_args
  import dask
  import dask.dataframe
  import pandas
  from src.utils import stringify
label_desc: Use image node_id 6 for calling the Serializer obj's underlying member method code with example usage: obj.compute(f, ba) and returns: f