code: def _parse_column_statistics(cs, column_statistics_blob):
      # Initialize stats to return and parse stats blob
      column_statistics = {}
      cs.ParseFromString(column_statistics_blob)
  
      # Load from parsed stats blob into stats to return
      if cs.HasField("numberOfValues"):
          column_statistics["number_of_values"] = cs.numberOfValues
      if cs.HasField("hasNull"):
          column_statistics["has_null"] = cs.hasNull
  
      if cs.HasField("intStatistics"):
          column_statistics["minimum"] = (
              cs.intStatistics.minimum
              if cs.intStatistics.HasField("minimum")
              else None
          )
          column_statistics["maximum"] = (
              cs.intStatistics.maximum
              if cs.intStatistics.HasField("maximum")
              else None
          )
          column_statistics["sum"] = (
              cs.intStatistics.sum
              if cs.intStatistics.HasField("sum")
              else None
          )
  
      elif cs.HasField("doubleStatistics"):
          column_statistics["minimum"] = (
              cs.doubleStatistics.minimum
              if cs.doubleStatistics.HasField("minimum")
              else None
          )
          column_statistics["maximum"] = (
              cs.doubleStatistics.maximum
              if cs.doubleStatistics.HasField("maximum")
              else None
          )
          column_statistics["sum"] = (
              cs.doubleStatistics.sum
              if cs.doubleStatistics.HasField("sum")
              else None
          )
  
      elif cs.HasField("stringStatistics"):
          column_statistics["minimum"] = (
              cs.stringStatistics.minimum
              if cs.stringStatistics.HasField("minimum")
              else None
          )
          column_statistics["maximum"] = (
              cs.stringStatistics.maximum
              if cs.stringStatistics.HasField("maximum")
              else None
          )
          column_statistics["sum"] = cs.stringStatistics.sum
  
      elif cs.HasField("bucketStatistics"):
          column_statistics["true_count"] = cs.bucketStatistics.count[0]
          column_statistics["false_count"] = (
              column_statistics["number_of_values"]
              - column_statistics["true_count"]
          )
  
      elif cs.HasField("decimalStatistics"):
          column_statistics["minimum"] = (
              cs.decimalStatistics.minimum
              if cs.decimalStatistics.HasField("minimum")
              else None
          )
          column_statistics["maximum"] = (
              cs.decimalStatistics.maximum
              if cs.decimalStatistics.HasField("maximum")
              else None
          )
          column_statistics["sum"] = cs.decimalStatistics.sum
  
      elif cs.HasField("dateStatistics"):
          column_statistics["minimum"] = (
              datetime.datetime.fromtimestamp(
                  datetime.timedelta(
                      cs.dateStatistics.minimum
                  ).total_seconds(),
                  datetime.timezone.utc,
              )
              if cs.dateStatistics.HasField("minimum")
              else None
          )
          column_statistics["maximum"] = (
              datetime.datetime.fromtimestamp(
                  datetime.timedelta(
                      cs.dateStatistics.maximum
                  ).total_seconds(),
                  datetime.timezone.utc,
              )
              if cs.dateStatistics.HasField("maximum")
              else None
          )
  
      elif cs.HasField("timestampStatistics"):
          # Before ORC-135, the local timezone offset was included and they were
          # stored as minimum and maximum. After ORC-135, the timestamp is
          # adjusted to UTC before being converted to milliseconds and stored
          # in minimumUtc and maximumUtc.
          # TODO: Support minimum and maximum by reading writer's local timezone
          if cs.timestampStatistics.HasField(
              "minimumUtc"
          ) and cs.timestampStatistics.HasField("maximumUtc"):
              column_statistics[
                  "minimum"
              ] = datetime.datetime.fromtimestamp(
                  cs.timestampStatistics.minimumUtc / 1000,
                  datetime.timezone.utc,
              )
              column_statistics[
                  "maximum"
              ] = datetime.datetime.fromtimestamp(
                  cs.timestampStatistics.maximumUtc / 1000,
                  datetime.timezone.utc,
              )
  
      elif cs.HasField("binaryStatistics"):
          column_statistics["sum"] = cs.binaryStatistics.sum
  
      return column_statistics
  
file_path: cudf/python/cudf/cudf/io/orc.py
imports: import datetime
  import warnings
  import pyarrow
  from fsspec.utils import stringify_path
  import cudf
  from cudf._lib import orc
  from cudf.api.types import is_list_like
  from cudf.utils import ioutils
  from cudf.utils.metadata import orc_column_statistics_pb2
label_desc: Use image node_id 2 for calling a global function with example usage: _parse_column_statistics(cs, column_statistics_blob) and returns: column_statistics