Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 816d2176e9 Ignore type error already handled by exception handling 2022-03-24 23:50:47 -04:00
Rapptz 8591cfc5e7 Run black on all examples and require it for CI 2022-03-24 23:40:59 -04:00
Rapptz 968a1f366f Change View callback order to (self, interaction, item)
This is more consistent with the rest of the library which always has
the interaction as the first parameter. This has been done before in
the command extension as well, the first parameter is always either
self or the context.
2022-03-24 23:00:50 -04:00
Rapptz e9ed231a03 Allow Transformer.transform to be synchronous as well. 2022-03-22 22:44:42 -04:00
Rapptz 1f3aa377c3 Wrap non-AppCommandError exceptions with TransformerError 2022-03-22 19:07:22 -04:00
Rapptz b0501e56a0 Fix PermissionOverwrite.update typing not allowing None 2022-03-22 18:55:42 -04:00
Rapptz 7851084b63 Revert "Crowdin translations download"
This reverts commit 414759f372.
2022-03-21 22:53:45 -04:00
Rapptz 84c38f1f22 Ignore errors if it's already handled in app commands 2022-03-21 04:07:05 -04:00
Rapptz f7c664e3e2 Add error handler support for context menus 2022-03-21 03:56:28 -04:00
Rapptz cf2707b2fb Propagate thread_id in webhook message methods
This also adds the remaining thread parameters where they were missing
2022-03-20 19:43:51 -04:00
Rapptz 2876622f84 Fix typo in app command check documentation 2022-03-19 15:48:00 -04:00
Rapptz 195c923bec Fallback to Object if the type is not resolved in namespace 2022-03-19 01:38:16 -04:00
Rapptz bea6b815e2 Add support for app command checks
This does not include any built-in checks due to design considerations.
2022-03-19 01:24:53 -04:00
Rapptz 5f7c5abe0a Change ban type hints to use int instead of Literal 2022-03-18 21:45:15 -04:00
Rapptz 77ec49782a Add http_trace option in Client to trace the library's HTTP requests 2022-03-18 08:02:53 -04:00
Rapptz 4a76464ac9 Fix return value of Guild.chunk 2022-03-18 07:37:28 -04:00
Rapptz 02b79eb219 [commands] Change BotT to be covariant 2022-03-18 01:13:50 -04:00
Rapptz 98a31cf285 Change autocomplete callbacks to only take two parameters
The old namespace parameter can be retrieved using the
Interaction.namespace property instead, which leads to somewhat cleaner
code.
2022-03-17 10:13:09 -04:00
Rapptz d2f6b05c43 Fix missing List -> Sequence typehint in interaction message edit 2022-03-17 10:00:03 -04:00
Rapptz f5341a1cfa Document cases where setup_hook can deadlock rather than raising 2022-03-17 09:56:25 -04:00
Rapptz 202b993da3 Add Interaction.command and Interaction.namespace attributes 2022-03-17 09:45:21 -04:00
Rapptz 3c6daff473 Change default ellipsis descriptions to use U+2026 2022-03-17 07:37:33 -04:00
Rapptz c77bbc4dcf Move with_counts parameter documentation where it belongs 2022-03-16 07:43:31 -04:00
Rapptz 5b8bcaff73 Validate and bind parent in Group.add_command 2022-03-16 07:32:01 -04:00
Rapptz 7c0a9e901d Fully initialise asyncio state in __aenter__ 2022-03-16 05:51:25 -04:00
Rapptz 575eacb1bf Change loop sentinel error to not use a tuple
This was an unintentional error
2022-03-16 05:50:28 -04:00
Rapptz 1fba54ce97 Reword DeletedMessageReference docstring to be clearer 2022-03-16 05:12:26 -04:00
Rapptz 1192d842e1 Fix some type checker errors and remove some type ignores
Caught from an upgraded Pyright
2022-03-16 01:46:58 -04:00
Rapptz 6d75d2e937 Fix unnecessary type ignores in gateway 2022-03-16 01:19:45 -04:00
Rapptz d2b69ce19a Downgrade unnecessary type ignore into a warning instead of error 2022-03-16 01:01:18 -04:00
Rapptz 380e9118d5 Temporarily change Crowdin upload to be a manual workflow dispatch 2022-03-16 00:42:06 -04:00
Rapptz 61577677cd Fix Guild.fetch_members limit parameter typing to be Optional 2022-03-16 00:39:05 -04:00
Rapptz caf1c6eae4 Fix overload in StoreChannel 2022-03-16 00:13:39 -04:00
Rapptz 446c502995 Change lowercase detection to work with CJK languages
str.islower() does not properly work with characters in the Lo category
so CJK languages fail the check.

Fix #7698
2022-03-15 23:37:54 -04:00
Rapptz 26457b6d50 Remove automatic defer behaviour from View and Modal
This doesn't make as much sense anymore now that
InteractionResponse.edit_message exists.
2022-03-15 10:30:19 -04:00
Rapptz 8ced1143e3 Change missing application ID error to be more descriptive 2022-03-15 07:22:44 -04:00
Rapptz 27dd986858 Forbid Choice annotations being used with autocomplete parameters
Since the Choice are synthetic, the library doesn't have a
pre-populated list of choices to know what to use as the resulting
value.
2022-03-15 07:09:41 -04:00
Rapptz 698d1e12a1 Add CommandTree.error decorator to set on_error dynamically 2022-03-15 06:57:25 -04:00
Rapptz 2bf612cd67 Fix Client.close erroring if done before proper async initialisation 2022-03-15 06:51:19 -04:00
Rapptz 20aa6f866d Fix CommandTree removal and getter overloads 2022-03-15 03:34:04 -04:00
Rapptz f015b59e43 Add CommandTree.walk_commands and Group.walk_commands 2022-03-15 03:24:20 -04:00
Rapptz 5bc085ebab Properly set root parent before copying a command's binding 2022-03-15 03:24:20 -04:00
Rapptz aa006f345a Add more special methods to Namespace for ease of use.
* __getattr__ would allow it to no longer AttributeError while
  simultaneously letting linters and type checkers understand that
  this is a bag of dynamic attributes.
* __contains__ allows checking for the existence of an attribute
* __getitem__ allows accessing a value even if its name is not a valid
  Python identifier.
2022-03-14 22:49:47 -04:00
Rapptz f0a47f5a40 Allow single element Literal in app commands
Fix #7690
2022-03-14 21:17:00 -04:00
Rapptz 934ab4151a Mark state refresh methods as private with an underscore
People kept wondering what it is or what it does.
2022-03-14 07:50:25 -04:00
Rapptz bc70ec5cfd Change persistent view example to use new setup_hook 2022-03-14 06:12:58 -04:00
Rapptz c95c163266 Fix background task examples 2022-03-14 06:08:54 -04:00
Rapptz 9b77331603 Change loop sentinel to provide a more descriptive error message
This way people don't think it's a bug. I imagine some people won't
read it, but at least when you point it out they might get it.
2022-03-14 05:52:35 -04:00
Rapptz aa18e573c3 Mark MISSING as hashable to allow it to be used in dataclasses in 3.11 2022-03-14 05:45:58 -04:00
Rapptz abcec5da9d [tasks] Use the local timezone when comparing for the start time
Fix #7676
2022-03-14 04:54:56 -04:00
Rapptz a4676804ec Show inherited members in InteractionMessage 2022-03-14 02:21:05 -04:00
Rapptz 2da6415008 Add more tests for JST regression case 2022-03-14 01:07:49 -04:00
Rapptz c6ab67420e Remove Embed.Empty in favour of None 2022-03-14 00:52:55 -04:00
Rapptz 603681940f [tasks] Only correct for clock drift if an explicit time is given 2022-03-13 22:51:10 -04:00
Rapptz f2586e9fe7 [tasks] Handle imaginary or ambiguous times due to DST transitions 2022-03-13 22:45:18 -04:00
Rapptz f63070c071 Move migrating to v1 into a new separate file 2022-03-13 21:55:07 -04:00
Rapptz a339e01047 [tasks] Compare using full datetime rather than sole time
Comparisons using just the time object without an attached date
are pretty buggy and incomplete -- comparisons only make sense when
given a particular instant of time.

Ref: #7676
2022-03-13 20:45:05 -04:00
Rapptz 58ad146a4e Remove window re-assignment in gateway rate limiter
This was a hold over from the old cooldown implementation.
2022-03-13 12:09:07 -04:00
Rapptz c0890bfbc1 Remove unused View._expires_at private function 2022-03-13 11:50:09 -04:00
Rapptz 64c6639f4b [tasks] Handle loop functions running multiple times due to clock drift 2022-03-13 11:36:00 -04:00
Rapptz 9c61e10a55 Move all async object creation to a proper initialisation point
This should make it so no object is created with another loop
2022-03-13 08:33:25 -04:00
Rapptz 8d4f08a5e7 Fix AutoShardedClient to work with the new asyncio loop machinery
Fix #7675
2022-03-13 08:05:44 -04:00
Rapptz 6a43d60acf [tasks] Refactor tasks to not store a time index state
It's better to recompute it every time rather than suffer from
maintaining the extra state.
2022-03-13 06:20:44 -04:00
Rapptz c02a3c0bb2 Add asynchronous context manager support for Client 2022-03-13 05:04:55 -04:00
Rapptz 5e9097179b Add CommandTree.copy_global_to method for quick development 2022-03-12 21:32:35 -05:00
Rapptz 3718192b9c Raise a TypeError if a non-View is passed to Webhook.send 2022-03-12 21:01:07 -05:00
Rapptz 42beec9fa9 Fix bug when app commands would not have a module attribute set on copy 2022-03-12 20:55:08 -05:00
Rapptz d63fd578c2 Change TextChannel annotation channel_types to include news channels 2022-03-12 20:51:32 -05:00
Rapptz 6def5c9131 Allow specifying float default values for app commands 2022-03-12 09:41:28 -05:00
Rapptz 1d1bba1f90 Support app_commands.guilds decorator for context menu commands 2022-03-12 09:28:46 -05:00
Rapptz 0ef369c0fa [commands] Automatically unload top level app commands in extensions 2022-03-12 09:24:26 -05:00
Rapptz a672455ca9 Fix some context menu commands not being registered in guild contexts
This happened when there weren't any application commands due to a typo
stemming from a copy paste error.

Fixes #7650
2022-03-12 08:39:57 -05:00
Rapptz d68f2db7cb [commands] Always respect guild IDs passed to cog adding and removal
Fixes #7657
2022-03-12 06:58:55 -05:00
Rapptz d921a03911 Fix bug where Guild.member_count would clear during update events
Fix #7656
2022-03-12 04:19:52 -05:00
Rapptz 9fd63ad7f3 Fix Optional type hints not respecting explicitly set defaults 2022-03-12 02:03:17 -05:00
Rapptz 9dea6caf20 Ensure cog app commands is a list rather than a dict
There was a remnant of it being a dict in the metaclass.
2022-03-11 21:30:49 -05:00
Rapptz 333849e5a3 Unbind bound methods passed to Command constructor
Fixes #7600
2022-03-11 10:26:16 -05:00
Rapptz 140a827190 Fix default guilds for commands not being respected
Pesky little typo

Fix #7641
2022-03-11 08:33:37 -05:00
Rapptz 740c156cd8 Allow Optional transformers to work at runtime 2022-03-11 08:06:11 -05:00
Rapptz bbf7a7981b Ensure all choices are the same type as the parameter type
Fixes #7625
2022-03-11 07:29:11 -05:00
Rapptz 377561844d Raise an error if a child command has default guilds set 2022-03-11 07:18:34 -05:00
Rapptz f54c4ca54e Validate application command names 2022-03-11 06:40:28 -05:00
Rapptz f4ca36ec5a Add Member.timeout helper method 2022-03-10 21:32:33 -05:00
Rapptz 26c6b4d449 Use new differentiator for guild and global commands
Fixes #7602
2022-03-10 20:10:49 -05:00
Rapptz 02fcc814e1 Allow passing guild_ids in constructors of Command and Group
Fixes #7626
2022-03-10 19:31:27 -05:00
Rapptz f6453d9439 Fix free functions being passed a binding in autocomplete callbacks
Fix #7624
2022-03-10 19:26:00 -05:00
Rapptz 4edfcd165d Version bump aiohttp and PyNaCl
Fixes #7614
2022-03-10 06:03:59 -05:00
Rapptz 5ff657dbec Add missing attributes in PartialInviteGuild 2022-03-10 05:39:03 -05:00
Rapptz d210f799ee [commands] Fix cog eject behaviour with application commands
This was using the old attribute I forgot to change.
2022-03-10 05:33:54 -05:00
Rapptz 71586836e1 Add Guild.vanity_url helper property 2022-03-10 05:06:02 -05:00
Rapptz a6ae7ec196 Raise error if two trees are registered to the same connection state 2022-03-09 20:35:07 -05:00
Rapptz 446bfa78b0 [commands] Allow Cog and app_commands interopability
This changeset allows app commands defined inside Cog to work as
expected. Likewise, by deriving app_commands.Group and Cog you can
make the cog function as a top level command on Discord.
2022-03-09 20:26:54 -05:00
Rapptz 5741ad9368 Change default guild IDs attribute to persist on copy 2022-03-09 20:26:54 -05:00
Rapptz 0d126c594c Use descriptor protocol to obtain attribute name instead of a dict 2022-03-09 20:26:54 -05:00
Rapptz 303d33bb08 Support Group with app_commands.guilds decorator 2022-03-09 20:26:54 -05:00
Rapptz 9d27855755 Update attributes of instantiated Group to point to the Command copy 2022-03-09 20:26:54 -05:00
Rapptz 56e0c1b3d7 Fix typo in applications.commands scope 2022-03-09 20:26:53 -05:00
Rapptz 3d74da8d70 Add missing app_commands decorators to documentation 2022-03-08 01:22:43 -05:00
Rapptz 0c690bc949 Fix audio not sending
Fixes #7531
2022-03-08 01:18:32 -05:00
Rapptz 25b4bc277b Add app_commands.guilds to set the guilds of a command in another way
This is mostly preparation for interopability with commands.Cog as this
would allow authors to specify the guilds for their cog defined
commands.
2022-03-08 00:48:24 -05:00