code: def neo_val_to_pd_val(v):
      import neo4j
  
      if v is None:
          return v
  
      try:
          v_mod = v.__module__
      except:
          return v
  
      # neo4j 3
      if v_mod == "neotime":
          return str(v)
  
      # neo4j 4, 5
      if v_mod == "neo4j.time":
          if v.__class__ == neo4j.time.DateTime:
              return v.to_native()  # datetime.datetime
          elif v.__class__ == neo4j.time.Date:
              return datetime.combine(
                  v.to_native(), t0
              )  # datatime.datatime
          elif v.__class__ == neo4j.time.Time:
              return pd.to_timedelta(v.iso_format())  # timedelta
          elif v.__class__ == neo4j.time.Duration:
              # TODO expand out?
              return v.iso_format()  # str
          else:
              return str(v)
  
      # handle neo4j.spatial.* later
  
      return v
  
file_path: pygraphistry/graphistry/bolt_util.py
imports: import pandas
  from datetime import datetime
  from .pygraphistry import util
  from .util import setup_logger
label_desc: Use image node_id 5 for calling a global function with example usage: neo_val_to_pd_val(v) and returns: v, v, str, v, v, datetime, pd, v, str