From d4567da23c3ff0939a75a7025fe5c633a9be7ce1 Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Thu, 30 Sep 2021 09:35:17 +0000 Subject: [PATCH] Improve list of scrapers on --help output Don't list all scrapers in the usage line, and provide a sorted readable list instead. --- snscrape/_cli.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/snscrape/_cli.py b/snscrape/_cli.py index 729fae0..b258dbd 100644 --- a/snscrape/_cli.py +++ b/snscrape/_cli.py @@ -212,14 +212,17 @@ def parse_args(): parser.add_argument('--since', type = parse_datetime_arg, metavar = 'DATETIME', help = 'Only return results newer than DATETIME') parser.add_argument('--progress', action = 'store_true', default = False, help = 'Report progress on stderr') - subparsers = parser.add_subparsers(dest = 'scraper', help = 'The scraper you want to use', required = True) + subparsers = parser.add_subparsers(dest = 'scraper', metavar = 'SCRAPER', title = 'scrapers', required = True) classes = snscrape.base.Scraper.__subclasses__() + scrapers = {} for cls in classes: if cls.name is not None: - subparser = subparsers.add_parser(cls.name, formatter_class = argparse.ArgumentDefaultsHelpFormatter) - cls.setup_parser(subparser) - subparser.set_defaults(cls = cls) + scrapers[cls.name] = cls classes.extend(cls.__subclasses__()) + for scraper, cls in sorted(scrapers.items()): + subparser = subparsers.add_parser(cls.name, help = '', formatter_class = argparse.ArgumentDefaultsHelpFormatter) + cls.setup_parser(subparser) + subparser.set_defaults(cls = cls) args = parser.parse_args()