code: def cast(func, value):
      
      if value is not None:
          if func == bool:
              return bool(int(value))
          elif func in (int, float):
              try:
                  return func(value)
              except ValueError:
                  return float('nan')
          return func(value)
      return value
docs: Cast the specified value to the specified type (returned by func). Currently this
          only support int, float, bool. Should be extended if needed.
  
          Parameters:
              func (func): Calback function to used cast to type (int, bool, float).
              value (any): value to be cast and returned.