def count_product_through_time(self, period, **query):
    "\n        Perform a search, returning counts for a single product grouped in time slices\n        of the given period.\n\n        Will raise an error if the search terms match more than one product.\n\n        :param dict[str,str|float|datacube.model.Range] query:\n        :param str period: Time range for each slice: '1 month', '1 day' etc.\n        :returns: For each matching product type, a list of time ranges and their count.\n        :rtype: list[(str, list[(datetime.datetime, datetime.datetime), int)]]\n        "
    return next(self._do_time_count(period, query, ensure_single=True))[1]
Perform a search, returning counts for a single product grouped in time slices
of the given period.

Will raise an error if the search terms match more than one product.

:param dict[str,str|float|datacube.model.Range] query:
:param str period: Time range for each slice: '1 month', '1 day' etc.
:returns: For each matching product type, a list of time ranges and their count.
:rtype: list[(str, list[(datetime.datetime, datetime.datetime), int)]]
def count_product_through_time(self, period, **query):
    "\n        Perform a search, returning counts for a single product grouped in time slices\n        of the given period.\n\n        Will raise an error if the search terms match more than one product.\n\n        :param dict[str,str|float|datacube.model.Range] query:\n        :param str period: Time range for each slice: '1 month', '1 day' etc.\n        :returns: For each matching product type, a list of time ranges and their count.\n        :rtype: list[(str, list[(datetime.datetime, datetime.datetime), int)]]\n        "
    return next(self._do_time_count(period, query, ensure_single=True))[1]