Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 5a9cbc967b Typehint mixins 2021-05-29 02:44:31 -04:00
Rapptz 794327cdb4 Fix type errors with required keys in the integration types 2021-05-29 01:09:07 -04:00
Rapptz 1ae40a11b7 Fix some type errors in StreamIntegration.edit 2021-05-29 00:54:31 -04:00
Rapptz 06743dd434 Make StreamIntegration.role a property rather than a strong reference 2021-05-29 00:50:56 -04:00
Rapptz 732c5384fd Allow registering a View for persistent long term dispatching 2021-05-29 00:44:08 -04:00
Rapptz 7e1f8bf1b4 Typehint Sticker 2021-05-29 00:19:11 -04:00
Rapptz f321efd4de Default SelectOption.value to the label if not given 2021-05-28 09:43:15 -04:00
Rapptz b84c199c70 Allow constructing SelectOption.emoji from a string as well 2021-05-28 09:40:49 -04:00
Rapptz c475218112 Typehint Role and RoleTags 2021-05-28 08:54:45 -04:00
Rapptz 35bef7af38 Fix Role.is_assignable() computing Guild.me twice 2021-05-28 08:41:45 -04:00
Rapptz f4fe247813 Remove __slots__ from View 2021-05-28 08:39:34 -04:00
Rapptz ef9f61a933 Add support for select components 2021-05-28 05:34:21 -04:00
Rapptz 6874aa73c4 Add PartialEmoji.from_str helper 2021-05-28 05:34:21 -04:00
Rapptz ff36aedf7b Add support for reading SelectMenu components from messages 2021-05-28 05:34:21 -04:00
Rapptz 8bd17ede47 Move ActionRow to its own separate type split from Component 2021-05-28 02:11:10 -04:00
Rapptz aeb2cfb573 Add private get_slots utility to get slots through MRO 2021-05-28 01:56:48 -04:00
Rapptz 263f45d05b Fix View.wait not returning when it times out
This also makes it so it returns the reason why the wait finished.
2021-05-28 00:53:28 -04:00
Rapptz 3f60997630 Add a timeout callback for detecting when a View times out 2021-05-28 00:53:28 -04:00
Rapptz 97f308d219 Add View.remove_item and View.clear_items 2021-05-28 00:53:28 -04:00
Rapptz 3453992ce6 Add View.interaction_check for interaction pre-conditions 2021-05-28 00:53:28 -04:00
Rapptz 65db814d4a Add a way to wait for a view to finish its interactions 2021-05-27 23:31:48 -04:00
Rapptz 1954861668 Add warning for comparing with role positioning 2021-05-27 21:11:17 -04:00
Rapptz fc64ffdabd Allow passing multiple embeds in InteractionResponse.edit_message 2021-05-27 21:07:28 -04:00
Rapptz fbafe20e51 Allow View to be instantiated without subclassing 2021-05-27 01:41:18 -04:00
Rapptz c89882441c Fix typings for resolved channels in slash commands 2021-05-27 00:53:14 -04:00
Rapptz 7584834dd4 Only automatically defer if no response was given in callback 2021-05-27 00:53:14 -04:00
Rapptz 3b83f60b35 Add support for setting interaction responses 2021-05-27 00:53:14 -04:00
Rapptz 85758a75b3 Add interaction related endpoints to async webhook 2021-05-27 00:53:14 -04:00
Rapptz d42c63e186 Fix some type hints in interactions 2021-05-27 00:53:14 -04:00
Rapptz 5e96ad9261 Force button style to link if a URL is passed 2021-05-27 00:53:14 -04:00
Rapptz 80fd222ca0 Add aliases for button style colours 2021-05-27 00:53:14 -04:00
Rapptz eda6680377 Rename enums to use official API naming 2021-05-27 00:53:14 -04:00
Rapptz cc800796a2 Properly guard for DMs in interaction creation
Fix #6794
2021-05-27 00:53:14 -04:00
Rapptz ed9badcddf Make Item and Button generic over the underlying view 2021-05-27 00:53:14 -04:00
Rapptz 4c0ebc9221 Change the way callbacks are defined to allow deriving
This should hopefully make these work more consistently as other
functions do.
2021-05-27 00:53:14 -04:00
Rapptz cc56f31bcd Fix emoji not showing up in button component 2021-05-27 00:53:13 -04:00
Rapptz 98570793e4 Add initial support for buttons and components 2021-05-27 00:53:13 -04:00
Rapptz f56543df15 [commands] Remove function call indirection when checking author 2021-05-25 20:53:44 -04:00
Rapptz 3c90f16bf0 Fix cached_slot_property typings again 2021-05-23 21:30:44 -04:00
Rapptz 81b259ab36 Fix sending arrays with nulls in them when changing presences 2021-05-16 07:15:53 -04:00
Rapptz de965c2bf5 Simplify SnowflakeList type hints 2021-05-06 08:23:18 -04:00
Rapptz 2e12f6de9c Typehint File 2021-05-06 08:15:51 -04:00
Rapptz 1bf7aadf94 Typehint emoji classes 2021-05-05 23:48:36 -04:00
Rapptz 7bad27d215 Fix SnowflakeList typings 2021-05-05 23:33:11 -04:00
Rapptz ca92f37f18 Fix typings in message.py 2021-05-05 23:05:15 -04:00
Rapptz 81004369dc Add Guild.fetch_channel 2021-05-05 14:26:33 -04:00
Rapptz 598057ee79 Add Permissions.manage_events 2021-05-05 14:16:39 -04:00
Rapptz c31946f29f Type hint GuildChannel and don't make it a Protocol
This reverts GuildChannel back into a base class mixin.
2021-05-05 11:14:58 -04:00
Rapptz b32ad3de37 Fix AuditLogEntry.target being incorrect for bulk message delete
Fixes #6851
2021-05-04 22:03:20 -04:00
Rapptz e3037b32d5 Add changelog for v1.7.2 2021-05-02 23:39:21 -04:00
Rapptz cd7357b93a Add classproperty helper utility
This is apparently a 3.9+ only addition
2021-05-02 08:05:52 -04:00
Rapptz b0ec22065e Add Client.create_dm 2021-05-01 13:16:57 -04:00
Rapptz 83611edb66 Fix supressing messages leading a 400 error
This only makes it so allowed_mentions are passed if the message is
authored by the bot itself.
2021-05-01 11:46:27 -04:00
Rapptz 135a7e9e5a Reformat message.py file 2021-05-01 09:54:19 -04:00
Rapptz d940486552 Add types to PartialMessage 2021-05-01 09:48:37 -04:00
Rapptz 4c97b8efdd Fix typings for utils._parse_ratelimit_header
A CIMultiDict is not a Dict but a Mapping
2021-05-01 09:24:47 -04:00
Rapptz 60c1240849 Fix SyncWebhook exception case causing attribute errors 2021-05-01 09:24:40 -04:00
Rapptz 02e21a8905 Fix sending multipart data with SyncWebhook
Fixes #6825
2021-05-01 09:21:39 -04:00
Rapptz 1a8d63d54f [commands] Remove Flag related delimiter and prefix error 2021-04-30 03:29:44 -04:00
Rapptz 58274eafbc [commands] Fix Generics causing other typing converters to fail 2021-04-30 01:23:56 -04:00
Rapptz 7b8db49efe Fix utils.MISSING not evaluating to True in implicit bool contexts 2021-04-30 01:05:01 -04:00
Rapptz 3b6a2b9e85 [commands] Fix Generic subcalsses used as a converter 2021-04-29 02:43:54 -04:00
Rapptz 9f3551926a Split annotation resolution to discord.utils 2021-04-27 05:48:27 -04:00
Rapptz 69da87f455 [commands] Disallow float/complex in Literal but allow None
Type checkers (both mypy and pydantic) apparently don't like it
2021-04-27 05:48:27 -04:00
Rapptz d60689a983 Properly change abc.User.avatar type to Asset 2021-04-25 23:30:30 -04:00
Rapptz c250b9fc02 [commands] Fix regression with Union converters not working
This was due to the Literal restriction from earlier.
2021-04-24 09:33:35 -04:00
Rapptz 185b554a56 [commands] Disallow complicated Literal types 2021-04-24 09:12:28 -04:00
Rapptz fb024546ff [commands] Fix Literal converter not working within flags 2021-04-24 08:55:55 -04:00
Rapptz 1c312a158a [commands] Add FlagConverter.__iter__ 2021-04-24 08:53:36 -04:00
Rapptz 8e9860077d [commands] Fix flag detection code in get_flags 2021-04-23 02:23:07 -04:00
Rapptz 275a754abd Add support for editing message attachments 2021-04-21 23:45:06 -04:00
Rapptz 6065329c0e [commands] Avoid creating unnecessary flag mapping copies 2021-04-20 08:02:40 -04:00
Rapptz 15bfdf66b2 [commands] Default construct flags if they're not passed as parameters
This only applies if and only if the flag can be default constructible.
Ergo, all the flags are optional or not required.
2021-04-20 08:00:47 -04:00
Rapptz ac7588f735 Fix some typings in utils 2021-04-20 04:35:53 -04:00
Rapptz 212d308835 [commands] Some minor clean up of the flag converter documentation
Fix #6761
2021-04-19 22:52:29 -04:00
Rapptz 18bf3d3a7d [commands] Actually expose the FlagError base error 2021-04-19 10:27:24 -04:00
Rapptz ddb71e2aed [commands] Initial support for FlagConverter
The name is currently pending and there's no command.signature hook
for it yet since this requires bikeshedding.
2021-04-19 10:25:08 -04:00
Rapptz 1c64689807 Remove lingering User.avatar documentation 2021-04-19 05:35:33 -04:00
Rapptz c54e43360b [commands] Add run_converters helper to call converters 2021-04-19 04:46:02 -04:00
Rapptz 09f3f2111c [commands] Add Context.current_parameter 2021-04-19 04:41:32 -04:00
Rapptz 3c8d3ab078 Add a third overload to parse_time
Apparently this behaviour is intended in Pyright
https://github.com/microsoft/pyright/issues/1772

Despite mypy behaving as intended.
2021-04-19 02:12:41 -04:00
Rapptz bee6402d84 Fix utils.find predicate typing to accept Any 2021-04-19 02:11:38 -04:00
Rapptz 417353da4d Fix up _unique and valid_icon_size implementations 2021-04-18 09:07:26 -04:00
Rapptz b35596f7c8 Add typings for discord.utils 2021-04-18 08:43:09 -04:00
Rapptz cc4dced7c0 Cleanup some of the prior typings for cached_slot_property 2021-04-18 08:07:11 -04:00
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