Улучшение обработки аргументов

This commit is contained in:
Lev Plyusnin 2025-06-15 14:53:49 +07:00
parent 1d944cc9fb
commit 5268b87e0d
No known key found for this signature in database
GPG key ID: 21C6C2C9C0A4460D
2 changed files with 5 additions and 21 deletions

View file

@ -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"

View file

@ -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 для подробного описания"
),