diff --git a/pyproject.toml b/pyproject.toml index f0ba103..afbda2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta" [project] name = "yandex-music-downloader" -version = "3.5.1" +version = "3.5.2" description = "Загрузчик музыки с сервиса Яндекс.Музыка" requires-python = ">=3.9" readme = "README.md" diff --git a/ymd/cli.py b/ymd/cli.py index 9d69327..6e2fbcc 100644 --- a/ymd/cli.py +++ b/ymd/cli.py @@ -34,24 +34,6 @@ def show_default(text: Optional[str] = None) -> str: return f"{text} ({default})" -def quality_arg(astr: str) -> int: - aint = int(astr) - if 0 <= aint <= 2: - return aint - raise ArgumentTypeError("Значение должно быть в промежутке от 0 до 2") - - -def compatibility_level_arg(astr: str) -> int: - aint = int(astr) - min_val = core.MIN_COMPATIBILITY_LEVEL - max_val = core.MAX_COMPATIBILITY_LEVEL - if min_val <= aint <= max_val: - return aint - raise ArgumentTypeError( - f"Значение должен быть в промежутке от {min_val} до {max_val}" - ) - - def checked_int_arg( min_value: int, max_value: Optional[int] = None ) -> Callable[[str], int]: @@ -91,7 +73,7 @@ def main(): "--quality", metavar="<Качество>", default=0, - type=quality_arg, + type=checked_int_arg(0, 2), help="Качество трека:\n0 - Низкое (AAC 64kbps)\n1 - Оптимальное (AAC 192kbps)\n2 - Лучшее (FLAC)\n(по умолчанию: %(default)s)", ) common_group.add_argument( @@ -140,7 +122,9 @@ def main(): "--compatibility-level", metavar="<Уровень совместимости>", default=1, - type=compatibility_level_arg, + type=checked_int_arg( + core.MIN_COMPATIBILITY_LEVEL, core.MAX_COMPATIBILITY_LEVEL + ), help=show_default( f"Уровень совместимости, от {core.MIN_COMPATIBILITY_LEVEL} до {core.MAX_COMPATIBILITY_LEVEL}. См. README для подробного описания" ),