Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz aa74238053 Reorganise documentation for interactions 2022-03-04 21:17:27 -05:00
Rapptz 41f2792ed9 Change Interaction.user to not be Optional
This has potential to be a breaking change and Discord could definitely
royally screw this over in the future. However, as far as I can tell
every interaction has either a User or a Member so this change should
be kosher. I'm unaware of any interaction, even in the future, where
this is not true.

I hope these are not my famous last words.
2022-03-02 02:11:04 -05:00
Rapptz 45dc3d3df9 Rename start_embedded_activities to use_embedded_activities 2022-03-02 01:51:47 -05:00
Rapptz f80f81c395 Add Member.resolved_permissions attribute for interaction members 2022-03-02 01:39:39 -05:00
Rapptz f435d160dd Add Interaction.client property 2022-03-01 08:11:22 -05:00
Rapptz 6110fe5b1c Add fallback overloads for CommandTree 2022-03-01 07:54:14 -05:00
Rapptz 50ef8e8893 Fix NameError when checking for File instances 2022-03-01 07:21:16 -05:00
Rapptz d44328d3ea Remove region from Guild.__slots__
This also fixes up some docstrings
2022-03-01 05:54:26 -05:00
Rapptz bb5ed4947d Add regression test for optional normalisation
Also runs black on the tests file
2022-03-01 05:54:26 -05:00
Rapptz 26fc694189 Fix Optional normalisation not working properly 2022-03-01 05:42:44 -05:00
Rapptz ae1aaac5a7 Add support for autocomplete 2022-03-01 05:42:44 -05:00
Rapptz 4e04dbdec7 Add support for choice option parameters
This implements it in three different ways:

* The first is using typing.Literal for quick and easy ones
* The second is using enum.Enum for slightly more complex ones
* The last is using a Choice type hint with a decorator to pass
  a list of choices.

This should hopefully cover most use cases.
2022-03-01 05:42:44 -05:00
Rapptz e5e5b61ad0 Add support for range validation in options 2022-03-01 05:42:44 -05:00
Rapptz 3cf3065c02 Add support for annotation transformers
This facilitates the "converter-like" API of the app_commands
submodule. As a consequence of this refactor, more types are supported
like channels and attachment.
2022-03-01 05:42:44 -05:00
Rapptz c10ed93cef Add support for error handlers 2022-03-01 05:42:44 -05:00
Rapptz cdb7b3728e Fix potential conflicts in snowflake keys
This can happen on really old channels with the same ID as the guild ID
and having a command with both a role and a channel.
2022-03-01 05:42:44 -05:00
Rapptz dffd72da58 Add support for context menu commands 2022-03-01 05:42:44 -05:00
Rapptz 0d2db90028 Implement slash commands 2022-03-01 05:35:29 -05:00
Rapptz 3d0c506124 Fix test_resolve_invite due to changed type 2022-03-01 01:07:13 -05:00
Rapptz 8226f0df2c [commands] Require number of parameters at instantiation time
This allows it to bypass annotation evaluation for arguments that don't
matter like self and context.
2022-02-25 10:55:45 -05:00
Rapptz 0b5c3cf256 [types] Fix types for channels and interactions 2022-02-25 10:44:53 -05:00
Rapptz e13997f35e Remove region parameters from HTTPClient 2022-02-25 10:44:37 -05:00
Rapptz 29c26bc0a6 [types] Fix application command choice typings 2022-02-23 17:38:52 -05:00
Rapptz 0ed745f5ae Remove regular context manager support from Typing 2022-02-23 16:05:08 -05:00
Rapptz c7df838a39 Remove AuditLogDiff.region references 2022-02-23 10:14:36 -05:00
Rapptz 0eb2f32399 Remove VoiceRegion enum and Guild.region attribute
This has been marked deprecated by Discord and it was more or less
usually out of date due to the pace they added them anyway.
2022-02-23 10:03:13 -05:00
Rapptz cc21872072 Add Locale enum 2022-02-23 08:41:50 -05:00
Rapptz 550bdda51b Temporarily disable artefact uploading 2022-02-22 06:54:20 -05:00
Rapptz 8d52ddaff6 Fix remaining type errors in main package
This doesn't fix the type errors in the ext packages though.
2022-02-22 04:19:46 -05:00
Rapptz 3e90664cf9 Fix signature for VoiceClient 2022-02-22 04:09:48 -05:00
Rapptz 30e7a2e937 Fix a few more type errors 2022-02-21 23:31:18 -05:00
Rapptz d01e73fca5 Document more uses of type ignore 2022-02-21 23:08:26 -05:00
Rapptz 51b79411e3 Fix and document type ignores in client 2022-02-21 22:52:24 -05:00
Rapptz 6c2ea4f0a0 Fix some type ignores in backoff and channel 2022-02-21 22:43:19 -05:00
Rapptz c7c6d74d8d Fix type errors in the abc module 2022-02-21 22:38:36 -05:00
Rapptz 24b729ed0d Fix up some type ignores in state.py 2022-02-21 22:28:32 -05:00
Rapptz 5589934a59 Fix NameError in utils.get 2022-02-20 11:22:40 -05:00
Rapptz c406951532 Fix typing errors in Guild.audit_logs 2022-02-20 11:21:07 -05:00
Rapptz f2600995e8 Fix NameError due to missing import 2022-02-20 11:04:50 -05:00
Rapptz e56f64218a Rename default_value to default for TextInput 2022-02-20 11:04:50 -05:00
Rapptz 4f85494c11 Fix Sequence inheritance in 3.8 2022-02-20 08:54:15 -05:00
Rapptz fbb8a35de6 Relocate and fix versionchanged in find and get 2022-02-20 08:46:20 -05:00
Rapptz a1e64dd657 Fix Sphinx build failing
TextInput was missing in `__all__`.
2022-02-20 08:31:16 -05:00
Rapptz 88b520b5ab Reformat code using black
Segments where readability was hampered were fixed by appropriate
format skipping directives. New code should hopefully be black
compatible. The moment they remove the -S option is probably the moment
I stop using black though.
2022-02-20 08:04:58 -05:00
Rapptz af8e74d327 Allow deferring modal_submit interactions
This also adds a thinking boolean to toggle which type of deferring
is done when there can be ambiguity.
2022-02-20 05:23:09 -05:00
Rapptz 015072b7fd Remove wrong import 2022-02-19 22:36:34 -05:00
Rapptz e14153ddcb Fix nonce being sent even when not specified 2022-02-18 23:15:46 -05:00
Rapptz cfdccbd5ff Add support for AppInfo.flags 2022-02-18 09:00:09 -05:00
Rapptz 92d1b4cd2b Refactor interaction response handling to support files
This adds support for file sending and allowed_mentions
2022-02-18 08:10:38 -05:00
Rapptz 770a5fee9c Remove PartialMessage.edit duplicated code
Now that Message.edit returns the message this duplication is no longer
needed.
2022-02-18 07:48:43 -05:00
Rapptz 9c066a8cf6 Refactor internal message sending and editing parameter passing
This reduces some repetition in many functions and is ripped out of
the webhook code. This also removes the unused HTTP functions for
interaction responses since those belong in the webhook code rather
than the HTTPClient.
2022-02-18 07:47:59 -05:00
Rapptz 2c89202214 Fix some minor typing issues 2022-02-17 09:38:12 -05:00
Rapptz 3113036a54 Fix typing for utils.as_chunks 2022-02-17 09:37:58 -05:00
Rapptz b389596f26 Fix typing of User._accent_colour 2022-02-17 09:20:08 -05:00
Rapptz c22f058fa0 Fix views not being removed upon timeout 2022-02-17 07:35:12 -05:00
Rapptz 4fa2a6e63e Fix memory leak in webhooks not deallocating locks 2022-02-17 07:29:06 -05:00
Rapptz 940bdb988a Revert "Move global user storage from WeakValueDictionary to dict"
This reverts commit cb2363f0fd.

This lead to memory leaks due to insufficient tracking, assuming that
the members intent was enabled.
2022-02-17 07:26:10 -05:00
Rapptz 8b96822ca1 Add pyproject.toml 2022-02-17 06:58:05 -05:00
Rapptz 8e896100d5 Remove old README link 2022-02-17 06:29:44 -05:00
Rapptz 45d498c1b7 Fix README link 2021-08-27 20:59:11 -04:00
Rapptz 7b87d2dec0 Add gist to README 2021-08-27 20:55:36 -04:00
Rapptz 29b808d33f Change avatar_url type hint to Any instead of str 2021-08-27 05:41:00 -04:00
Rapptz dd7d4b8e7f Use a thread values view when constructing TextChannel.threads
Avoids an accidental O(n^2) situation.
2021-08-25 20:42:21 -04:00
Rapptz 2d8f299b6b Use MISSING instead of None for HelpCommand.context
It's basically just late-init
2021-08-25 09:53:55 -04:00
Rapptz 3382d2e9e8 Update documentation on select limits 2021-08-25 09:21:49 -04:00
Rapptz 539577a2dd Bring back ParamSpec in utils 2021-08-25 05:30:41 -04:00
Rapptz 4f8e67998a Fix copy_doc typing to not error due to overloaded ParamSpec 2021-08-25 03:41:24 -04:00
Rapptz 848d752388 Change User.avatar to be Optional[Asset] instead of Asset
This change was needed to allow users to more easily check if an
uploaded avatar was set using `if user.avatar:` rather than the
admittedly clunky `if user.avatar != user.default_avatar.

The old behaviour with a fallback is still useful for actual display
purposes, so it has been moved over to the new `User.display_avatar`
attribute. This also has symmetry with the newly added
`Member.display_avatar` attribute.
2021-08-25 01:43:09 -04:00
Rapptz 78598d59d7 Change on_socket_raw_receive to dispatch right before JSON conversion 2021-08-25 01:26:37 -04:00
Rapptz ef79305961 Exclude private functions from VoiceClient 2021-08-24 22:49:46 -04:00
Rapptz 9a61a5a063 Typehint Colour.__init__ parameter 2021-08-24 03:15:28 -04:00
Rapptz 565b41b0b2 Fix Embed.from_dict typing being too strict for a public function
The Embed TypedDict is not publicly accessible so would always lead
to type errors upon usage.
2021-08-24 03:15:06 -04:00
Rapptz 769db38401 Fix typing error in sticker edit 2021-08-23 23:52:45 -04:00
Rapptz c82739a3be Fix some typings in HTTPClient to not take strict payload types 2021-08-23 23:52:16 -04:00
Rapptz 8306b9f6af Add type hint for suppress parameter 2021-08-23 23:51:40 -04:00
Rapptz 490bbffc93 Remove in-place edits and return fresh instances instead
Fixes #4098
2021-08-23 23:46:50 -04:00
Rapptz 9d4fa0341e Fix typing of move role position payload parameter 2021-08-23 23:44:20 -04:00
Rapptz cff9ca0288 Fix typings for member HTTP methods 2021-08-23 23:44:20 -04:00
Rapptz 9dd86bbcb3 Add type hints to AsyncWebhookAdapter methods 2021-08-23 23:44:20 -04:00
Rapptz 8bbb8f6db9 Use getattr for default_auto_archive_duration in Message.create_thread
Some channel types do not have this attribute so a fallback is
necessary to prevent the attribute access from erroring.
2021-08-23 23:44:20 -04:00
Rapptz b8898c7788 Fix user.py typings and reformat file 2021-08-22 07:38:07 -04:00
Rapptz d17551f51f Fix typing for private channel by user lookup 2021-08-22 07:36:39 -04:00
Rapptz 4a6670c062 Add missing typehint for PermissionOverwrite.pair
Technically inferred but better to be explicit
2021-08-22 07:29:30 -04:00
Rapptz d7a4230007 Fix Member.guild_avatar docstring 2021-08-22 07:07:26 -04:00
Rapptz 2e52059555 [types] Add avatar to Member typings 2021-08-22 06:55:53 -04:00
Rapptz 49cf959784 Fix Member._avatar not updating in member update events 2021-08-22 06:54:38 -04:00
Rapptz 69f578abdc Fix webhook typings and use PartialMessageable instead of Object 2021-08-22 04:32:15 -04:00
Rapptz 1b5c206279 Fix broken rename from pyright 2021-08-22 03:05:22 -04:00
Rapptz d2dd31de63 Make __main__ template strings private 2021-08-22 02:42:08 -04:00
Rapptz d0c295b595 Add explicit type annotation to version_info and reformat 2021-08-22 02:38:51 -04:00
Rapptz e1e3e298b5 Typehint async_context global variable 2021-08-22 02:37:40 -04:00
Rapptz 4a72201617 Make json conversion functions private 2021-08-22 02:35:58 -04:00
Rapptz ea2d972666 Make global log variable in modules private 2021-08-22 02:33:51 -04:00
Rapptz 6268cad402 ResponseType type alias is private 2021-08-22 02:28:37 -04:00
Rapptz 8d80259a80 Reformat shard.py 2021-08-21 14:53:19 -04:00
Rapptz 311eac97b0 Reformat state.py 2021-08-21 14:48:22 -04:00
Rapptz d5033b04a2 Don't clear views in READY 2021-08-21 14:47:08 -04:00
Rapptz fbc4a51c35 Fix on_typing not dispatching for threads 2021-08-20 20:09:18 -04:00
Rapptz 9246bbc8e3 [commands] De-indent after hook call
Close #7412
2021-08-20 20:08:27 -04:00
Rapptz 63434fbfd9 Fix some type hints in user.py 2021-08-18 01:59:06 -04:00