From e032d041576feddf8141282fa35a1386f22fc207 Mon Sep 17 00:00:00 2001 From: ErrorNoInternet Date: Mon, 30 Dec 2024 20:33:44 -0500 Subject: [PATCH] refactor: clean up range_type --- arguments.py | 8 ++++++-- commands/tools.py | 6 ++---- commands/voice.py | 2 -- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/arguments.py b/arguments.py index 0071ead..af63847 100644 --- a/arguments.py +++ b/arguments.py @@ -35,8 +35,12 @@ class ArgumentParser: def range_type(string, min=0, max=100): - value = int(string) + try: + value = int(string) + except ValueError: + raise argparse.ArgumentTypeError(f"value not a valid integer") + if min <= value <= max: return value else: - raise argparse.ArgumentTypeError("value not in range %s-%s" % (min, max)) + raise argparse.ArgumentTypeError(f"value not in range {min}-{max}") diff --git a/commands/tools.py b/commands/tools.py index e7070df..8b47158 100644 --- a/commands/tools.py +++ b/commands/tools.py @@ -1,7 +1,7 @@ +import functools import re import arguments - import commands import utils @@ -14,9 +14,7 @@ async def clear(message): ) parser.add_argument( "count", - type=int, - choices=range(1, 1001), - metavar="[1-1000]", + type=functools.partial(arguments.range_type, min=1, max=1000), help="amount of messages to delete", ) parser.add_argument( diff --git a/commands/voice.py b/commands/voice.py index 602c2da..f228cf9 100644 --- a/commands/voice.py +++ b/commands/voice.py @@ -26,7 +26,6 @@ async def queue_or_play(message): "--volume", default=50, type=functools.partial(arguments.range_type, min=0, max=150), - metavar="[0-150]", help="the volume level (0 - 150)", ) group.add_argument( @@ -228,7 +227,6 @@ async def volume(message): "volume", nargs="?", type=functools.partial(arguments.range_type, min=0, max=150), - metavar="[0-150]", help="the volume level (0 - 150)", ) if not (args := await parser.parse_args(message, tokens)):