segments detect: add --fresh flag to clear efforts before re-detecting

This commit is contained in:
Davide Scaini
2026-05-14 17:11:11 +02:00
parent 862226305a
commit c36b95e041
+7 -1
View File
@@ -24,7 +24,8 @@ def segments_group() -> None:
@click.option("--handle", required=True, help="User handle to run detection for") @click.option("--handle", required=True, help="User handle to run detection for")
@click.option("--activity-id", default=None, help="Limit to a single activity ID (optional)") @click.option("--activity-id", default=None, help="Limit to a single activity ID (optional)")
@click.option("--segment-id", default=None, help="Limit to a single segment ID (optional)") @click.option("--segment-id", default=None, help="Limit to a single segment ID (optional)")
def detect_cmd(data_dir: str, handle: str, activity_id: str | None, segment_id: str | None) -> None: @click.option("--fresh", is_flag=True, default=False, help="Clear existing efforts before detecting")
def detect_cmd(data_dir: str, handle: str, activity_id: str | None, segment_id: str | None, fresh: bool) -> None:
"""Retroactively detect segment efforts for stored activities. """Retroactively detect segment efforts for stored activities.
Walks every activity with GPS data, runs the detection algorithm against Walks every activity with GPS data, runs the detection algorithm against
@@ -55,6 +56,11 @@ def detect_cmd(data_dir: str, handle: str, activity_id: str | None, segment_id:
click.echo("No segments defined.", err=True) click.echo("No segments defined.", err=True)
sys.exit(0) sys.exit(0)
if fresh:
for seg in segments:
_store.save_efforts(dd, handle, seg.id, [])
click.echo(f"Cleared existing efforts for {len(segments)} segment(s).")
# Choose which activities to process. # Choose which activities to process.
if activity_id: if activity_id:
detail_files = [acts_dir / f"{activity_id}.json"] detail_files = [acts_dir / f"{activity_id}.json"]