Commit Graph
93 Commits
Author SHA1 Message Date
Rapptz 44a44e938f Reformat entire project with ruff instead of black 2025-08-18 20:16:10 -04:00
DA344 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
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
Rapptz 8953938a53 Update Pyright to v1.1.394 2025-02-18 03:29:09 -05:00
LeonardoandDanny 8edf433255 Implement rich role.move interface
Co-authored-by: Danny <1695103+Rapptz@users.noreply.github.com>
2025-02-12 05:49:50 -05:00
Soheab_ 135e57c81f Add support for role flags 2023-07-18 05:44:03 -04:00
Rapptz 980fe7b0f9 Simplify RoleTag implementation for always-null attributes 2023-01-16 22:07:23 -05:00
Willy 82b12ba481 Remove redundant int cast 2023-01-12 23:39:07 -05:00
Rapptz 48ef01204c Add support for 'linked role' role tag 2023-01-10 18:13:01 -05:00
Rapptz 3d24f0fb12 Add support for role subscription reading 2023-01-10 18:05:00 -05:00
Steve C ce06beeb6c Fix permissions-based docstrings to be more consistent 2022-09-17 14:07:39 -04:00
Rapptz 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
Kellen 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
chromacoat dreamkey 095aaa9ad1 Change wording of InvalidArgument removal in docs 2022-03-11 23:25:43 -05:00
Josh 147948af9b Use typing.Self throughout library 2022-03-01 07:53:24 -05:00
Josh 2b69b5d545 Remove discord.InvalidArgument
This uses TypeError and ValueError instead.
2022-02-26 01:44:49 -05:00
Josh 4dbe1af32f Update sphinx and fix documentation issues 2022-02-19 22:35:32 -05:00
jack1142 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
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 2d7c709235 Rework Role.edit to not rely on previous role state 2021-06-29 22:02:16 -04:00
Rapptz c475218112 Typehint Role and RoleTags 2021-05-28 08:54:45 -04:00
Rapptz 35bef7af38 Fix Role.is_assignable() computing Guild.me twice 2021-05-28 08:41:45 -04:00
TheOneMusic 9ba5745e68 Check for guild owner in Role.is_assignable() 2021-05-28 08:18:49 -04:00
Tyler 6c8f1ccbdf Add Role.is_assignable() 2021-05-28 00:53:23 -04:00
Rapptz 1954861668 Add warning for comparing with role positioning 2021-05-27 21:11:17 -04:00
Nadir Chowdhury 757cfad38f Type up **kwargs of various methods 2021-05-10 20:24:48 -04:00
Rapptz d85805ab6d First pass at supporting v8 API 2021-04-11 00:39:13 -04:00
Rapptz 99fc950510 Use f-strings in more places that were missed. 2021-04-08 06:02:47 -04:00
Nadir Chowdhury 89456022cf Add __all__ to remaining modules 2021-04-07 02:30:32 -04:00
Rapptz 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
Rapptz 272339d5e6 Add support for the new permission serialization scheme. 2021-02-18 07:26:20 -05:00
Nihaal Sangha 69bdc3a184 Change copyright year to present 2021-01-15 05:28:11 -05:00
Rapptz 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
Michael 93fa46713a Fix and add documentation 2020-09-23 03:19:35 -04:00
Anurag Singh 5769511779 allow passing color int to role.edit 2020-05-10 19:35:45 -04:00
Saurabh Chaturvedi 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
Rapptz 6071607176 Bump copyright year to 2020
Closes #2510
2020-01-19 20:03:00 -05:00
Rapptz 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
NCPlayz 3c9bcc2851 Improve documentation 2019-06-07 19:27:46 -04:00
NCPlayz fb02191b80 Organise documentation 2019-03-19 08:24:42 -04:00
Dante Dam 9656a21ebe Bumped copyright years to 2019. 2019-01-28 22:22:50 -05:00
Rapptz 77239e4f15 Fix NameError and duplicate insertion bug when moving roles. 2018-09-24 23:55:05 -04:00
Rapptz 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
Rapptz 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
Rapptz 12cb074316 Take the default role property into account when comparing roles. 2018-09-24 20:19:47 -04:00
Hornwitser 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
Hornwitser d58fc0ccee [lint] Remove unused imports
Left over from various refactoring and rewrites.
2018-08-22 21:43:50 -04:00
Rapptz f25091efe1 Drop support for Python 3.4 and make minimum version 3.5.2. 2018-06-10 18:10:00 -04:00