def count_by_product_through_time(self, period, **query):
    "\n        Perform a search, returning counts for each product grouped in time slices\n        of the given period.\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: __generator[(datacube.model.DatasetType, list[(datetime.datetime, datetime.datetime), int)]]\n        "
    return self._do_time_count(period, query)
Perform a search, returning counts for each product grouped in time slices
of the given period.

: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: __generator[(datacube.model.DatasetType, list[(datetime.datetime, datetime.datetime), int)]]
def count_by_product_through_time(self, period, **query):
    "\n        Perform a search, returning counts for each product grouped in time slices\n        of the given period.\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: __generator[(datacube.model.DatasetType, list[(datetime.datetime, datetime.datetime), int)]]\n        "
    return self._do_time_count(period, query)