[docs]@abstractmethoddefgenerate_report(self,data:list[dict[str,any]])->list[dict[str,any]]:""" Generate data with used strategy. Args: data (list[dict[str, any]]): data. Returns: list[dict[str, any]] """raiseNotImplementedError
[docs]defgenerate_report(self,data:list[dict[str,any]])->list[dict[str,any]]:"""Generate data report by average time strategy."""url_stats={}foritemindata:url=item["url"]response_time=item["response_time"]ifurlnotinurl_stats:url_stats[url]=[]url_stats[url].append(response_time)report_data=[{"handler":handler,"total":len(url_stats[handler]),"avg_response_time":round(sum(url_stats[handler])/len(url_stats[handler]),3),}forhandlerinurl_stats]returnsorted(report_data,key=lambdax:x["total"],reverse=True)
[docs]defgenerate_report(self,data:list[dict[str,any]])->list[dict[str,any]]:"""Generate data report by user agent."""stats={}foritemindata:user_agent=item["http_user_agent"]stats[user_agent]=stats.get(user_agent,0)+1report_data=[{"user_agent":user_agent,"total":stats[user_agent]}foruser_agentinstats]returnsorted(report_data,key=lambdax:x["total"],reverse=True)