(
self, spider: Spider
)
| 81 | self.stats.set_value("items_per_minute", ipm_final) |
| 82 | |
| 83 | def calculate_final_stats( |
| 84 | self, spider: Spider |
| 85 | ) -> tuple[None, None] | tuple[float, float]: |
| 86 | start_time = self.stats.get_value("start_time") |
| 87 | finish_time = self.stats.get_value("finish_time") |
| 88 | |
| 89 | if not start_time or not finish_time: |
| 90 | return None, None |
| 91 | |
| 92 | mins_elapsed = (finish_time - start_time).seconds / 60 |
| 93 | |
| 94 | if mins_elapsed == 0: |
| 95 | return None, None |
| 96 | |
| 97 | items = self.stats.get_value("item_scraped_count", 0) |
| 98 | pages = self.stats.get_value("response_received_count", 0) |
| 99 | |
| 100 | return (pages / mins_elapsed), (items / mins_elapsed) |
no test coverage detected