Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 7fb746e6e5 [commands] Refactor evaluation functions to allow passing in localns 2021-04-18 04:10:19 -04:00
Rapptz c2afa984ff Use f-strings for attributetable 2021-04-17 19:40:40 -04:00
Rapptz fdf81089b5 Add inherited members to (Partial)Emoji docs 2021-04-17 19:40:40 -04:00
Rapptz fed259a83b Refactor save() and read() into AssetMixin 2021-04-17 00:56:38 -04:00
Rapptz f6fcffbab5 Use default allowed_mentions in Message.edit
Fix #6745
2021-04-16 23:00:18 -04:00
Rapptz 6ba3d89076 Revert Attachment.save code to prior implementation 2021-04-16 11:38:56 -04:00
Rapptz 9eaf1e85e4 Rewrite Asset design
This is a breaking change.

This does the following transformations, assuming `asset` represents
an asset type.

Object.is_asset_animated() => Object.asset.is_animated()
Object.asset => Object.asset.key
Object.asset_url => Object.asset_url
Object.asset_url_as => Object.asset.replace(...)

Since the asset type now requires a key (or hash, if you will),
Emoji had to be flattened similar to how Attachment was done since
these assets are keyed solely ID.

Emoji.url (Asset) => Emoji.url (str)
Emoji.url_as => removed
Emoji.url.read => Emoji.read
Emoji.url.save => Emoji.save

This transformation was also done to PartialEmoji.
2021-04-16 11:27:23 -04:00
Rapptz a30ec197c2 Some initial response typings 2021-04-16 08:02:19 -04:00
Rapptz 90d59bb06c Fix overloads on Webhook.send to not require wait kwarg 2021-04-15 19:36:36 -04:00
Rapptz 0542b129c2 Fix WebhookMessage.edit documentation 2021-04-15 09:03:46 -04:00
Rapptz 1f74b051a8 Fix rate limit handling with retry_after precision change 2021-04-15 08:34:58 -04:00
Rapptz a6f7213c89 Rewrite webhooks to play better with typings and rate limits
This unfortunately required splitting the types into two. This led to
a lot of unfortunate code duplication that I didn't really enjoy
writing.

The new design allows users to pass an authentication token to make
webhook requests without the webhook token and allows to finally
edit the webhook channel.

The new design also uses a contextvar to store rate limiting
information so multiple instances or recreating instances no longer
clears the ratelimiting state since it's now essentially a "global"
object.

Closes #6525, closes #6662, closes #2509, closes #1761
2021-04-15 08:04:32 -04:00
Rapptz da6119e04c Fix fail_if_not_exists not being set when constructed with state 2021-04-14 00:50:37 -04:00
Rapptz a8da7d03b9 Remove AutoShardedClient.request_offline_members 2021-04-12 05:28:18 -04:00
Rapptz ef4394f87d Add support for role objects in GuildChannel.permissions_for 2021-04-11 22:45:49 -04:00
Rapptz 1209585de5 Remove User.permissions_in
This seemed to only cause confusion.
2021-04-11 22:21:36 -04:00
Rapptz a8b3cfa592 Remove comment that doesn't apply anymore 2021-04-11 22:20:31 -04:00
Rapptz 9b94fe1ce0 Remove superfluous unused payload parameter 2021-04-11 22:13:48 -04:00
Rapptz 7bdaa793f6 Create temporary DMChannels from message create events
This allows for DMChannels to work without falling back to the
Object error case since there is enough information to build a pseudo
DMChannel object.

This is a breaking change since it changes the type of
DMChannel.recipient to Optional[User] for when this faux object is
created.
2021-04-11 22:09:10 -04:00
Rapptz 74b07a3218 [commands] Fix Command.clean_params to return a regular dict 2021-04-11 16:30:28 -04:00
Rapptz 74d8ad2013 [commands] Add support for Python 3.10 Union typing 2021-04-11 02:11:24 -04:00
Rapptz 1ecadf057e [commands] Fix errors with cooldown mappings 2021-04-11 01:00:04 -04:00
Rapptz 7d79b4ba55 Remove Member related handling in PRESENCE_UPDATE 2021-04-11 00:57:59 -04:00
Rapptz 217c2a1cc5 Fix stray AttributeError in Guild._from_data with member cache 2021-04-11 00:44:27 -04:00
Rapptz 40cf397ce6 Permission related fixes for v8 2021-04-11 00:39:13 -04:00
Rapptz 7afcacc9a1 Remove MemberCacheFlags.online
v8 no longer gives enough data for this to be possible
2021-04-11 00:39:13 -04:00
Rapptz d85805ab6d First pass at supporting v8 API 2021-04-11 00:39:13 -04:00
Rapptz 3151672cfe [commands] Refactor typing evaluation to not use get_type_hints
get_type_hints had a few issues:

1. It would convert = None default parameters to Optional
2. It would not allow values as type annotations
3. It would not implicitly convert some string literals as ForwardRef

In Python 3.9 `list['Foo']` does not convert into
`list[ForwardRef('Foo')]` even though `typing.List` does this
behaviour. In order to streamline it, evaluation had to be rewritten
manually to support our usecases.

This patch also flattens nested typing.Literal which was not done
until Python 3.9.2.
2021-04-10 20:56:08 -04:00
Rapptz 27886e5aa4 [commands] Remove legacy ExtensionNotFound.original attribute 2021-04-10 15:52:53 -04:00
Rapptz d5ad269b35 Fix Intents resolution in the docs 2021-04-10 15:50:46 -04:00
Rapptz 42c3ee6eed Bring back discord module in discord.ext.commands documentation 2021-04-10 15:49:39 -04:00
Rapptz 8e299e80f8 Update Sphinx to 3.5.3 2021-04-10 15:33:15 -04:00
Rapptz 296bd069c1 Remove current module reference in commands API docs 2021-04-10 14:59:26 -04:00
Rapptz ea32147d02 Fix all warnings with Sphinx 2021-04-10 03:27:40 -04:00
Rapptz d58edd10a7 Add missing future annotations import 2021-04-10 03:23:47 -04:00
Rapptz d38ef88686 Update issue templates to newest versions 2021-04-08 22:51:20 -04:00
Rapptz ca84d4e2b6 [types] Snowflake can be either str or int. 2021-04-08 22:17:26 -04:00
Rapptz 9da2f349e7 Use Any instead of str for Embed typings for accuracy 2021-04-08 20:12:08 -04:00
Rapptz 99fc950510 Use f-strings in more places that were missed. 2021-04-08 06:02:47 -04:00
Rapptz e405bd5f1f Add discord.types.Message.interaction attribute 2021-04-08 02:29:14 -04:00
Rapptz a31c19563f Add interaction related typings 2021-04-08 02:12:55 -04:00
Rapptz 249d94a011 Add AllowedMentions typings 2021-04-08 02:06:19 -04:00
Rapptz d299bfef26 Fix up typings for attachment and message 2021-04-08 01:56:23 -04:00
Rapptz e895a53713 [commands] Add StageChannelConverter to documentation 2021-04-08 00:44:47 -04:00
Rapptz a9d5c0aa3b Fix headers in partial webhook channel and guild objects 2021-04-07 06:37:09 -04:00
Rapptz b818296c21 Remove type hints from generated docs 2021-04-07 06:35:29 -04:00
Rapptz f49d565d51 Rename discord.types file based on relevant core module file 2021-04-07 05:50:54 -04:00
Rapptz 23fe6b46dd Typehint discord.Embed and introduce discord.types subpackage
The discord.types subpackage is currently only used to do type hinting
of API payloads, it's very much incomplete right now and it'll be a
rather long process.

discord.Embed was typehinted and formatted using black.
2021-04-07 05:39:58 -04:00
Rapptz f80b8d3f5d [commands] Only replace annotation if one was given 2021-04-07 03:17:36 -04:00
Rapptz ed1341012b Add Embed.__bool__
Fixes #6661
2021-04-07 00:01:57 -04:00
Rapptz 1d5805ebcb Revert "Remove unused group functionality"
This reverts commit d69b2f0af5.
2021-04-07 00:01:57 -04:00
Rapptz 72275a73fa Use non-underscore TypeVar in enum code 2021-04-06 07:35:02 -04:00
Rapptz 7e3c5f3faf Fix some regressions from create_task change 2021-04-06 07:31:31 -04:00
Rapptz d69b2f0af5 Remove unused group functionality 2021-04-06 07:12:15 -04:00
Rapptz 84e2ff0bc7 Reformat HTTPClient and add interaction endpoints 2021-04-06 05:25:50 -04:00
Rapptz 008432c76a Make enum code work with typecheckers
This also makes it so invalid enum values fall back to a proxy type
that still works similar to actual values.
2021-04-06 01:11:36 -04:00
Rapptz 8cece19b22 Add on_interaction event and Interaction class.
This is the first pass at the functionality. It's currently a bit
incomplete.
2021-04-06 01:11:36 -04:00
Rapptz 1e7f139313 Add support for setting application_id 2021-04-06 01:11:36 -04:00
Rapptz 9ab58d302d [commands] Fix classmethod converters not working.
Protocols sure are annoying.
2021-04-05 23:52:28 -04:00
Rapptz ee5bb07c02 [commands] Revert conversion code back to how it was originally 2021-04-05 23:24:47 -04:00
Rapptz 8da6b47a36 Update changelog for v1.7.1 2021-04-05 21:39:35 -04:00
Rapptz 6d74514729 [commands] Fix logic in Cog.has_error_handler() 2021-04-05 21:39:22 -04:00
Rapptz a3a6f88936 Add discord.utils.utcnow() helper function to ease migration 2021-04-04 23:59:04 -04:00
Rapptz 93a92e6e1b Remove special casing of MAX_ASYNCIO_SECONDS in sleep_until
This compatibility code goes away in Python versions greater than 3.7
2021-04-04 23:55:15 -04:00
Rapptz ff7094ce96 Convert datetimes to aware datetimes with UTC.
Naive datetimes will now be interpreted as local time throughout
the library.
2021-04-04 23:54:08 -04:00
Rapptz fd58371f53 Remove some lingering userbot classes in the documentation 2021-04-04 20:05:19 -04:00
Rapptz 7ba437cece Use 3.8 for ReadTheDocs builds 2021-04-04 20:01:37 -04:00
Rapptz 54288879e2 Remove userbot functionality
This has a lot of legacy and cruft so there may be some stuff I've
missed but this first pass is enough to get a clear separation.
2021-04-04 10:15:30 -04:00
Rapptz 59aa1a0e5f Remove asyncio.Task subclass in preference to task names 2021-04-04 07:24:42 -04:00
Rapptz 94bd1b9822 Convert two missing places to f-strings 2021-04-04 07:17:03 -04:00
Rapptz 4d44872511 Remove encoding header from generated code 2021-04-04 07:06:50 -04:00
Rapptz adaf7c6192 [commands] Use positional only parameter for Context.invoke 2021-04-04 07:04:01 -04:00
Rapptz 9d39b135f4 Modernize code to use f-strings
This also removes the encoding on the top, since Python 3 does it by
default. It also changes some methods to use `yield from`.
2021-04-04 07:03:53 -04:00
Rapptz 9fc2ab9c99 Bump minimum Python version to 3.8 2021-04-04 04:30:31 -04:00
Rapptz 68e379bc8b Version bump for development 2021-04-04 03:53:26 -04:00
Rapptz 757dd92272 Version bump to v1.7 2021-04-04 00:54:10 -04:00
Rapptz f6df66a971 Add missing documentation for StoreChannelConverter 2021-04-04 00:21:15 -04:00
Rapptz 6d63cf0d5d Add missing StoreChannel documentation 2021-04-04 00:17:59 -04:00
Rapptz 834a7d80aa Fix StoreChannel reference in changelog 2021-04-04 00:04:30 -04:00
Rapptz f8964b1b32 Add content_type to changelog 2021-04-03 23:33:03 -04:00
Rapptz 5b244a7002 Add changelog for v1.7 2021-04-03 23:09:47 -04:00
Rapptz efc30a146e Guard for None in VocalGuildChannel.members 2021-04-03 23:08:03 -04:00
Rapptz 421c0cd455 [commands] Add missing versionadded on StoreChannelConverter 2021-04-03 22:54:21 -04:00
Rapptz 3576e2ee01 Add support for Permissions.request_to_speak 2021-04-01 00:53:07 -04:00
Rapptz 8a24a93010 Bring back older background task example under a new name 2021-03-30 20:29:03 -04:00
Rapptz e359aeb122 Fix background_task example to actually work 2021-03-30 20:28:41 -04:00
Rapptz 0c3be9713d Raise error if position could not be resolved in GuildChannel.move 2021-03-30 04:11:06 -04:00
Rapptz 7f0db1f35a Return early if no kwargs are given to GuildChannel.move 2021-03-30 03:54:58 -04:00
Rapptz a30ad6acf2 Ignore moving category channels to another category 2021-03-30 03:51:06 -04:00
Rapptz b850c9cd5d Add GuildChannel.move helper method to help with moving channels
Moving channels is seen as a complicated task, so hopefully this
abstracts a lot of it for users. There is no bulk move helper yet
since I'm unsure how the API for that should be.
2021-03-30 03:21:09 -04:00
Rapptz 862d509d2e [commands] Add support for stripping whitespace after the prefix
This is configured with the strip_after_prefix option in `Bot.__init__`
2021-03-28 21:21:09 -04:00
Rapptz c4c2cbf6d2 [commands] Remove nullability from help command implementation
Fixes #5154
2021-03-28 18:51:58 -04:00
Rapptz 4aee7fed5d [commands] Only remove top level commands on cog load failure 2021-03-28 18:35:59 -04:00
Rapptz 8657edfc99 Fallback to empty string for unavailable guild __str__ 2021-03-25 09:11:00 -04:00
Rapptz 5cb5126548 Make Attachment hashable and castable to str 2021-03-25 09:08:22 -04:00
Rapptz 1c8d1b0289 Recreate aiohttp.FormData objects during request retries
Fixes #6531
2021-03-24 08:50:34 -04:00
Rapptz 0b19fabbf0 Remove deprecated uses of about 2021-03-24 08:36:53 -04:00
Rapptz 9af99d2634 Update issue template 2021-03-24 08:35:41 -04:00
Rapptz 4c4d75dc29 Disallow empty sequences in Guild.query_members user_id parameter 2021-02-28 23:56:14 -05:00
Rapptz abfc07f968 Fix up previous PR mistake with intentional backslashes 2021-02-21 07:35:31 -05:00