Get a Point conversion of this aggregation.

        This method creates a :class: `opencensus.metrics.export.point.Point`
        with a :class: `opencensus.metrics.export.value.ValueDistribution`
        value, and creates buckets and exemplars for that distribution from the
        appropriate classes in the `metrics` package. If the distribution
        doesn't have a histogram (i.e. `bounds` is empty) the converted point's
        `buckets` attribute will be null.

        :type timestamp: :class: `datetime.datetime`
        :param timestamp: The time to report the point as having been recorded.

        :rtype: :class: `opencensus.metrics.export.point.Point`
        :return: a :class: `opencensus.metrics.export.value.ValueDistribution`
        -valued Point.

def to_point(self, timestamp):
        """Get a Point conversion of this aggregation.

        This method creates a :class: `opencensus.metrics.export.point.Point`
        with a :class: `opencensus.metrics.export.value.ValueDistribution`
        value, and creates buckets and exemplars for that distribution from the
        appropriate classes in the `metrics` package. If the distribution
        doesn't have a histogram (i.e. `bounds` is empty) the converted point's
        `buckets` attribute will be null.

        :type timestamp: :class: `datetime.datetime`
        :param timestamp: The time to report the point as having been recorded.

        :rtype: :class: `opencensus.metrics.export.point.Point`
        :return: a :class: `opencensus.metrics.export.value.ValueDistribution`
        -valued Point.
        """
        if self.bounds:
            bucket_options = value.BucketOptions(value.Explicit(self.bounds))
            buckets = [None] * len(self.counts_per_bucket)
            for ii, count in enumerate(self.counts_per_bucket):
                stat_ex = self.exemplars.get(ii) if self.exemplars else None
                if stat_ex is not None:
                    metric_ex = value.Exemplar(stat_ex.value,
                                               stat_ex.timestamp,
                                               copy.copy(stat_ex.attachments))
                    buckets[ii] = value.Bucket(count, metric_ex)
                else:
                    buckets[ii] = value.Bucket(count)

        else:
            bucket_options = value.BucketOptions()
            buckets = None
        return point.Point(
            value.ValueDistribution(
                count=self.count_data,
                sum_=self.sum,
                sum_of_squared_deviation=self.sum_of_sqd_deviations,
                bucket_options=bucket_options,
                buckets=buckets
            ),
            timestamp
        )