import click import importlib dump_listings_module = importlib.import_module('1_dump_listings') dump_detail_module = importlib.import_module('2_dump_detail') dump_images_module = importlib.import_module('3_dump_images') detect_floorplan_module = importlib.import_module('4_detect_floorplan') routing_module = importlib.import_module('5_routing') steps_to_handlers = { 'dump_listings': dump_listings_module.dump_listings, 'dump_detail': dump_detail_module.dump_detail, 'dump_images': dump_images_module.dump_images, 'detect_floorplan': detect_floorplan_module.detect_floorplan, 'routing': routing_module.calculate_route, } @click.command() @click.option( '--step', default=[], help='Scraping step to run', multiple=True, type=click.Choice(steps_to_handlers.keys()) ) def main(step: list[str]): click.echo(f'Running steps: {step}') for s in step: click.echo(f'Calling handler for step: {s}') steps_to_handlers[s]() if __name__ == '__main__': main()