diff --git a/modules/argumentparser.py b/modules/argumentparser.py index 18f8655..6db4e00 100644 --- a/modules/argumentparser.py +++ b/modules/argumentparser.py @@ -2,7 +2,14 @@ from dataclasses import dataclass from typing import List, Optional import os import argparse -from rich_argparse import RichHelpFormatter, HelpPreviewAction + +try: + from rich_argparse import RichHelpFormatter, HelpPreviewAction + + RICH = True +except ModuleNotFoundError: + pass + from modules.logger import logger @@ -100,7 +107,10 @@ def parse_arguments(version: str) -> Args: An instance of the Args class containing the parsed arguments. """ # fmt: off - parser = argparse.ArgumentParser(description="Generate HTML files for a static image hosting website.", formatter_class=RichHelpFormatter) + if RICH: + parser = argparse.ArgumentParser(description="Generate HTML files for a static image hosting website.", formatter_class=RichHelpFormatter) + else: + parser = argparse.ArgumentParser(description="Generate HTML files for a static image hosting website.") parser.add_argument("-a", "--author-name", help="Name of the author of the images.", default=DEFAULT_AUTHOR, type=str, dest="author_name", metavar="AUTHOR") parser.add_argument("-e", "--file-extensions", help="File extensions to include (can be specified multiple times).", action="append", dest="file_extensions", metavar="EXTENSION") parser.add_argument("-l", "--license-type", help="Specify the license type for the images.", choices=["cc-zero", "cc-by", "cc-by-sa", "cc-by-nd", "cc-by-nc", "cc-by-nc-sa", "cc-by-nc-nd"], default=None, dest="license_type", metavar="LICENSE") @@ -110,7 +120,8 @@ def parse_arguments(version: str) -> Args: parser.add_argument("-t", "--site-title", help="Title of the image hosting site.", required=True, type=str, dest="site_title", metavar="TITLE") parser.add_argument("-w", "--web-root-url", help="Base URL of the web root for the image hosting site.", required=True, type=str, dest="web_root_url", metavar="URL") parser.add_argument("--exclude-folder", help="Folders to exclude from processing, globs supported (can be specified multiple times).", action="append", dest="exclude_folders", metavar="FOLDER") - parser.add_argument("--generate-help-preview", action=HelpPreviewAction, path="help.svg", ) + if RICH: + parser.add_argument("--generate-help-preview", action=HelpPreviewAction, path="help.svg", ) parser.add_argument("--ignore-other-files", help="Ignore files that do not match the specified extensions.", action="store_true", default=False, dest="ignore_other_files") parser.add_argument("--regenerate-thumbnails", help="Regenerate thumbnails even if they already exist.", action="store_true", default=False, dest="regenerate_thumbnails") parser.add_argument("--reread-metadata", help="Reread image metadata", action="store_true", default=False, dest="reread_metadata")