docs: def bigquery_type(o, timestamp_parser=default_timestamp_parser):
      """Given a value, return the matching BigQuery type of that value. Must be
      one of str/unicode/int/float/datetime/record, where record is a dict
      containing value which have matching BigQuery types.
  
      Parameters
      ----------
      o : object
          A Python object
      time_stamp_parser : function, optional
          Unary function taking a ``str`` and returning and ``bool`` that is
          True if the string represents a date
  
      Returns
      -------
      Union[str, None]
          Name of the corresponding BigQuery type for `o`, or None if no type
          could be found
  
      Examples
      --------
      >>> bigquery_type("abc")
      "string"
      >>> bigquery_type(123)
      "integer"
      """
  
      t = type(o)
      if t in six.integer_types:
          return "integer"
      elif (t == six.binary_type and six.PY2) or t == six.text_type:
          if timestamp_parser and timestamp_parser(o):
              return "timestamp"
          else:
              return "string"
      elif t == float:
          return "float"
      elif t == bool:
          return "boolean"
      elif t == dict:
          return "record"
      elif t == datetime:
          return "timestamp"
      else:
          return None