@property<EOL><INDENT>def per_distro_data(self):<DEDENT>
ret = {}<EOL>for cache_date in self.cache_dates:<EOL><INDENT>data = self._cache_get(cache_date)<EOL>ret[cache_date] = {}<EOL>for distro_name, distro_data in data['<STR_LIT>'].items():<EOL><INDENT>if distro_name.lower() == '<STR_LIT>':<EOL><INDENT>distro_name = '<STR_LIT>'<EOL><DEDENT>for distro_ver, count in distro_data.items():<EOL><INDENT>ver = self._shorten_version(distro_ver, num_components=<NUM_LIT:1>)<EOL>if distro_name.lower() == '<STR_LIT>':<EOL><INDENT>ver = self._shorten_version(distro_ver,<EOL>num_components=<NUM_LIT:2>)<EOL><DEDENT>k = self._compound_column_value(distro_name, ver)<EOL>ret[cache_date][k] = count<EOL><DEDENT><DEDENT>if len(ret[cache_date]) == <NUM_LIT:0>:<EOL><INDENT>ret[cache_date]['<STR_LIT>'] = <NUM_LIT:0><EOL><DEDENT><DEDENT>return ret<EOL>
Return download data by distro name and version.

:return: dict of cache data; keys are datetime objects, values are
  dict of distro name/version (str) to count (int).
:rtype: dict