A Discord.py extension allowing you to pass flags as arguments.
Project description
This is an alternative to XuaTheGrate/Flag-Parsing, which is not maintained.
⚠ Please be sure to read the entire README, it explains some important tricks.
Flag Parsing
A util for discord.py bots that allow passing flags into commands.
To install, run the following command:
pip install alt-discord-flags
2.1.0 changes how signatures appear. If you wish to use
the legacy signatures, use command.old_signature
instead.
Basic example usage:
import discord
from discord.ext import flags, commands
bot = commands.Bot("!")
# Invocation: !flags --count=5 --string "hello world" --user Xua --thing y
@flags.add_flag("--count", type=int, default=10)
@flags.add_flag("--string", default="hello!")
@flags.add_flag("--user", type=discord.User)
@flags.add_flag("--thing", type=bool)
@flags.command()
async def flags(ctx, **flags):
await ctx.send("--count={count!r}, --string={string!r}, --user={user!r}, --thing={thing!r}".format(**flags))
bot.add_command(flags)
Important note that @flags.command
MUST be under all @flags.add_flag
decorators.
@flags.add_flag
takes the same arguments as argparse.ArgumentParser.add_argument
to keep things simple.
Subcommands are just as simple:
@commands.group()
async def my_group(ctx):
...
@flags.add_flag("-n")
@my_group.command(cls=flags.FlagCommand)
async def my_subcommand(ctx, **flags):
...
Usage of discord.py's consume rest
behaviour is not perfect with discord-flags
,
meaning that you have to use a flag workaround:
@flags.add_flag("message", nargs="+")
@flags.command()
async def my_command(ctx, arg1, **options):
""" You can now access `message` via `options['message']` """
message = ' '.join(options['message'])
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
File details
Details for the file alt-discord-flags-0.0.5.tar.gz
.
File metadata
- Download URL: alt-discord-flags-0.0.5.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 333bf26d32da38d3160fd63e7c11cde1e1909db1532b3ef94f3f60ff02216ead |
|
MD5 | d2f6c6ef26a2f18efd202a41bb62ea6a |
|
BLAKE2b-256 | ce1ed08c0178dbce6b8fec77a8580e2aea7f001d01716fc6af0b6bd7658ecd1c |
File details
Details for the file alt_discord_flags-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: alt_discord_flags-0.0.5-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f48e24805927c033c2c3ed077a881ea5b36e6bea2dbfd8e20a15e2de58fe248a |
|
MD5 | 3a6c2ef2b39f64a6bf1868e68e901668 |
|
BLAKE2b-256 | 55b473458536104be4412effaf49c4201aacb23e6343d3254f6a3d73fa13586d |