@property<EOL><INDENT>def per_installer_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 inst_name, inst_data in data['<STR_LIT>'].items():<EOL><INDENT>for inst_ver, count in inst_data.items():<EOL><INDENT>k = self._compound_column_value(<EOL>inst_name,<EOL>self._shorten_version(inst_ver)<EOL>)<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 installer name and version.

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