Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@Enegg
Copy link
Contributor

@Enegg Enegg commented Oct 24, 2025

Summary

This PR unifies the style of access to a value's type's name, replacing type(x).__name__ with x.__class__.__name__ (since the latter has been used more often)
Also moves a type guard at disnake/ext/tasks/init.py#L125-L127 higher up, so it can fail quicker.

Checklist

  • If code changes were made, then they have been tested
    • I have updated the documentation to reflect the changes
    • I have formatted the code properly by running uv run nox -s lint
    • I have type-checked the code by running uv run nox -s pyright
  • This PR fixes an issue
  • This PR adds something new (e.g. new method or parameters)
  • This PR is a breaking change (e.g. methods or parameters removed/renamed)
  • This PR is not a code change (e.g. documentation, README, ...)

@read-the-docs-community
Copy link

Documentation build overview

📚 disnake | 🛠️ Build #30061600 | 📁 Comparing 30d1a0c against latest (79a8027)


🔍 Preview build

Show files changed (48 files in total): 📝 48 modified | ➕ 0 added | ➖ 0 deleted
File Status
index.html 📝 modified
whats_new.html 📝 modified
api/abc.html 📝 modified
api/activities.html 📝 modified
api/app_commands.html 📝 modified
api/app_info.html 📝 modified
api/audit_logs.html 📝 modified
api/automod.html 📝 modified
api/channels.html 📝 modified
api/clients.html 📝 modified
api/components.html 📝 modified
api/emoji.html 📝 modified
api/entitlements.html 📝 modified
api/events.html 📝 modified
api/exceptions.html 📝 modified
api/guild_scheduled_events.html 📝 modified
api/guilds.html 📝 modified
api/integrations.html 📝 modified
api/interactions.html 📝 modified
api/invites.html 📝 modified
api/localization.html 📝 modified
api/members.html 📝 modified
api/messages.html 📝 modified
api/misc.html 📝 modified
api/permissions.html 📝 modified
api/roles.html 📝 modified
api/skus.html 📝 modified
api/soundboard.html 📝 modified
api/stage_instances.html 📝 modified
api/stickers.html 📝 modified
api/subscriptions.html 📝 modified
api/ui.html 📝 modified
api/users.html 📝 modified
api/utilities.html 📝 modified
api/voice.html 📝 modified
api/webhooks.html 📝 modified
api/widgets.html 📝 modified
ext/tasks/index.html 📝 modified
ext/commands/api/app_commands.html 📝 modified
ext/commands/api/bots.html 📝 modified
ext/commands/api/checks.html 📝 modified
ext/commands/api/cogs.html 📝 modified
ext/commands/api/context.html 📝 modified
ext/commands/api/converters.html 📝 modified
ext/commands/api/exceptions.html 📝 modified
ext/commands/api/help_commands.html 📝 modified
ext/commands/api/misc.html 📝 modified
ext/commands/api/prefix_commands.html 📝 modified

@Victorsitou Victorsitou added s: needs review Issue/PR is awaiting reviews t: refactor/typing/lint Refactors, typing changes and/or linting changes skip news labels Oct 24, 2025
@onerandomusername
Copy link
Member

There's a risk to this as __class__ can be overridden by user code, and the majority of these are used in instances where the instance check failed and a type could be an arbitrary type.

I'm not sure unification of these is necessary in one big go, but we should probably standardize on a specific type for future code.

@Enegg
Copy link
Contributor Author

Enegg commented Nov 1, 2025

The PR could go the other way and replace .__class__ with type().
Just wanted to standardize it as a prelude to standardizing exception messages that I have a branch for

@shiftinv
Copy link
Member

There's a risk to this as __class__ can be overridden by user code

type(x) appears to be completely equivalent to x.__class__ even when overridden by user code:
https://github.com/python/cpython/blob/95296a9d40aa2d58502a09e86e2a93c03df23366/Objects/typeobject.c#L5070-L5080
https://github.com/python/cpython/blob/95296a9d40aa2d58502a09e86e2a93c03df23366/Objects/typeobject.c#L7308-L7312
All in all this seems fine. There isn't a way around it, but I also think we don't need one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

s: needs review Issue/PR is awaiting reviews skip news t: refactor/typing/lint Refactors, typing changes and/or linting changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.