MCPcopy Create free account
hub / github.com/apify/crawlee-python / calculate

Method calculate

src/crawlee/statistics/_statistics.py:258–275  ·  view source on GitHub ↗

Calculate the current statistics.

(self)

Source from the content-addressed store, hash-verified

256 del self._requests_in_progress[request_id_or_key]
257
258 def calculate(self) -> FinalStatistics:
259 """Calculate the current statistics."""
260 total_minutes = self.state.crawler_runtime.total_seconds() / 60
261 state = self._state.current_value
262 serialized_state = state.model_dump(by_alias=False)
263
264 return FinalStatistics(
265 request_avg_failed_duration=state.request_avg_failed_duration,
266 request_avg_finished_duration=state.request_avg_finished_duration,
267 requests_finished_per_minute=round(state.requests_finished / total_minutes) if total_minutes else 0,
268 requests_failed_per_minute=math.floor(state.requests_failed / total_minutes) if total_minutes else 0,
269 request_total_duration=state.request_total_finished_duration + state.request_total_failed_duration,
270 requests_total=state.requests_failed + state.requests_finished,
271 crawler_runtime=state.crawler_runtime,
272 requests_finished=state.requests_finished,
273 requests_failed=state.requests_failed,
274 retry_histogram=serialized_state['request_retry_histogram'],
275 )
276
277 async def reset(self) -> None:
278 """Reset the statistics to their defaults and remove any persistent state."""

Callers 3

_logMethod · 0.95
runMethod · 0.80

Calls 1

FinalStatisticsClass · 0.90

Tested by 1