def METHOD_NAME(aggregator: GTFSFeedAggregator, dry_run: bool = False, progress: bool = False):
    gen = IMPLEMENTATIONS[aggregator]
    kwargs = {}
    if progress and "progress" in inspect.signature(gen).parameters.keys():
        kwargs["progress"] = progress
    start = pendulum.now()
    records = list(gen(**kwargs))
    end = pendulum.now()
    typer.secho(
        f"took {humanize.time.naturaldelta(end - start)} to fetch {len(records)} records"
    )
    scrape_result = GTFSFeedAggregatorScrape(
        filename="results.jsonl",
        aggregator_enum=aggregator,
        ts=start,
        end=end,
        records=records,
    )
    if dry_run:
        typer.secho(
            f"dry run; skipping upload of {humanize.naturalsize(len(scrape_result.content))}"
        )
    else:
        typer.secho(
            f"saving {len(records)} records to {scrape_result.path}",
            fg=typer.colors.GREEN,
        )
        scrape_result.save(get_fs())