stats
Timing statistics collection for Snakemake workflows.
This module collects and aggregates timing statistics from metadata files for use in time estimation.
Classes¶
Functions¶
collect_rule_timing_stats ¶
collect_rule_timing_stats(metadata_dir: Path, progress_callback: ProgressCallback | None = None) -> dict[str, RuleTimingStats]
Collect historical timing statistics per rule from metadata.
Aggregates all completed job timings by rule name, sorted chronologically by end time. Includes timestamps for time-based weighted estimation. Input sizes are included when available from job metadata.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
metadata_dir
|
Path
|
Path to .snakemake/metadata/ directory. |
required |
progress_callback
|
ProgressCallback | None
|
Optional callback(current, total) for progress reporting. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, RuleTimingStats]
|
Dictionary mapping rule names to their timing statistics. |
Source code in snakesee/parser/stats.py
collect_wildcard_timing_stats ¶
collect_wildcard_timing_stats(metadata_dir: Path, progress_callback: ProgressCallback | None = None) -> dict[str, dict[str, WildcardTimingStats]]
Collect timing statistics per rule, conditioned on wildcards.
Groups execution times by (rule, wildcard_key, wildcard_value) for rules that have wildcards in their metadata.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
metadata_dir
|
Path
|
Path to .snakemake/metadata/ directory. |
required |
progress_callback
|
ProgressCallback | None
|
Optional callback(current, total) for progress reporting. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, dict[str, WildcardTimingStats]]
|
Nested dictionary: rule -> wildcard_key -> WildcardTimingStats |