Arbitrarily ordered arguments for commands in discord.py
Project description
discord_argparse
Provides support for arbitrarily ordered arguments in commands for the discord.py library.
param_converter = ArgumentConverter(
turns = RequiredArgument(
int,
doc="The number of turns this quiz has.",
default=10
),
images = OptionalArgument(
bool,
doc="(Dis-)allow image questions.",
default=True
),
voice_channel = OptionalArgument(
discord.VoiceChannel
)
)
# The command below can be called by ...
# !quiz pokemon
# !quiz pokemon turns=12
# !quiz pokemon images=false turns=12
@bot.command()
async def quiz(ctx, name:str, *, params:param_converter=param_converter.defaults()):
await ctx.send("Turns: {0}".format(params['turns']))
@quiz.error
async def quiz_error(ctx, error):
if isinstance(error, InvalidArgumentValueError):
await ctx.send(
"Invalid argument value for parameter {0}".format(error.name)
)
elif isinstance(error, UnknownArgumentError):
await ctx.send(
"Unknown argument {0}".format(error.name)
)
Installation
Simply drop the source file anywhere in your project. Installation via pip
is
not available at the moment.
Documentation
Initialize an ArgumentConverter
as in the example above, annotate a
keyword-only function argument in your command with the instance and,
optionally, set its default value by using the .defaults()
method. Setting a
default value can be omitted if you use required arguments (otherwise it will
raise a MissingRequiredArgument
exception).
Inside the command, you can access the arguments as a dict.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for discord_argparse-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8df95126c8718f3bbacd3be40fbb1492152f0a65986b1826e23dec5d95df1bc |
|
MD5 | 8fb749ff83a0dc2e95b6903cf9e3c16a |
|
BLAKE2b-256 | 2f498be1adb1e33f8fdff3f6f931e2a46997e2552d93ada30e54a4cede657642 |