From c80af50b3c2b007e7ceae6b476aacfb366e5e97f Mon Sep 17 00:00:00 2001 From: BuriedInCode <6057651+Buried-In-Code@users.noreply.github.com> Date: Sun, 11 May 2025 12:51:49 +1200 Subject: [PATCH 1/5] Use enums with a default (unknown or other) instead of ValueError Use Self --- perdoo/metadata/comic_info.py | 32 ++++++++++++++++++++++---------- perdoo/metadata/metron_info.py | 19 ++++++++++++++----- perdoo/settings.py | 7 ++++++- uv.lock | 2 +- 4 files changed, 43 insertions(+), 17 deletions(-) diff --git a/perdoo/metadata/comic_info.py b/perdoo/metadata/comic_info.py index 4f4a99d..2ec5684 100644 --- a/perdoo/metadata/comic_info.py +++ b/perdoo/metadata/comic_info.py @@ -1,10 +1,10 @@ __all__ = ["AgeRating", "ComicInfo", "Manga", "Page", "PageType", "YesNo"] +import logging from collections.abc import Callable from datetime import date from enum import Enum from pathlib import Path -from typing import Optional from natsort import humansorted, ns from PIL import Image @@ -14,6 +14,14 @@ from perdoo.metadata._base import PascalModel from perdoo.settings import Naming +try: + from typing import Self # Python >= 3.11 +except ImportError: + from typing_extensions import Self # Python < 3.11 + + +LOGGER = logging.getLogger(__name__) + def str_to_list(value: str | None) -> list[str]: if not value: @@ -33,11 +41,12 @@ class YesNo(Enum): YES = "Yes" @staticmethod - def load(value: str) -> "YesNo": + def load(value: str) -> Self: for entry in YesNo: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry - raise ValueError(f"'{value}' isn't a valid YesNo") + LOGGER.warning("'%s' isn't a valid YesNo", value) + return YesNo.UNKNOWN def __str__(self) -> str: return self.value @@ -50,11 +59,12 @@ class Manga(Enum): YES_AND_RIGHT_TO_LEFT = "YesAndRightToLeft" @staticmethod - def load(value: str) -> "Manga": + def load(value: str) -> Self: for entry in Manga: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry - raise ValueError(f"'{value}' isn't a valid Manga") + LOGGER.warning("'%s' isn't a valid Manga", value) + return Manga.UNKNOWN def __str__(self) -> str: return self.value @@ -78,11 +88,12 @@ class AgeRating(Enum): X18 = "X18+" @staticmethod - def load(value: str) -> "AgeRating": + def load(value: str) -> Self: for entry in AgeRating: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry - raise ValueError(f"'{value}' isn't a valid AgeRating") + LOGGER.warning("'%s' isn't a valid AgeRating", value) + return AgeRating.UNKNOWN def __str__(self) -> str: return self.value @@ -102,11 +113,12 @@ class PageType(Enum): DELETED = "Deleted" @staticmethod - def load(value: str) -> "PageType": + def load(value: str) -> Self: for entry in PageType: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry - raise ValueError(f"'{value}' isn't a valid PageType") + LOGGER.warning("'%s' isn't a valid PageType", value) + return PageType.OTHER def __str__(self) -> str: return self.value @@ -136,7 +148,7 @@ def __hash__(self) -> int: return hash((type(self), self.image)) @staticmethod - def from_path(file: Path, index: int, is_final_page: bool, page: Optional["Page"]) -> "Page": + def from_path(file: Path, index: int, is_final_page: bool, page: Self | None) -> Self: if page: page_type = page.type elif index == 0: diff --git a/perdoo/metadata/metron_info.py b/perdoo/metadata/metron_info.py index 88ac265..8b12760 100644 --- a/perdoo/metadata/metron_info.py +++ b/perdoo/metadata/metron_info.py @@ -17,6 +17,7 @@ "Url", ] +import logging from collections.abc import Callable from datetime import date, datetime from decimal import Decimal @@ -29,6 +30,12 @@ from perdoo.metadata._base import PascalModel from perdoo.settings import Naming +try: + from typing import Self # Python >= 3.11 +except ImportError: + from typing_extensions import Self # Python < 3.11 + +LOGGER = logging.getLogger(__name__) T = TypeVar("T") @@ -42,11 +49,12 @@ class AgeRating(Enum): ADULT = "Adult" @staticmethod - def load(value: str) -> "AgeRating": + def load(value: str) -> Self: for entry in AgeRating: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry - raise ValueError(f"'{value}' isn't a valid AgeRating") + LOGGER.warning("'%s' isn't a valid AgeRating", value) + return AgeRating.UNKNOWN def __str__(self) -> str: return self.value @@ -134,11 +142,12 @@ class Role(Enum): OTHER = "Other" @staticmethod - def load(value: str) -> "Role": + def load(value: str) -> Self: for entry in Role: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry - raise ValueError(f"'{value}' isn't a valid Role") + LOGGER.warning("'%s' isn't a valid Role", value) + return Role.OTHER def __str__(self) -> str: return self.value @@ -182,7 +191,7 @@ class InformationSource(Enum): LEAGUE_OF_COMIC_GEEKS = "League of Comic Geeks" @staticmethod - def load(value: str) -> "InformationSource": + def load(value: str) -> Self: for entry in InformationSource: if entry.value.replace(" ", "").casefold() == value.replace(" ", "").casefold(): return entry diff --git a/perdoo/settings.py b/perdoo/settings.py index 33f8a74..41e009e 100644 --- a/perdoo/settings.py +++ b/perdoo/settings.py @@ -24,6 +24,11 @@ from perdoo.console import CONSOLE from perdoo.utils import blank_is_none, flatten_dict +try: + from typing import Self # Python >= 3.11 +except ImportError: + from typing_extensions import Self # Python < 3.11 + try: import tomllib as tomlreader # Python >= 3.11 except ModuleNotFoundError: @@ -140,7 +145,7 @@ class Settings(SettingsModel): services: Services = Services() @classmethod - def load(cls) -> "Settings": + def load(cls) -> Self: if not cls._file.exists(): cls().save() with cls._file.open("rb") as stream: diff --git a/uv.lock b/uv.lock index c9a564e..41f8144 100644 --- a/uv.lock +++ b/uv.lock @@ -672,7 +672,7 @@ dev = [{ name = "pre-commit", specifier = ">=4.2.0" }] tests = [ { name = "pytest", specifier = ">=8.3.5" }, { name = "pytest-cov", specifier = ">=6.1.1" }, - { name = "tox", specifier = ">=4.25" }, + { name = "tox", specifier = ">=4.25.0" }, { name = "tox-uv", specifier = ">=1.25.0" }, ] From 2574787de886fdbb7917253495ed72788d04f1f9 Mon Sep 17 00:00:00 2001 From: BuriedInCode <6057651+Buried-In-Code@users.noreply.github.com> Date: Sun, 11 May 2025 23:40:24 +1200 Subject: [PATCH 2/5] Tidy up exception handling --- perdoo/__init__.py | 7 +++++- perdoo/__main__.py | 2 +- perdoo/metadata/__init__.py | 8 +++--- perdoo/services/comicvine.py | 42 ++++++++++++++++--------------- perdoo/services/marvel.py | 49 +++++++++++++++++++++++++++--------- perdoo/services/metron.py | 46 +++++++++++++++++---------------- pyproject.toml | 3 ++- 7 files changed, 96 insertions(+), 61 deletions(-) diff --git a/perdoo/__init__.py b/perdoo/__init__.py index f444c14..ee5efc5 100644 --- a/perdoo/__init__.py +++ b/perdoo/__init__.py @@ -10,6 +10,7 @@ import logging import os +from functools import cache from pathlib import Path from rich.logging import RichHandler @@ -18,6 +19,7 @@ from perdoo.console import CONSOLE +@cache def get_cache_root() -> Path: cache_home = os.getenv("XDG_CACHE_HOME", default=str(Path.home() / ".cache")) folder = Path(cache_home).resolve() / "perdoo" @@ -25,6 +27,7 @@ def get_cache_root() -> Path: return folder +@cache def get_config_root() -> Path: config_home = os.getenv("XDG_CONFIG_HOME", default=str(Path.home() / ".config")) folder = Path(config_home).resolve() / "perdoo" @@ -32,6 +35,7 @@ def get_config_root() -> Path: return folder +@cache def get_data_root() -> Path: data_home = os.getenv("XDG_DATA_HOME", default=str(Path.home() / ".local" / "share")) folder = Path(data_home).resolve() / "perdoo" @@ -39,6 +43,7 @@ def get_data_root() -> Path: return folder +@cache def get_state_root() -> Path: data_home = os.getenv("XDG_STATE_HOME", default=str(Path.home() / ".local" / "state")) folder = Path(data_home).resolve() / "perdoo" @@ -47,7 +52,7 @@ def get_state_root() -> Path: def setup_logging(debug: bool = False) -> None: - install(show_locals=True, max_frames=6, console=CONSOLE) + install(show_locals=debug, max_frames=3, console=CONSOLE) console_handler = RichHandler( rich_tracebacks=True, diff --git a/perdoo/__main__.py b/perdoo/__main__.py index 2eac4e8..5b282e3 100644 --- a/perdoo/__main__.py +++ b/perdoo/__main__.py @@ -201,7 +201,7 @@ def run( try: entries.append(get_archive(file)) except NotImplementedError as nie: # noqa: PERF203 - LOGGER.error("%s, Skipping", nie) # noqa: TRY400 + LOGGER.error("%s, Skipping", nie) for index, entry in enumerate(entries): CONSOLE.rule( diff --git a/perdoo/metadata/__init__.py b/perdoo/metadata/__init__.py index 63856c8..170c011 100644 --- a/perdoo/metadata/__init__.py +++ b/perdoo/metadata/__init__.py @@ -32,9 +32,9 @@ def read_meta_file(cls: type[PascalModel], filename: str) -> PascalModel | None: metron_info = cast(MetronInfo, metron_info) except ValidationError as ve: if debug: - LOGGER.error("'%s' contains an invalid MetronInfo file: %s", archive.path.name, ve) # noqa: TRY400 + LOGGER.error("'%s' contains an invalid MetronInfo file: %s", archive.path.name, ve) else: - LOGGER.error("'%s' contains an invalid MetronInfo file", archive.path.name) # noqa: TRY400 + LOGGER.error("'%s' contains an invalid MetronInfo file", archive.path.name) comic_info = None try: comic_info = read_meta_file(cls=ComicInfo, filename="ComicInfo.xml") or read_meta_file( @@ -44,7 +44,7 @@ def read_meta_file(cls: type[PascalModel], filename: str) -> PascalModel | None: comic_info = cast(ComicInfo, comic_info) except ValidationError as ve: if debug: - LOGGER.error("'%s' contains an invalid ComicInfo file: %s", archive.path.name, ve) # noqa: TRY400 + LOGGER.error("'%s' contains an invalid ComicInfo file: %s", archive.path.name, ve) else: - LOGGER.error("'%s' contains an invalid ComicInfo file", archive.path.name) # noqa: TRY400 + LOGGER.error("'%s' contains an invalid ComicInfo file", archive.path.name) return metron_info, comic_info diff --git a/perdoo/services/comicvine.py b/perdoo/services/comicvine.py index c0d4e28..f94e194 100644 --- a/perdoo/services/comicvine.py +++ b/perdoo/services/comicvine.py @@ -68,13 +68,11 @@ def _search_series(self, name: str | None, volume: int | None, year: int | None) return self._search_series(name=name, volume=volume, year=None) if Confirm.ask("Search Again", console=CONSOLE): return self._search_series(name=None, volume=None, year=None) - return None - except ServiceError: - LOGGER.exception("") - return None + except ServiceError as err: + LOGGER.error(err) except JSONDecodeError: - LOGGER.error("Unable to get response from Comicvine") # noqa: TRY400 - return None + LOGGER.error("Unable to get response from Comicvine") + return None def fetch_series(self, search: SeriesSearch) -> Volume | None: series_id = search.comicvine or self._search_series( @@ -86,12 +84,15 @@ def fetch_series(self, search: SeriesSearch) -> Volume | None: series = self.session.get_volume(volume_id=series_id) search.comicvine = series_id return series - except ServiceError: - LOGGER.exception("") - return None + except ServiceError as err: + LOGGER.error(err) except JSONDecodeError: - LOGGER.error("Unable to get response from Comicvine") # noqa: TRY400 + LOGGER.error("Unable to get response from Comicvine") return None + if search.comicvine: + search.comicvine = None + return self.fetch_series(search=search) + return None def _search_issue(self, series_id: int, number: str | None) -> int | None: try: @@ -121,13 +122,11 @@ def _search_issue(self, series_id: int, number: str | None) -> int | None: if number: LOGGER.info("Searching again without the IssueNumber") return self._search_issue(series_id=series_id, number=None) - return None - except ServiceError: - LOGGER.exception("") - return None + except ServiceError as err: + LOGGER.error(err) except JSONDecodeError: - LOGGER.error("Unable to get response from Comicvine") # noqa: TRY400 - return None + LOGGER.error("Unable to get response from Comicvine") + return None def fetch_issue(self, series_id: int, search: IssueSearch) -> Issue | None: issue_id = search.comicvine or self._search_issue(series_id=series_id, number=search.number) @@ -137,12 +136,15 @@ def fetch_issue(self, series_id: int, search: IssueSearch) -> Issue | None: issue = self.session.get_issue(issue_id=issue_id) search.comicvine = issue_id return issue - except ServiceError: - LOGGER.exception("") - return None + except ServiceError as err: + LOGGER.error(err) except JSONDecodeError: - LOGGER.error("Unable to get response from Comicvine") # noqa: TRY400 + LOGGER.error("Unable to get response from Comicvine") return None + if search.comicvine: + search.comicvine = None + return self.fetch_series(series_id=series_id, search=search) + return None def _process_metron_info(self, series: Volume, issue: Issue) -> MetronInfo | None: from perdoo.metadata.metron_info import ( diff --git a/perdoo/services/marvel.py b/perdoo/services/marvel.py index a64d821..8017f0d 100644 --- a/perdoo/services/marvel.py +++ b/perdoo/services/marvel.py @@ -9,6 +9,7 @@ from esak.session import Session as Esak from esak.sqlite_cache import SqliteCache from natsort import humansorted, ns +from requests.exceptions import ConnectionError, HTTPError # noqa: A004 from rich.prompt import Confirm, Prompt from perdoo import get_cache_root @@ -59,10 +60,13 @@ def _search_series(self, name: str | None, volume: int | None, year: int | None) return self._search_series(name=name, volume=volume, year=None) if Confirm.ask("Search Again", console=CONSOLE): return self._search_series(name=None, volume=None, year=None) - return None - except ApiError: - LOGGER.exception("") - return None + except ConnectionError as err: + LOGGER.error(err) + except HTTPError as err: + LOGGER.error(err) + except ApiError as err: + LOGGER.error(err) + return None def fetch_series(self, search: SeriesSearch) -> Series | None: series_id = search.marvel or self._search_series( @@ -74,9 +78,18 @@ def fetch_series(self, search: SeriesSearch) -> Series | None: series = self.session.series(_id=series_id) search.marvel = series_id return series - except ApiError: - LOGGER.exception("") + except ConnectionError as err: + LOGGER.error(err) + return None + except HTTPError as err: + LOGGER.error(err) return None + except ApiError as err: + LOGGER.error(err) + if search.marvel: + search.marvel = None + return self.fetch_series(search=search) + return None def _search_issue(self, series_id: int, number: str | None) -> int | None: try: @@ -108,10 +121,13 @@ def _search_issue(self, series_id: int, number: str | None) -> int | None: if number: LOGGER.info("Searching again without the IssueNumber") return self._search_issue(series_id=series_id, number=None) - return None - except ApiError: - LOGGER.exception("") - return None + except ConnectionError as err: + LOGGER.error(err) + except HTTPError as err: + LOGGER.error(err) + except ApiError as err: + LOGGER.error(err) + return None def fetch_issue(self, series_id: int, search: IssueSearch) -> Comic | None: issue_id = search.marvel or self._search_issue(series_id=series_id, number=search.number) @@ -121,9 +137,18 @@ def fetch_issue(self, series_id: int, search: IssueSearch) -> Comic | None: issue = self.session.comic(_id=issue_id) search.marvel = issue_id return issue - except ApiError: - LOGGER.exception("") + except ConnectionError as err: + LOGGER.error(err) + return None + except HTTPError as err: + LOGGER.error(err) return None + except ApiError as err: + LOGGER.error(err) + if search.marvel: + search.marvel = None + return self.fetch_issue(series_id=series_id, search=search) + return None def _process_metron_info(self, series: Series, issue: Comic) -> MetronInfo | None: from perdoo.metadata.metron_info import ( diff --git a/perdoo/services/metron.py b/perdoo/services/metron.py index 5020673..386b701 100644 --- a/perdoo/services/metron.py +++ b/perdoo/services/metron.py @@ -34,10 +34,9 @@ def _search_series_by_comicvine(self, comicvine_id: int | None) -> int | None: series = self.session.series_list({"cv_id": comicvine_id}) if series and len(series) >= 1: return series[0].id - return None - except ApiError: - LOGGER.exception("") - return None + except ApiError as err: + LOGGER.error(err) + return None def _search_series(self, name: str | None, volume: int | None, year: int | None) -> int | None: name = name or Prompt.ask("Series Name", console=CONSOLE) @@ -83,10 +82,9 @@ def _search_series(self, name: str | None, volume: int | None, year: int | None) return self._search_series(name=name, volume=None, year=None) if Confirm.ask("Search Again", console=CONSOLE): return self._search_series(name=None, volume=None, year=None) - return None - except ApiError: - LOGGER.exception("") - return None + except ApiError as err: + LOGGER.error(err) + return None def fetch_series(self, search: SeriesSearch) -> Series | None: series_id = ( @@ -100,9 +98,12 @@ def fetch_series(self, search: SeriesSearch) -> Series | None: series = self.session.series(_id=series_id) search.metron = series_id return series - except ApiError: - LOGGER.exception("") - return None + except ApiError as err: + LOGGER.error(err) + if search.metron: + search.metron = None + return self.fetch_series(search=search) + return None def _search_issue_by_comicvine(self, comicvine_id: int | None) -> int | None: if not comicvine_id: @@ -111,10 +112,9 @@ def _search_issue_by_comicvine(self, comicvine_id: int | None) -> int | None: issues = self.session.issues_list({"cv_id": comicvine_id}) if issues and len(issues) >= 1: return issues[0].id - return None - except ApiError: - LOGGER.exception("") - return None + except ApiError as err: + LOGGER.error(err) + return None def _search_issue(self, series_id: int, number: str | None) -> int | None: try: @@ -144,10 +144,9 @@ def _search_issue(self, series_id: int, number: str | None) -> int | None: if number: LOGGER.info("Searching again without the Number") return self._search_issue(series_id=series_id, number=None) - return None - except ApiError: - LOGGER.exception("") - return None + except ApiError as err: + LOGGER.error(err) + return None def fetch_issue(self, series_id: int, search: IssueSearch) -> Issue | None: issue_id = ( @@ -161,9 +160,12 @@ def fetch_issue(self, series_id: int, search: IssueSearch) -> Issue | None: issue = self.session.issue(_id=issue_id) search.metron = issue_id return issue - except ApiError: - LOGGER.exception("") - return None + except ApiError as err: + LOGGER.error(err) + if search.metron: + search.metron = None + return self.fetch_issue(series_id=series_id, search=search) + return None def _process_metron_info(self, series: Series, issue: Issue) -> MetronInfo | None: from perdoo.metadata.metron_info import ( diff --git a/pyproject.toml b/pyproject.toml index f236ffc..03f18d9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -113,7 +113,8 @@ ignore = [ "PLW2901", "TCH", "TRY003", - "TRY300" + "TRY300", + "TRY400" ] select = ["ALL"] From c333ab019a44888fa38729930794fdaf2c075bfe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 11 May 2025 11:41:08 +0000 Subject: [PATCH 3/5] Generate new screengrabs with rich-codex --- docs/img/perdoo-archive-view.svg | 341 ++++++++++++++++++++++++---- docs/img/perdoo-commands.svg | 316 ++++++++++++++++++++++---- docs/img/perdoo-import.svg | 331 ++++++++++++++++++++------- docs/img/perdoo-settings-locate.svg | 328 +++++++++++++++++++++++--- docs/img/perdoo-settings-update.svg | 340 +++++++++++++++++++++++---- docs/img/perdoo-settings-view.svg | 328 +++++++++++++++++++++++--- 6 files changed, 1715 insertions(+), 269 deletions(-) diff --git a/docs/img/perdoo-archive-view.svg b/docs/img/perdoo-archive-view.svg index dcaa5f5..dc37e6d 100644 --- a/docs/img/perdoo-archive-view.svg +++ b/docs/img/perdoo-archive-view.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - -Usage: Perdoo archive view [OPTIONS] TARGET - - View the ComicInfo/MetronInfo inside a Comic archive.                           - -╭─ Arguments ──────────────────────────────────────────────────────────────────╮ -*    target      FILE  Comic to view details of. [required] -╰──────────────────────────────────────────────────────────────────────────────╯ -╭─ Options ────────────────────────────────────────────────────────────────────╮ ---hide-comic-info           Don't show the ComicInfo details.                 ---hide-metron-info          Don't show the MetronInfo details.                ---help                      Show this message and exit.                       -╰──────────────────────────────────────────────────────────────────────────────╯ - + + ╭─────────────────────Traceback (most recent call last)──────────────────────╮ +/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               + + 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  + 8 │   elif sys.argv[0].endswith(".exe"):                                   + 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   +❱ 10 │   sys.exit(app())                                                      +11  + +╭───────────────────── locals ──────────────────────╮ +app =<typer.main.Typer object at 0x7fccc85287d0> +sys =<module'sys'(built-in)> +╰───────────────────────────────────────────────────╯ + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:340 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:323 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1442 in __call__                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:740 in main                                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:195 in _main                                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1830 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1828 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1186 in make_context                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1197 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2416 in handle_parse_result                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2355 in process_value                                                    + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec +orators.py:539 in show_help                                                   + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:730 in get_help                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1064 in get_help                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:691 in format_help                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:560 in rich_format_help                                            + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:969 in get_usage                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1002 in format_usage                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1012 in collect_usage_pieces                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:3104 in get_usage_pieces                                                 +╰──────────────────────────────────────────────────────────────────────────────╯ +TypeError: TyperArgument.make_metavar() takes 1 positional argument but 2 were  +given diff --git a/docs/img/perdoo-commands.svg b/docs/img/perdoo-commands.svg index efcfb38..783e61e 100644 --- a/docs/img/perdoo-commands.svg +++ b/docs/img/perdoo-commands.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - -Usage: Perdoo [OPTIONS] COMMAND [ARGS]... - - CLI tool for managing comic collections and settings.                           - -╭─ Options ────────────────────────────────────────────────────────────────────╮ ---version                     Show the version and exit.                      ---install-completion          Install completion for the current shell.       ---show-completion             Show completion for the current shell, to copy  -                               it or customize the installation.               ---help                        Show this message and exit.                     -╰──────────────────────────────────────────────────────────────────────────────╯ -╭─ Commands ───────────────────────────────────────────────────────────────────╮ -import    Import comics into your collection using Perdoo.                   -archive   Commands for inspecting and managing comic archive metadata.       -settings  Commands for managing and configuring application settings.        -╰──────────────────────────────────────────────────────────────────────────────╯ - + + +Usage: Perdoo [OPTIONS] COMMAND [ARGS]... + + CLI tool for managing comic collections and settings.                           + + +╭─────────────────────Traceback (most recent call last)──────────────────────╮ +/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               + + 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  + 8 │   elif sys.argv[0].endswith(".exe"):                                   + 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   +❱ 10 │   sys.exit(app())                                                      +11  + +╭───────────────────── locals ──────────────────────╮ +app =<typer.main.Typer object at 0x7f48d4b6b750> +sys =<module'sys'(built-in)> +╰───────────────────────────────────────────────────╯ + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:340 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:323 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1442 in __call__                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:740 in main                                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:194 in _main                                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1186 in make_context                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1786 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1197 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2416 in handle_parse_result                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2355 in process_value                                                    + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec +orators.py:539 in show_help                                                   + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:730 in get_help                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1064 in get_help                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:754 in format_help                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:614 in rich_format_help                                            + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:373 in _print_options_panel                                        +╰──────────────────────────────────────────────────────────────────────────────╯ +TypeError: Parameter.make_metavar() missing 1 required positional argument:  +'ctx' diff --git a/docs/img/perdoo-import.svg b/docs/img/perdoo-import.svg index 55fadf3..3e08829 100644 --- a/docs/img/perdoo-import.svg +++ b/docs/img/perdoo-import.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - -Usage: Perdoo import [OPTIONS] TARGET - - Import comics into your collection using Perdoo.                                - -╭─ Arguments ──────────────────────────────────────────────────────────────────╮ -*    target      PATH  Import comics from the specified file/folder.          -[required]                                    -╰──────────────────────────────────────────────────────────────────────────────╯ -╭─ Options ────────────────────────────────────────────────────────────────────╮ ---skip-convert  Skip converting comics to the  -                                                configured format.             ---sync-s[Force|Outdated|Skip]  Sync ComicInfo/MetronInfo      -                                                with online services.          -[default: Outdated]           ---skip-clean  Skip removing any files not    -                                                listed in the                  -                                                'image_extensions' setting.    ---skip-rename  Skip organizing and renaming   -                                                comics based on their          -                                                MetronInfo/ComicInfo.          ---clean-c  Clean the cache before         -                                                starting the synchronization   -                                                process. Removes all cached    -                                                files.                         ---debug  Enable debug mode to show      -                                                extra information.             ---help  Show this message and exit.    -╰──────────────────────────────────────────────────────────────────────────────╯ - + + ╭─────────────────────Traceback (most recent call last)──────────────────────╮ +/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               + + 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  + 8 │   elif sys.argv[0].endswith(".exe"):                                   + 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   +❱ 10 │   sys.exit(app())                                                      +11  + +╭───────────────────── locals ──────────────────────╮ +app =<typer.main.Typer object at 0x7fb1de7407d0> +sys =<module'sys'(built-in)> +╰───────────────────────────────────────────────────╯ + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:340 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:323 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1442 in __call__                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:740 in main                                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:195 in _main                                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1828 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1186 in make_context                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1197 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2416 in handle_parse_result                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2355 in process_value                                                    + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec +orators.py:539 in show_help                                                   + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:730 in get_help                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1064 in get_help                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:691 in format_help                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:560 in rich_format_help                                            + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:969 in get_usage                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1002 in format_usage                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1012 in collect_usage_pieces                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:3104 in get_usage_pieces                                                 +╰──────────────────────────────────────────────────────────────────────────────╯ +TypeError: TyperArgument.make_metavar() takes 1 positional argument but 2 were  +given diff --git a/docs/img/perdoo-settings-locate.svg b/docs/img/perdoo-settings-locate.svg index 8b7c0c4..296a579 100644 --- a/docs/img/perdoo-settings-locate.svg +++ b/docs/img/perdoo-settings-locate.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - -Usage: Perdoo settings locate [OPTIONS] - - Display the path to the settings file.                                          - -╭─ Options ────────────────────────────────────────────────────────────────────╮ ---help          Show this message and exit.                                   -╰──────────────────────────────────────────────────────────────────────────────╯ - + + +Usage: Perdoo settings locate [OPTIONS] + + Display the path to the settings file.                                          + + +╭─────────────────────Traceback (most recent call last)──────────────────────╮ +/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               + + 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  + 8 │   elif sys.argv[0].endswith(".exe"):                                   + 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   +❱ 10 │   sys.exit(app())                                                      +11  + +╭───────────────────── locals ──────────────────────╮ +app =<typer.main.Typer object at 0x7f5ba69d07d0> +sys =<module'sys'(built-in)> +╰───────────────────────────────────────────────────╯ + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:340 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:323 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1442 in __call__                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:740 in main                                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:195 in _main                                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1830 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1828 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1186 in make_context                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1197 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2416 in handle_parse_result                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2355 in process_value                                                    + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec +orators.py:539 in show_help                                                   + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:730 in get_help                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1064 in get_help                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:691 in format_help                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:614 in rich_format_help                                            + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:373 in _print_options_panel                                        +╰──────────────────────────────────────────────────────────────────────────────╯ +TypeError: Parameter.make_metavar() missing 1 required positional argument:  +'ctx' diff --git a/docs/img/perdoo-settings-update.svg b/docs/img/perdoo-settings-update.svg index 24149e5..e42618b 100644 --- a/docs/img/perdoo-settings-update.svg +++ b/docs/img/perdoo-settings-update.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - -Usage: Perdoo settings update [OPTIONS] [KEY] [VALUE] - - Update the settings.                                                            - -╭─ Arguments ──────────────────────────────────────────────────────────────────╮ -   key        [KEY]  The setting to update.                                  -   value      [VALUE]  The value to update the setting to.                     -╰──────────────────────────────────────────────────────────────────────────────╯ -╭─ Options ────────────────────────────────────────────────────────────────────╮ ---reset          Reset the specified setting to its default value. If no key  -                  is provided, reset all settings.                             ---help           Show this message and exit.                                  -╰──────────────────────────────────────────────────────────────────────────────╯ - + + ╭─────────────────────Traceback (most recent call last)──────────────────────╮ +/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               + + 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  + 8 │   elif sys.argv[0].endswith(".exe"):                                   + 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   +❱ 10 │   sys.exit(app())                                                      +11  + +╭───────────────────── locals ──────────────────────╮ +app =<typer.main.Typer object at 0x7fd318bc47d0> +sys =<module'sys'(built-in)> +╰───────────────────────────────────────────────────╯ + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:340 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:323 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1442 in __call__                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:740 in main                                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:195 in _main                                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1830 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1828 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1186 in make_context                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1197 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2416 in handle_parse_result                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2355 in process_value                                                    + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec +orators.py:539 in show_help                                                   + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:730 in get_help                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1064 in get_help                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:691 in format_help                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:560 in rich_format_help                                            + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:969 in get_usage                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1002 in format_usage                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1012 in collect_usage_pieces                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:3104 in get_usage_pieces                                                 +╰──────────────────────────────────────────────────────────────────────────────╯ +TypeError: TyperArgument.make_metavar() takes 1 positional argument but 2 were  +given diff --git a/docs/img/perdoo-settings-view.svg b/docs/img/perdoo-settings-view.svg index 27f3b26..68c2b11 100644 --- a/docs/img/perdoo-settings-view.svg +++ b/docs/img/perdoo-settings-view.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - -Usage: Perdoo settings view [OPTIONS] - - Display the current and default settings.                                       - -╭─ Options ────────────────────────────────────────────────────────────────────╮ ---help          Show this message and exit.                                   -╰──────────────────────────────────────────────────────────────────────────────╯ - + + +Usage: Perdoo settings view [OPTIONS] + + Display the current and default settings.                                       + + +╭─────────────────────Traceback (most recent call last)──────────────────────╮ +/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               + + 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  + 8 │   elif sys.argv[0].endswith(".exe"):                                   + 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   +❱ 10 │   sys.exit(app())                                                      +11  + +╭───────────────────── locals ──────────────────────╮ +app =<typer.main.Typer object at 0x7f0cdddd87d0> +sys =<module'sys'(built-in)> +╰───────────────────────────────────────────────────╯ + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:340 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai +n.py:323 in __call__                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1442 in __call__                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:740 in main                                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:195 in _main                                                             + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1830 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1828 in invoke                                                           + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1186 in make_context                                                     + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1197 in parse_args                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2416 in handle_parse_result                                              + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:2355 in process_value                                                    + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec +orators.py:539 in show_help                                                   + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:730 in get_help                                                          + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor +e.py:1064 in get_help                                                         + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor +e.py:691 in format_help                                                       + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:614 in rich_format_help                                            + +/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric +h_utils.py:373 in _print_options_panel                                        +╰──────────────────────────────────────────────────────────────────────────────╯ +TypeError: Parameter.make_metavar() missing 1 required positional argument:  +'ctx' From 6d8816ece37fd2628ed4e197032c7418165d27d5 Mon Sep 17 00:00:00 2001 From: BuriedInCode <6057651+Buried-In-Code@users.noreply.github.com> Date: Mon, 12 May 2025 17:49:51 +1200 Subject: [PATCH 4/5] Click 8.2.0 breaks Typer --- pyproject.toml | 1 + uv.lock | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 03f18d9..1abee87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,7 @@ classifiers = [ "Typing :: Typed" ] dependencies = [ + "click < 8.2.0", "comicfn2dict >= 0.2.5", "esak >= 2.0.0", "lxml >= 5.4.0", diff --git a/uv.lock b/uv.lock index 41f8144..67760bf 100644 --- a/uv.lock +++ b/uv.lock @@ -259,14 +259,14 @@ wheels = [ [[package]] name = "click" -version = "8.2.0" +version = "8.1.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/0f/62ca20172d4f87d93cf89665fbaedcd560ac48b465bd1d92bfc7ea6b0a41/click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d", size = 235857, upload-time = "2025-05-10T22:21:03.111Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/58/1f37bf81e3c689cc74ffa42102fa8915b59085f54a6e4a80bc6265c0f6bf/click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c", size = 102156, upload-time = "2025-05-10T22:21:01.352Z" }, + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" }, ] [[package]] @@ -615,6 +615,7 @@ wheels = [ name = "perdoo" source = { editable = "." } dependencies = [ + { name = "click" }, { name = "comicfn2dict" }, { name = "esak" }, { name = "lxml" }, @@ -649,6 +650,7 @@ tests = [ [package.metadata] requires-dist = [ + { name = "click", specifier = "<8.2.0" }, { name = "comicfn2dict", specifier = ">=0.2.5" }, { name = "esak", specifier = ">=2.0.0" }, { name = "lxml", specifier = ">=5.4.0" }, From 868c91d33b3b24a6f34ab12ccd9932e5c9c806aa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 12 May 2025 07:55:22 +0000 Subject: [PATCH 5/5] Generate new screengrabs with rich-codex --- docs/img/perdoo-archive-view.svg | 341 ++++------------------------ docs/img/perdoo-commands.svg | 316 ++++---------------------- docs/img/perdoo-import.svg | 331 +++++++-------------------- docs/img/perdoo-settings-locate.svg | 328 +++----------------------- docs/img/perdoo-settings-update.svg | 340 ++++----------------------- docs/img/perdoo-settings-view.svg | 328 +++----------------------- 6 files changed, 281 insertions(+), 1703 deletions(-) diff --git a/docs/img/perdoo-archive-view.svg b/docs/img/perdoo-archive-view.svg index dc37e6d..d20e909 100644 --- a/docs/img/perdoo-archive-view.svg +++ b/docs/img/perdoo-archive-view.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - ╭─────────────────────Traceback (most recent call last)──────────────────────╮ -/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               - - 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  - 8 │   elif sys.argv[0].endswith(".exe"):                                   - 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   -❱ 10 │   sys.exit(app())                                                      -11  - -╭───────────────────── locals ──────────────────────╮ -app =<typer.main.Typer object at 0x7fccc85287d0> -sys =<module'sys'(built-in)> -╰───────────────────────────────────────────────────╯ - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:340 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:323 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1442 in __call__                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:740 in main                                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:195 in _main                                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1830 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1828 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1186 in make_context                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1197 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2416 in handle_parse_result                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2355 in process_value                                                    - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec -orators.py:539 in show_help                                                   - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:730 in get_help                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1064 in get_help                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:691 in format_help                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:560 in rich_format_help                                            - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:969 in get_usage                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1002 in format_usage                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1012 in collect_usage_pieces                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:3104 in get_usage_pieces                                                 -╰──────────────────────────────────────────────────────────────────────────────╯ -TypeError: TyperArgument.make_metavar() takes 1 positional argument but 2 were  -given + + +Usage: Perdoo archive view [OPTIONS] TARGET + + View the ComicInfo/MetronInfo inside a Comic archive.                           + + +╭─ Arguments ──────────────────────────────────────────────────────────────────╮ +*    target      FILE  Comic to view details of. [required] +╰──────────────────────────────────────────────────────────────────────────────╯ +╭─ Options ────────────────────────────────────────────────────────────────────╮ +--hide-comic-info           Don't show the ComicInfo details.                 +--hide-metron-info          Don't show the MetronInfo details.                +--help                      Show this message and exit.                       +╰──────────────────────────────────────────────────────────────────────────────╯ + diff --git a/docs/img/perdoo-commands.svg b/docs/img/perdoo-commands.svg index 783e61e..deb317d 100644 --- a/docs/img/perdoo-commands.svg +++ b/docs/img/perdoo-commands.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - -Usage: Perdoo [OPTIONS] COMMAND [ARGS]... - - CLI tool for managing comic collections and settings.                           - - -╭─────────────────────Traceback (most recent call last)──────────────────────╮ -/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               - - 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  - 8 │   elif sys.argv[0].endswith(".exe"):                                   - 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   -❱ 10 │   sys.exit(app())                                                      -11  - -╭───────────────────── locals ──────────────────────╮ -app =<typer.main.Typer object at 0x7f48d4b6b750> -sys =<module'sys'(built-in)> -╰───────────────────────────────────────────────────╯ - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:340 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:323 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1442 in __call__                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:740 in main                                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:194 in _main                                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1186 in make_context                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1786 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1197 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2416 in handle_parse_result                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2355 in process_value                                                    - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec -orators.py:539 in show_help                                                   - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:730 in get_help                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1064 in get_help                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:754 in format_help                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:614 in rich_format_help                                            - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:373 in _print_options_panel                                        -╰──────────────────────────────────────────────────────────────────────────────╯ -TypeError: Parameter.make_metavar() missing 1 required positional argument:  -'ctx' + + +Usage: Perdoo [OPTIONS] COMMAND [ARGS]... + + CLI tool for managing comic collections and settings.                           + + +╭─ Options ────────────────────────────────────────────────────────────────────╮ +--version                     Show the version and exit.                      +--install-completion          Install completion for the current shell.       +--show-completion             Show completion for the current shell, to copy  +                               it or customize the installation.               +--help                        Show this message and exit.                     +╰──────────────────────────────────────────────────────────────────────────────╯ +╭─ Commands ───────────────────────────────────────────────────────────────────╮ +import    Import comics into your collection using Perdoo.                   +archive   Commands for inspecting and managing comic archive metadata.       +settings  Commands for managing and configuring application settings.        +╰──────────────────────────────────────────────────────────────────────────────╯ + diff --git a/docs/img/perdoo-import.svg b/docs/img/perdoo-import.svg index 3e08829..3a8b77e 100644 --- a/docs/img/perdoo-import.svg +++ b/docs/img/perdoo-import.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - ╭─────────────────────Traceback (most recent call last)──────────────────────╮ -/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               - - 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  - 8 │   elif sys.argv[0].endswith(".exe"):                                   - 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   -❱ 10 │   sys.exit(app())                                                      -11  - -╭───────────────────── locals ──────────────────────╮ -app =<typer.main.Typer object at 0x7fb1de7407d0> -sys =<module'sys'(built-in)> -╰───────────────────────────────────────────────────╯ - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:340 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:323 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1442 in __call__                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:740 in main                                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:195 in _main                                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1828 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1186 in make_context                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1197 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2416 in handle_parse_result                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2355 in process_value                                                    - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec -orators.py:539 in show_help                                                   - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:730 in get_help                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1064 in get_help                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:691 in format_help                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:560 in rich_format_help                                            - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:969 in get_usage                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1002 in format_usage                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1012 in collect_usage_pieces                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:3104 in get_usage_pieces                                                 -╰──────────────────────────────────────────────────────────────────────────────╯ -TypeError: TyperArgument.make_metavar() takes 1 positional argument but 2 were  -given + + +Usage: Perdoo import [OPTIONS] TARGET + + Import comics into your collection using Perdoo.                                + + +╭─ Arguments ──────────────────────────────────────────────────────────────────╮ +*    target      PATH  Import comics from the specified file/folder.          +[required]                                    +╰──────────────────────────────────────────────────────────────────────────────╯ +╭─ Options ────────────────────────────────────────────────────────────────────╮ +--skip-convert  Skip converting comics to the  +                                                configured format.             +--sync-s[Force|Outdated|Skip]  Sync ComicInfo/MetronInfo      +                                                with online services.          +[default: Outdated]           +--skip-clean  Skip removing any files not    +                                                listed in the                  +                                                'image_extensions' setting.    +--skip-rename  Skip organizing and renaming   +                                                comics based on their          +                                                MetronInfo/ComicInfo.          +--clean-c  Clean the cache before         +                                                starting the synchronization   +                                                process. Removes all cached    +                                                files.                         +--debug  Enable debug mode to show      +                                                extra information.             +--help  Show this message and exit.    +╰──────────────────────────────────────────────────────────────────────────────╯ + diff --git a/docs/img/perdoo-settings-locate.svg b/docs/img/perdoo-settings-locate.svg index 296a579..19cad73 100644 --- a/docs/img/perdoo-settings-locate.svg +++ b/docs/img/perdoo-settings-locate.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - -Usage: Perdoo settings locate [OPTIONS] - - Display the path to the settings file.                                          - - -╭─────────────────────Traceback (most recent call last)──────────────────────╮ -/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               - - 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  - 8 │   elif sys.argv[0].endswith(".exe"):                                   - 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   -❱ 10 │   sys.exit(app())                                                      -11  - -╭───────────────────── locals ──────────────────────╮ -app =<typer.main.Typer object at 0x7f5ba69d07d0> -sys =<module'sys'(built-in)> -╰───────────────────────────────────────────────────╯ - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:340 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:323 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1442 in __call__                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:740 in main                                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:195 in _main                                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1830 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1828 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1186 in make_context                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1197 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2416 in handle_parse_result                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2355 in process_value                                                    - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec -orators.py:539 in show_help                                                   - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:730 in get_help                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1064 in get_help                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:691 in format_help                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:614 in rich_format_help                                            - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:373 in _print_options_panel                                        -╰──────────────────────────────────────────────────────────────────────────────╯ -TypeError: Parameter.make_metavar() missing 1 required positional argument:  -'ctx' + + +Usage: Perdoo settings locate [OPTIONS] + + Display the path to the settings file.                                          + + +╭─ Options ────────────────────────────────────────────────────────────────────╮ +--help          Show this message and exit.                                   +╰──────────────────────────────────────────────────────────────────────────────╯ + diff --git a/docs/img/perdoo-settings-update.svg b/docs/img/perdoo-settings-update.svg index e42618b..5955374 100644 --- a/docs/img/perdoo-settings-update.svg +++ b/docs/img/perdoo-settings-update.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - ╭─────────────────────Traceback (most recent call last)──────────────────────╮ -/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               - - 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  - 8 │   elif sys.argv[0].endswith(".exe"):                                   - 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   -❱ 10 │   sys.exit(app())                                                      -11  - -╭───────────────────── locals ──────────────────────╮ -app =<typer.main.Typer object at 0x7fd318bc47d0> -sys =<module'sys'(built-in)> -╰───────────────────────────────────────────────────╯ - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:340 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:323 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1442 in __call__                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:740 in main                                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:195 in _main                                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1830 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1828 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1186 in make_context                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1197 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2416 in handle_parse_result                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2355 in process_value                                                    - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec -orators.py:539 in show_help                                                   - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:730 in get_help                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1064 in get_help                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:691 in format_help                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:560 in rich_format_help                                            - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:969 in get_usage                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1002 in format_usage                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1012 in collect_usage_pieces                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:3104 in get_usage_pieces                                                 -╰──────────────────────────────────────────────────────────────────────────────╯ -TypeError: TyperArgument.make_metavar() takes 1 positional argument but 2 were  -given + + +Usage: Perdoo settings update [OPTIONS] [KEY] [VALUE] + + Update the settings.                                                            + + +╭─ Arguments ──────────────────────────────────────────────────────────────────╮ +   key        [KEY]  The setting to update.                                  +   value      [VALUE]  The value to update the setting to.                     +╰──────────────────────────────────────────────────────────────────────────────╯ +╭─ Options ────────────────────────────────────────────────────────────────────╮ +--reset          Reset the specified setting to its default value. If no key  +                  is provided, reset all settings.                             +--help           Show this message and exit.                                  +╰──────────────────────────────────────────────────────────────────────────────╯ + diff --git a/docs/img/perdoo-settings-view.svg b/docs/img/perdoo-settings-view.svg index 68c2b11..15de690 100644 --- a/docs/img/perdoo-settings-view.svg +++ b/docs/img/perdoo-settings-view.svg @@ -1,4 +1,4 @@ - + - - + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - -Usage: Perdoo settings view [OPTIONS] - - Display the current and default settings.                                       - - -╭─────────────────────Traceback (most recent call last)──────────────────────╮ -/home/runner/work/Perdoo/Perdoo/.venv/bin/Perdoo:10 in <module>               - - 7 │   │   sys.argv[0] = sys.argv[0][:-11]                                  - 8 │   elif sys.argv[0].endswith(".exe"):                                   - 9 │   │   sys.argv[0] = sys.argv[0][:-4]                                   -❱ 10 │   sys.exit(app())                                                      -11  - -╭───────────────────── locals ──────────────────────╮ -app =<typer.main.Typer object at 0x7f0cdddd87d0> -sys =<module'sys'(built-in)> -╰───────────────────────────────────────────────────╯ - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:340 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/mai -n.py:323 in __call__                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1442 in __call__                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:740 in main                                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:195 in _main                                                             - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1830 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1828 in invoke                                                           - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1186 in make_context                                                     - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1197 in parse_args                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2416 in handle_parse_result                                              - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:2355 in process_value                                                    - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/dec -orators.py:539 in show_help                                                   - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:730 in get_help                                                          - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/click/cor -e.py:1064 in get_help                                                         - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/cor -e.py:691 in format_help                                                       - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:614 in rich_format_help                                            - -/home/runner/work/Perdoo/Perdoo/.venv/lib/python3.13/site-packages/typer/ric -h_utils.py:373 in _print_options_panel                                        -╰──────────────────────────────────────────────────────────────────────────────╯ -TypeError: Parameter.make_metavar() missing 1 required positional argument:  -'ctx' + + +Usage: Perdoo settings view [OPTIONS] + + Display the current and default settings.                                       + + +╭─ Options ────────────────────────────────────────────────────────────────────╮ +--help          Show this message and exit.                                   +╰──────────────────────────────────────────────────────────────────────────────╯ +