Commit Graph

2947 Commits

Author SHA1 Message Date
bbc50c92d0 Add upgraded Member to Message.mentions in case of no cache. 2019-07-10 04:51:27 -04:00
5f272fa151 Add VoiceChannel.voice_states low level helper. 2019-07-10 04:51:27 -04:00
7b8d50a988 Add support for guild subscriptions. 2019-07-10 04:51:27 -04:00
5c1b239b47 Different method of upgrading user instances 2019-07-10 01:23:38 -04:00
e75c248a9a Properly populate __slots__ for derived user types.
Fixes #2265
2019-07-09 22:51:49 -04:00
6f71552c50 [commands] Don't update sys.modules with a stale reference. 2019-07-07 20:17:44 -04:00
70e62e8fe4 Fix regression where Message.edited_at would not update during edits 2019-07-05 23:52:47 -04:00
9d0400516a Fix TeamMember.team typehinting
class Team should be capitalised.
2019-07-01 03:08:49 +10:00
ccb26018ab Export Team related stuff from __init__ 2019-06-30 02:34:42 -04:00
ba7a319ab0 Team.owner should return a TeamMember.
Should always be available but who knows.
2019-06-30 02:34:42 -04:00
c4d1bd7899 TeamMember inherits from BaseUser instead of attribute. 2019-06-30 02:34:42 -04:00
d4b13bd32b [commands] Fix up Paginator documentation.
These aren't optional.
2019-06-29 20:29:13 -04:00
391ff7a486 [commands] Calculate suffix length at each add_line 2019-06-29 20:28:32 -04:00
0cca3ca5c6 Add support for suppressing embeds. 2019-06-29 20:26:47 -04:00
203d702d46 Add unused Guild.preferred_locale 2019-06-29 20:17:18 -04:00
2c16e43e8a Fix regression with unresolved channels due to reordering.
Channels are meant to fallback to Object if the message is out of
order. Somewhere along the commit line this got removed despite the
issue still existing.
2019-06-29 19:41:38 -04:00
68342db04d [commands] Properly raise the correct exception for owner_ids
Also some minor nits with documentation.
2019-06-29 19:26:45 -04:00
Xua
69364a25eb fix documentation for GuildChannel.set_permissions 2019-06-29 19:15:20 -04:00
9687740217 [tasks] Removed Returns from decorator docstring 2019-06-29 19:15:06 -04:00
0a21591d0c [commands] Don't raise ExtensionNotFound for ImportErrors in modules
Now loading an extension that _contains_ a failed import will fail
with ExtensionFailed, rather than ExtensionNotFound.
2019-06-29 19:15:05 -04:00
3961e7ef6d Support team members data in application info 2019-06-29 19:14:24 -04:00
5698cf6df9 Implement Guild.fetch_roles 2019-06-29 19:14:22 -04:00
851f83c821 Implement Guild.fetch_members
Also implements `MemberIterator`.
2019-06-29 19:14:19 -04:00
7543328fe7 Update Sphinx to 2.1.2 2019-06-28 01:43:04 -04:00
0cf38241d0 Version bump to 1.2.3 2019-06-25 21:50:28 -04:00
1e982e0042 Cast activity enumerator to integer instead of accessing value directly
Should make the library more resilient to future changes.
2019-06-25 21:50:06 -04:00
8f691ae775 Only return exception in Client.run when it's not cancelled. 2019-06-20 23:04:38 -04:00
b2f247bef3 Propagate exception in Client.run
Fix #2237
2019-06-20 23:00:45 -04:00
20fa3001f2 Raise max encoder bitrate to 512kbps
Any higher is useless for opus anyways.
2019-06-20 22:52:47 -04:00
94c0cb0d5c [commands] Add missing word in HelpCommand documentation 2019-06-20 22:52:47 -04:00
850a0431bf Catch asyncio.CancelledError in 3.8 in typing context manager
In python 3.8, asyncio.CancelledError is a subclass of BaseException
rather than Exception, so `except Exception:` will not swallow
CancelledError. This change prevents an error in 3.8 from being printed
to the console when the following is run:

```
async with ctx.typing():
	pass
```
2019-06-20 22:51:28 -04:00
671a19a24a [commands] Ensure cooldowns are properly copied. 2019-06-12 23:40:43 -04:00
dfcf9cdb0a Rename error type for X.fetch_channel(s). 2019-06-12 00:47:42 -04:00
34b93c757c docs: Fix minor typo 2019-06-12 00:47:42 -04:00
2b4cf5dafc Set premium_since when copying and updating Member 2019-06-11 21:13:43 +02:00
e00635fba7 Version bump to 1.2.2 2019-06-09 21:51:43 -04:00
855a6c5b59 Fix descriptor detection in enum code. 2019-06-09 08:13:29 -04:00
7980213745 Version bump to 1.2.1 2019-06-09 02:18:43 -04:00
2b761508f1 Disallow deleting of enum attributes. 2019-06-09 02:13:40 -04:00
6931189b92 Add EnumMeta.__reversed__ just in case someone does this.
I sure hope not.
2019-06-09 02:02:06 -04:00
a92b4c2093 Add EnumMeta.__len__ to not break user avatar code. 2019-06-09 01:59:23 -04:00
af4e3ad79b Some documentation touch-ups and missing stuff in the changelog. 2019-06-09 01:24:41 -04:00
d7814cfb25 Remove unused import. 2019-06-09 01:06:20 -04:00
a8f0a03247 Version bump to 1.2.0 2019-06-09 00:39:38 -04:00
655aa39603 Fix reference typo in SystemChannelFlags 2019-06-09 00:38:46 -04:00
7e2da1c93b Publicly expose a type property for all channels.
Fix #2185
2019-06-09 00:23:22 -04:00
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
126f4f8271 Implement Guild.get_all_premium_subscribers 2019-06-08 21:19:10 +01:00
c97b097f07 Document new Guild.features 2019-06-07 22:26:05 -04:00
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