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
Rapptz
68453c7bed
Add Thread.members and Thread.fetch_members
2021-08-18 01:58:16 -04:00
Rapptz
b73f02b9c3
Remove deprecated TextChannel.active_threads for Guild version
...
This also fills in the ThreadMember data from the endpoint
2021-08-18 01:52:24 -04:00
Rapptz
0df3f51a0b
Partially type-hint state.py
...
This is just work to get started. A more complete type hint will come
later.
2021-08-18 01:52:24 -04:00
Rapptz
17f0b59c76
Move explanation note for type ignore above the offending line
2021-08-18 01:24:15 -04:00
Rapptz
28ed599345
Fix Template.source_guild typehint
2021-08-18 01:23:17 -04:00
Rapptz
3b4c6269be
Fix documentation for Message.is_system
...
Also fixes some formatting
2021-08-18 01:01:24 -04:00
Rapptz
feae059c68
Remove coverage note from the documentation and README
...
A lot of people seem to point out this line as a gotcha when certain
features haven't been released yet. It's been more of a pain-point
than a marketing win since people seem to be unaware of the way this
project is developed.
Fix #7401
2021-08-15 14:01:59 -04:00
Rapptz
1e17b7fcea
Rename start_thread to create_thread for consistency
2021-08-12 00:30:50 -04:00
Rapptz
fda543c844
Fix incorrect indent
2021-08-11 06:25:22 -04:00
Rapptz
08a4db3961
Revert "Refactor Client.run to use asyncio.run"
...
This reverts commit 6e6c8a7b28 .
2021-08-11 02:16:22 -04:00
Rapptz
6e6c8a7b28
Refactor Client.run to use asyncio.run
...
This also adds asynchronous context manager support to allow for
idiomatic asyncio usage for the lower-level counterpart. At first
I wanted to remove Client.run but I figured that a lot of beginners
would have been confused or not enjoyed the verbosity of the newer
approach of using async-with.
2021-08-10 23:00:24 -04:00
Rapptz
dc9c224b54
Undo coercion of partial DMChannel to PartialMessageable
2021-08-10 22:10:45 -04:00
Rapptz
1c40d43fd1
Remove unused log lines in HTTPClient
2021-08-10 09:28:54 -04:00
Rapptz
66871f329e
Interaction.channel can be a PartialMessageable rather than Object
...
This allows it to work just fine in DMs
2021-08-10 09:28:14 -04:00
Rapptz
1279510194
Add support for PartialMessageable instances
...
This allows library users to send messages to channels without fetching
it first.
2021-08-10 09:24:49 -04:00
Rapptz
58ca9e9932
Add TextChannel.default_auto_archive_duration
2021-08-02 04:36:02 -04:00
Rapptz
0cc67e58ed
Fallback to None message_id searches in View dispatch
...
Not all persistent views have an associated message_id attached to
them.
Fix #7319
2021-08-01 03:30:45 -04:00
Rapptz
035d110837
Fix debug event toggle not triggering for raw receive
2021-08-01 02:42:11 -04:00
Rapptz
b87d306a70
Remove unused variable in view
2021-08-01 02:40:11 -04:00
Rapptz
e795d341e7
Change View dispatch mechanism to be keyed by message_id as well
...
If different persistent view instances are used within different
message_ids their callbacks will get called without differentiating
between them, leading to potential issues such as 404 errors. This
change makes it so N views with custom IDs bound to N message_ids
will no longer conflict with one another.
2021-07-31 23:08:05 -04:00
Rapptz
f72350199d
Fix typo in TextChannel.start_thread
2021-07-31 22:55:32 -04:00
Rapptz
b640493300
Add enable_debug_events parameter to enable expensive debug events
...
This should allow less dispatching during heavy gateway event streams.
2021-07-31 20:35:28 -04:00
Rapptz
2de0398d66
Cast removed thread member IDs to int
2021-07-31 20:22:51 -04:00
Rapptz
e2250d402e
Add on_socket_event_type event
2021-07-31 20:12:40 -04:00
Rapptz
2cb5ce981e
FIx on_thread_member_remove passing in None
2021-07-31 19:43:05 -04:00
Rapptz
41f3998a08
Fix on_thread_member_remove not dispatching
2021-07-31 19:40:47 -04:00
Rapptz
3a451c9c65
Change payload to use sticker_ids instead of sticker_items
2021-07-30 23:19:25 -04:00
Rapptz
655bf25cc8
Document TypeError raise in lottie sticker
2021-07-30 23:18:03 -04:00
Rapptz
6beef898c6
Rename instances of nitro to premium
2021-07-30 23:10:36 -04:00
Rapptz
658b61d468
Fix SyncWebhook not working across thread barriers
...
Fix #7310
2021-07-30 22:59:23 -04:00
Rapptz
ecf239d2a2
Fix user cache acting incorrectly with evictions
...
The first issue involved copied users which would lead to user updates
causing faster evictions of the cache than was expected.
The second issue involved users that weren't bound to an internal
lifetime eviction policy. These users would not get evicted.
For example, a user without mutual guilds or being part of the internal
cache in general (messages, DMs) would never end up being evicted for
some strange reason. To handle this case, store_user would get a
counterpart named create_user which would create a user without
potentially storing them in the cache. That way only users with a
bound lifetime within the library would be stored.
2021-07-29 01:43:23 -04:00
Rapptz
0d3bd3083c
Add Guild.get_channel_or_thread helper method
...
The name might change in the future, unsure.
2021-07-29 01:22:07 -04:00
Rapptz
731a8816bb
[commands] Check for ctx.guild instead of abc.GuildChannel
2021-07-28 23:53:24 -04:00
Rapptz
dac0267e28
Allow creating a public thread without a starter message
2021-07-28 23:50:02 -04:00
Rapptz
13251da8ce
Use a default value for StageInstance.discoverable_enabled
...
Apparently this caused crashes
2021-07-28 20:02:45 -04:00
Rapptz
9d25bb454b
Fix recursive inheritance in BaseUser
2021-07-28 20:01:44 -04:00
Rapptz
f153154b7a
Undocument Item.width
...
It doesn't serve much of a purpose to users
2021-07-09 09:14:01 -04:00
Rapptz
1a4e73d599
[commands] Get guild_id from message link for message converters
2021-07-09 09:14:01 -04:00
Rapptz
8fb998b599
Refactor utcfromtimestamp to use fromtimestamp(..., tz=utc)
2021-07-09 04:20:45 -04:00
Rapptz
826ce101fd
Change WEBHOOK_UPDATE to use guild information from gateway
...
This changes the lookup from unnecessary O(n) to two amortised O(1)
lookups. This event pretty much always has a guild_id so the original
code was always a performance bottleneck.
2021-07-08 21:53:26 -04:00
Rapptz
b4e39668fb
Change CHANNEL_PINS_UPDATE to use guild information from gateway
...
This changes the channel lookup from O(n) to two amortised O(1) lookups
2021-07-08 21:51:21 -04:00
Rapptz
af8742a911
Use a specific tag type for member and user comparisons
...
The previous protocol based tag type caused significant overhead
(in the magnitude of seconds). Removing this should simplify object
creation by removing typing.Generic from the __mro__
2021-07-08 10:17:44 -04:00
Rapptz
8df35c83a9
Remove extraneous dict assignment from view store
2021-07-07 20:19:17 -04:00
Rapptz
74e1ab09a0
Remove channel type coercion in factory methods
...
This caused unnecessary isinstance checks which were slowing down
channel creation at scale
2021-07-07 20:19:17 -04:00
Rapptz
03cd6ff433
Remove calls to gc.collect in ConnectionState
...
For some bots this was actually a performance bottleneck, might as
well remove it if it causes bad performance
2021-07-07 20:19:17 -04:00
Rapptz
99b8ae35ba
Change _Overwrite to get dict entries rather than mutate
2021-07-07 20:19:17 -04:00
Rapptz
cb2363f0fd
Move global user storage from WeakValueDictionary to dict
...
Profiling showed that WeakValueDictionary caused rather significant
and noticeable slowdowns during startup. Since the only thing it was
used for was to automatically remove the key from the mapping when
the reference count reaches zero, the same could theoretically be
accomplished by using the __del__ special method. There is a chance
that this could lead to a memory leak since the __del__ method is not
always called, but the only instances of this happening are during
interpreter shutdown to my knowledge and at that point the mapping
is the least of my concern.
2021-07-07 20:19:17 -04:00
Rapptz
88d825a803
Allow use of orjson instead of json
...
The difference in speed seems negligible at start up, which is when
most time is taken for actually parsing JSON. I could potentially be
missing something but profiling didn't point to any discernable
difference.
2021-07-07 20:19:17 -04:00
Rapptz
c1c6457598
Separate member_update and presence_update events
2021-07-04 21:40:30 -04:00
Rapptz
c2acb0a114
Update README to point to 3.8 requirement
2021-07-04 21:26:27 -04:00
Rapptz
feb0f7f29d
Add SelectOption.__str__
2021-07-04 21:20:48 -04:00
Rapptz
49f8073262
Fix Permission serialisation in audit logs
...
Fix #7171
2021-07-04 19:13:21 -04:00
Rapptz
750ba88f2c
Fix typing errors with Client
2021-07-04 07:55:20 -04:00
Rapptz
074f34a5fa
Specify View timeouts is in seconds
2021-07-04 07:07:38 -04:00
Rapptz
7d9074db8a
Fix type errors and potentially unbound code in http.py
2021-07-04 06:18:34 -04:00
Rapptz
4152819a3c
Ignore linting error when accessing Python 3.10 unions
2021-07-04 05:55:29 -04:00
Rapptz
5d798aa5e6
Fix some typing errors and reformat enums.py
2021-07-04 05:32:26 -04:00
Rapptz
828e47d83f
Document on_thread_join also applying to thread creation
2021-07-04 04:55:12 -04:00
Rapptz
23a69144b6
Add a warning in on_interaction
2021-07-04 03:06:36 -04:00