Commit Graph

93 Commits

Author SHA1 Message Date
44a44e938f Reformat entire project with ruff instead of black 2025-08-18 20:16:10 -04:00
66922cc2d1 Fix documentation on Role secondary and tertiary colours
Fix .. versionadded:: strings on Role.secondary_ and Role.tertiary_ colours
2025-07-08 21:15:07 -04:00
Mak
cb7300990f Add role parameters to support new gradient and holographic roles
Co-authored-by: dolfies <jeyalfie47@gmail.com>
Co-authored-by: DA344 <108473820+DA-344@users.noreply.github.com>
Co-authored-by: Danny <1695103+Rapptz@users.noreply.github.com>
2025-07-07 23:07:56 -04:00
8953938a53 Update Pyright to v1.1.394 2025-02-18 03:29:09 -05:00
8edf433255 Implement rich role.move interface
Co-authored-by: Danny <1695103+Rapptz@users.noreply.github.com>
2025-02-12 05:49:50 -05:00
135e57c81f Add support for role flags 2023-07-18 05:44:03 -04:00
980fe7b0f9 Simplify RoleTag implementation for always-null attributes 2023-01-16 22:07:23 -05:00
82b12ba481 Remove redundant int cast 2023-01-12 23:39:07 -05:00
48ef01204c Add support for 'linked role' role tag 2023-01-10 18:13:01 -05:00
3d24f0fb12 Add support for role subscription reading 2023-01-10 18:05:00 -05:00
ce06beeb6c Fix permissions-based docstrings to be more consistent 2022-09-17 14:07:39 -04:00
87bc79e6e3 Change certain sequences to use a special proxy type instead of list
This is to speed up cases where someone is just querying the length
of the underlying sequence. If anything else is done to the sequence
then it is copied from the original iterator.

This change should be mostly transparent.
2022-07-19 01:58:58 -04:00
0f18d93e47 Remove unused imports 2022-04-02 04:58:39 -04:00
5aa696ccfa Fix typing issues and improve typing completeness across the library
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: Josh <josh.ja.butt@gmail.com>
2022-03-13 23:52:10 -04:00
095aaa9ad1 Change wording of InvalidArgument removal in docs 2022-03-11 23:25:43 -05:00
147948af9b Use typing.Self throughout library 2022-03-01 07:53:24 -05:00
2b69b5d545 Remove discord.InvalidArgument
This uses TypeError and ValueError instead.
2022-02-26 01:44:49 -05:00
4dbe1af32f Update sphinx and fix documentation issues 2022-02-19 22:35:32 -05:00
783513726f Add support for role icons
* Document ROLE_ICONS guild feature
https://github.com/discord/discord-api-docs/pull/3847

* Add support for role icons
https://github.com/discord/discord-api-docs/pull/3847

* Add support for role icon/emoji changes in audit log
https://github.com/discord/discord-api-docs/pull/3847
2022-02-17 11:28:03 -05:00
490bbffc93 Remove in-place edits and return fresh instances instead
Fixes #4098
2021-08-23 23:46:50 -04:00
9d4fa0341e Fix typing of move role position payload parameter 2021-08-23 23:44:20 -04:00
2d7c709235 Rework Role.edit to not rely on previous role state 2021-06-29 22:02:16 -04:00
c475218112 Typehint Role and RoleTags 2021-05-28 08:54:45 -04:00
35bef7af38 Fix Role.is_assignable() computing Guild.me twice 2021-05-28 08:41:45 -04:00
9ba5745e68 Check for guild owner in Role.is_assignable() 2021-05-28 08:18:49 -04:00
6c8f1ccbdf Add Role.is_assignable() 2021-05-28 00:53:23 -04:00
1954861668 Add warning for comparing with role positioning 2021-05-27 21:11:17 -04:00
757cfad38f Type up **kwargs of various methods 2021-05-10 20:24:48 -04:00
d85805ab6d First pass at supporting v8 API 2021-04-11 00:39:13 -04:00
99fc950510 Use f-strings in more places that were missed. 2021-04-08 06:02:47 -04:00
89456022cf Add __all__ to remaining modules 2021-04-07 02:30:32 -04:00
9d39b135f4 Modernize code to use f-strings
This also removes the encoding on the top, since Python 3 does it by
default. It also changes some methods to use `yield from`.
2021-04-04 07:03:53 -04:00
272339d5e6 Add support for the new permission serialization scheme. 2021-02-18 07:26:20 -05:00
69bdc3a184 Change copyright year to present 2021-01-15 05:28:11 -05:00
e65dab3b23 Implement role tags.
This comes with:

* The RoleTags class
* Role.is_premium_subscriber()
* Role.is_bot_managed()
* Role.is_integration()
* Guild.self_role
* Guild.premium_subscriber_role
2020-11-26 01:57:24 -05:00
93fa46713a Fix and add documentation 2020-09-23 03:19:35 -04:00
5769511779 allow passing color int to role.edit 2020-05-10 19:35:45 -04:00
3faa9799e3 Fix documentation problem with color
At readthedocs.io, for role `color`, it says "Returns the role colour. An alias exists under `color`". This PR fixes that to say "Returns the role color. An alias exists under `colour`".
2020-04-04 02:42:22 -04:00
6071607176 Bump copyright year to 2020
Closes #2510
2020-01-19 20:03:00 -05:00
5c0b127c96 Create Permissions and Colour objects when necessary in Role
This should have some memory savings of ~24 bytes per role.

* 8 bytes for Permissions
* 8 bytes for Colour
* 8 bytes for the alias

I'm not sure how significant it is but it should be a decent amount.
2019-08-27 18:34:40 -04:00
3c9bcc2851 Improve documentation 2019-06-07 19:27:46 -04:00
fb02191b80 Organise documentation 2019-03-19 08:24:42 -04:00
9656a21ebe Bumped copyright years to 2019. 2019-01-28 22:22:50 -05:00
77239e4f15 Fix NameError and duplicate insertion bug when moving roles. 2018-09-24 23:55:05 -04:00
95d8bb2e85 Change internal representation of roles in Member and Emoji.
Introduce a new internal type, SnowflakeList, which has better memory
footprint over a regular list or set of roles. It is suspected that
there will be a 9x reduction of memory for every Emoji instance and a
48 byte saving per Member instance. However, these savings will
probably only be evident on larger bots.

As a consequence of this change, Member.roles is now computed lazily.

Currently I am not sure if I want to do the initial sorting on the
SnowflakeList for Member, as this comes with a O(n log n) cost when
creating a Member for little purpose since SnowflakeList.has is not
overly relied on. If CPU time becomes an issue this might change.
2018-09-24 22:19:42 -04:00
3d03dbc451 Change internal role storage in Guild to a dict instead of a list.
This adds the following APIs:

* Guild.get_role

This removes the following APIs:

* Guild.role_hierarchy

To compensate for the removed APIs, Guild.roles is now a sorted list
based on hierarchy. The first element will always be the @everyone
role.

This speeds up access at the cost of some memory, theoretically.
2018-09-24 21:08:48 -04:00
12cb074316 Take the default role property into account when comparing roles. 2018-09-24 20:19:47 -04:00
c8b49d37be [lint] Fix incorrect and inconsistent whitespace
Adjust whitespace to be consistent with the rest of the library.
2018-08-22 21:43:53 -04:00
d58fc0ccee [lint] Remove unused imports
Left over from various refactoring and rewrites.
2018-08-22 21:43:50 -04:00
f25091efe1 Drop support for Python 3.4 and make minimum version 3.5.2. 2018-06-10 18:10:00 -04:00