Commit Graph
100 Commits
Author SHA1 Message Date
Rapptz 671a19a24a [commands] Ensure cooldowns are properly copied. 2019-06-12 23:40:43 -04:00
Rapptz e00635fba7 Version bump to 1.2.2 2019-06-09 21:51:43 -04:00
Rapptz 3730e66d37 Crowdin translation sync 2019-06-09 08:20:43 -04:00
Rapptz 855a6c5b59 Fix descriptor detection in enum code. 2019-06-09 08:13:29 -04:00
Rapptz 7980213745 Version bump to 1.2.1 2019-06-09 02:18:43 -04:00
Rapptz 2b761508f1 Disallow deleting of enum attributes. 2019-06-09 02:13:40 -04:00
Rapptz 6931189b92 Add EnumMeta.__reversed__ just in case someone does this.
I sure hope not.
2019-06-09 02:02:06 -04:00
Rapptz a92b4c2093 Add EnumMeta.__len__ to not break user avatar code. 2019-06-09 01:59:23 -04:00
Rapptz af4e3ad79b Some documentation touch-ups and missing stuff in the changelog. 2019-06-09 01:24:41 -04:00
Rapptz d7814cfb25 Remove unused import. 2019-06-09 01:06:20 -04:00
Rapptz a8f0a03247 Version bump to 1.2.0 2019-06-09 00:39:38 -04:00
Rapptz 655aa39603 Fix reference typo in SystemChannelFlags 2019-06-09 00:38:46 -04:00
Rapptz 7e2da1c93b Publicly expose a type property for all channels.
Fix #2185
2019-06-09 00:23:22 -04:00
Rapptz 991140eebe Replace Enum with an internal one for significant speed improvements.
This has been a massive pain point for me personally due to the poor
design of the Enum class leading to the common use cases used in the
library being significantly slow. Since this Enum is not public facing
in terms of *creation*, I can only implement the APIs that are used
when *accessing* them.

This Enum is a drop-in replacement to the pre-existing enum.Enum class
except it comes with significant speed-ups. Since this is a lot to go
over, I will let the numbers speak for themselves:

In [4]: %timeit enums.try_enum(enums.Status, 'offline')
263 ns ± 34.3 ns per loop (7 runs, 1000000 loops each)
In [5]: %timeit NeoStatus.try_value('offline')
134 ns ± 0.859 ns per loop (7 runs, 10000000 loops each)

In [6]: %timeit enums.Status.offline
116 ns ± 0.378 ns per loop (7 runs, 10000000 loops each)
In [7]: %timeit NeoStatus.offline
31.6 ns ± 0.327 ns per loop (7 runs, 10000000 loops each)

In [8]: %timeit enums.Status.offline.value
382 ns ± 15.2 ns per loop (7 runs, 1000000 loops each)
In [9]: %timeit NeoStatus.offline.value
65.5 ns ± 0.953 ns per loop (7 runs, 10000000 loops each)

In [10]: %timeit str(enums.Status.offline)
630 ns ± 14.8 ns per loop (7 runs, 1000000 loops each)
In [11]: %timeit str(NeoStatus.offline)
253 ns ± 3.53 ns per loop (7 runs, 1000000 loops each)

In [12]: %timeit enums.Status('offline')
697 ns ± 8.42 ns per loop (7 runs, 1000000 loops each)
In [13]: %timeit NeoStatus('offline')
182 ns ± 1.83 ns per loop (7 runs, 10000000 loops each)
2019-06-09 00:06:34 -04:00
Rapptz 8bf0482af5 Fix exception hierarchy documentation. 2019-06-08 21:23:42 -04:00
Rapptz c97b097f07 Document new Guild.features 2019-06-07 22:26:05 -04:00
Rapptz f84219c2b2 Improve performance of parsing MESSAGE_UPDATE and MESSAGE_CREATE events
Embed edits are no longer special cased in the dispatch code, which
could lead to on_message_edit being called more often than it used to
be called. I am not sure on the general impact on that being removed.

Fixes #2195
2019-06-07 22:18:01 -04:00
Rapptz 320dbc0618 Add support for system channel flags 2019-06-06 22:30:02 -04:00
Rapptz fcf02414fe Fix stray colon in Asset related docstrings 2019-06-04 19:06:31 -04:00
Rapptz 9674055c2a Add support for animated guild icons. 2019-06-04 19:04:44 -04:00
Rapptz 5dce3410e6 Add support for new message types related to premium guilds. 2019-06-04 18:30:47 -04:00
Rapptz 2b27a7a9d5 Add Member.premium_since to denote member boost date. 2019-06-04 18:30:46 -04:00
Rapptz 8e80eee0d1 Add Emoji.available field 2019-06-04 18:30:46 -04:00
Rapptz a048815c60 Add Guild.premium_subscription_count 2019-06-04 18:30:46 -04:00
Rapptz e40c68b75a Add Guild.premium_tier and corresponding limits. 2019-06-04 18:30:46 -04:00
Rapptz 90ae3f396c Probably fix indentation. 2019-05-30 19:39:50 -04:00
Rapptz bfb1edcc05 Update readthedocs.yml to v2 configuration file. 2019-05-30 19:33:14 -04:00
Rapptz 483aa5465d Properly handle compute_prune_count in prune members endpoint. 2019-05-30 18:01:03 -04:00
Rapptz 00a0856cc4 Use a dict instead of getattr for parsing events.
Probably not a significant difference but might as well use it here.
The basic idea is to cache the getattr calls instead of repeatedly
doing it (since they're around 105ns on my machine). The dictionary
lookup is about 41ns on my machine.

The next step in speeding up library code some more should be in
the parser bodies themselves but that's a problem to tackle another
day.
2019-05-29 01:22:53 -04:00
Rapptz 0622e18cb9 Speed-up utils.get for the common cases 2019-05-29 00:45:48 -04:00
Rapptz 0d72ac3bb6 Ensure message links resolve in the Messageable.pins note. 2019-05-27 04:05:51 -04:00
Rapptz 96dc6f0c11 Add note that Messageable.pins does not contain Message.reactions
Fix for #2189
2019-05-27 04:04:06 -04:00
Rapptz 2cd6d771ec Make __repr__ slightly more detailed and add a few missing ones.
This includes raw events (which didn't have any) and a few other
types that were missing them. Upon review some more useful fields were
added to the repr output which would be more useful during debugging.
2019-05-26 02:32:47 -04:00
Rapptz ab6dd2a27a Add note for Message.tts
Fix #2186
2019-05-25 06:17:52 -04:00
Rapptz 3c387e9031 Use attrgetter to speed up Member attribute access by 2x. 2019-05-25 03:14:35 -04:00
Rapptz d96b8a0b80 Add Discord error code to HTTPException message. 2019-05-24 04:23:06 -04:00
Rapptz 964b97aa30 Add table showing what methods get invite attributes. 2019-05-19 19:17:30 -04:00
Rapptz 82b54933e2 Add asyncio.Task subclass for better __repr__ for events. 2019-05-19 19:17:29 -04:00
Rapptz 6bc9d7c01a [tasks] Add indicator for internal task failure
Fixes #2151
2019-05-13 22:10:38 -04:00
Rapptz a4a362b4c7 [tasks] Log exception when something failed to logging. 2019-05-13 22:08:31 -04:00
Rapptz 49a7e58d17 [tasks] Keep retrying before gracefully exiting. 2019-05-12 01:31:09 -04:00
Rapptz 4eead39b3c [tasks] Add Loop.stop to gracefully stop a task.
Updated docs will follow shortly.
2019-05-12 01:04:24 -04:00
Rapptz bcdecd4e07 [tasks] Reset iteration count when loop terminates. 2019-05-12 00:49:19 -04:00
Rapptz 8c353a5596 Change version to v1.2.0a for development purposes. 2019-05-11 18:20:13 -04:00
Rapptz f74d73327b [commands] Explicitly assign invoked_subcommand to None before invoking
This should fix instances of it not working as expected in nested
groups.
2019-05-11 18:17:57 -04:00
Rapptz 26a6970882 Version bump to v1.1.1 2019-05-11 15:42:13 -04:00
Rapptz 123e151978 Add back signal handling to Client.run
Apparently Python does not transform SIGTERM to KeyboardInterrupt as
nicely as I thought.
2019-05-11 14:40:31 -04:00
Rapptz 8206982e79 Don't overwrite data parameter in webhooks.
Fixes #2140
2019-05-10 20:54:51 -04:00
Rapptz a54f656e04 Version bump to v1.1.0 2019-05-10 20:20:29 -04:00
Rapptz f8cc64ca7e Add changelog for v1.1.0 2019-05-10 20:19:51 -04:00
Rapptz 47808a7e96 [tasks] Add Loop.restart
This implementation waits until the task is done before starting it
again.

Closes #2075
2019-05-10 18:37:37 -04:00
Rapptz d51f4c2b81 Minor nits in Discord Converters section of the docs. 2019-05-09 07:40:08 -04:00
Rapptz 792b31833a Mention what can be done during initialisation in embeds. 2019-05-07 00:24:25 -04:00
Rapptz bdea50e1db [commands] Better note for Command.invoke 2019-05-05 03:15:38 -04:00
Rapptz 41dee3f401 Translation sync with Crowdin 2019-05-04 02:55:53 -04:00
Rapptz 446b79241c Actually use multiple checks in the examples for checks. 2019-05-01 23:57:50 -04:00
Rapptz abb9c067cc Add log line to show if we disconnected normally. 2019-05-01 02:49:52 -04:00
Rapptz 91e00d8426 [tasks] Add way to query cancellation state for Loop.after_loop
Fixes #2121
2019-04-30 01:45:15 -04:00
Rapptz 4dee175d2a Add support for voice kicking. 2019-04-30 00:34:20 -04:00
Rapptz 40cac30da1 [commands] Fix MessageConverter not inheriting from Converter
Closes #2126
2019-04-29 23:37:27 -04:00
Rapptz 55e3e242ff [tasks] Remove support for awaitables due to gotchas.
Fixes #2079
2019-04-29 23:34:20 -04:00
Rapptz cef8677c68 Proper location of versionadded 2019-04-29 23:34:19 -04:00
Rapptz 05d4f7f962 [commands] Fix Context.send_help to work with the copied HelpCommand 2019-04-29 00:08:08 -04:00
Rapptz ad5beed8dd [commands] Copy HelpCommand instances to prevent race conditions.
Fixes #2123

Slight breaking change if someone had an expectation that no copies
were made behind the scene (which is sensible), however writing code
that relies on this expectation is probably buggy anyway.
2019-04-29 00:05:46 -04:00
Rapptz f9e95a35f9 Fix USER_UPDATE changes not triggering for member instances.
Also add a ClientUser.locale attribute.
2019-04-28 06:36:12 -04:00
Rapptz de6240f1e7 Rewrite loop cleanup code (again...) and remove signal handling.
This should hopefully be the last time I touch this.
2019-04-26 01:57:33 -04:00
Rapptz 439dd24056 voice room → voice channel in event documentation 2019-04-25 23:24:13 -04:00
Rapptz 186d9a7f9c Use a regular boolean instead of asyncio.Event for close status. 2019-04-25 01:57:32 -04:00
Rapptz 6dcd68b8d7 [commands] Allow passing current to more cooldown mapping methods.
Also adds a CooldownMapping.update_rate_limit helper function.
2019-04-24 23:26:33 -04:00
Rapptz 5a7b5cd14b [commands] Allow passing of a message to NoPrivateMessage again.
Prevents an accidental breaking change.
2019-04-20 17:28:44 -04:00
Rapptz 188bd4e708 [commands] DM channels are NSFW in commands.is_nsfw check. 2019-04-20 17:27:04 -04:00
Rapptz 919dbcafb3 Consistent use of __all__ to prevent merge conflicts. 2019-04-20 17:20:58 -04:00
Rapptz c6410ea9ab [commands] Clean docstrings in Command.parents and Command.root_parent 2019-04-20 17:01:01 -04:00
Rapptz 6620fcc038 [commands] Consistently mention inheritance of exceptions. 2019-04-20 16:59:54 -04:00
Rapptz 746e20a826 Make Message.ack an actual coroutine function. 2019-04-20 13:49:38 -04:00
Rapptz 30d87ca557 Add currently undocumented premium_tier field.
Needs more testing to find out what it is.
2019-04-20 13:49:13 -04:00
Rapptz 390bce6033 Explicit namespacing in the PermissionOverwrite example.
Apparently some people get confused by this.
2019-04-19 18:29:13 -04:00
Rapptz 4ca934eb22 [commands] Missing an extra ] in the documented return type. 2019-04-19 18:29:12 -04:00
Rapptz eb4de55f6d Add reason to TextChannel.create_webhook
The reason parameter does not work with webhook deletes or edits so
they're not added. Probably a Discord bug.
2019-04-18 22:31:55 -04:00
Rapptz f5c38c3559 Add abc.GuildChannel.clone to clone a channel with another name.
Fixes #2093
2019-04-18 22:31:54 -04:00
Rapptz ceb154718d Add note about overriding Client.close vs Client.logout 2019-04-18 20:04:11 -04:00
Rapptz c3bad4eeab Make context documentation in migration a bit more clear. 2019-04-18 19:49:57 -04:00
Rapptz a7f3300821 Add versionchanged to Message.delete 2019-04-18 07:58:29 -04:00
Rapptz 296d4bf580 [commands] Add new MessageConverter to commands prose page. 2019-04-17 22:41:58 -04:00
Rapptz 812578f0c9 Remove legacy nsfw check. 2019-04-16 20:29:13 -04:00
Rapptz 4843f61eaf Make discord --version a bit more helpful. 2019-04-16 18:13:57 -04:00
Rapptz 2fe42d5e81 Remove Python 3.5 check in __main__.py 2019-04-16 17:35:04 -04:00
Rapptz 6f26a4aad8 Improve performance of value -> enum by about 5x. 2019-04-15 21:30:47 -04:00
Rapptz f71fd33eba Fix UnboundLocalError when RequestsWebhookAdapter raises an error. 2019-04-15 07:16:23 -04:00
Rapptz cc68cfb896 Add notes to all relationship endpoints that they don't work on bots. 2019-04-14 22:18:14 -04:00
Rapptz 14d66e7b9c Internal consistency with message related HTTPClient methods 2019-04-14 21:05:20 -04:00
Rapptz 14a593b026 Bump version to 1.1.0a 2019-04-14 17:58:56 -04:00
Rapptz 519f0c07ea Add compute_prune_count to Guild.prune_members
Fix #2085
2019-04-14 17:33:57 -04:00
Rapptz 7a1102ccf0 [commands] Use message creation as the reference time in cooldowns 2019-04-14 17:33:56 -04:00
Rapptz ec7a701ceb [commands] Allow passing reference time to update_rate_limit 2019-04-14 16:57:47 -04:00
Rapptz 9b089c9a7b Fix abc.GuildChannel.overwrites returning None keys.
This has potential for data loss as a consequence of how the function
works.
2019-04-14 07:19:22 -04:00
Rapptz 321efb11ed Fix typo in on_raw_reaction_remove docs. 2019-04-14 06:05:11 -04:00
Rapptz e3631ade4c Fix attribute error in Widget.__repr__ 2019-04-13 18:13:53 -04:00
Rapptz 7c091282ce Add equality comparisons between two assets and hashing an asset. 2019-04-13 17:22:25 -04:00
Rapptz 6574c97a8b [commands] Support callables in Greedy converter 2019-04-13 07:28:26 -04:00