Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: unify slash/prefix command signature evaluation #1116

Merged
merged 10 commits into from Oct 26, 2023

Conversation

shiftinv
Copy link
Member

@shiftinv shiftinv commented Oct 9, 2023

Summary

This PR makes slash command signature evaluation use the existing prefix command mechanisms (notably, utils.evaluate_annotation), instead of relying on typing.get_type_hints which has historically been somewhat inconsistent.

There aren't any immediate issues with the previous code; this change is in preparation for Python 3.12 adjustments in the near future. Right now, this shouldn't have any effect in practice.
It may look complicated, but it's really just moving around different parts of the code to new locations and dropping commands.params.signature() in favour of utils.get_signature_parameters().

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 pdm lint
    • I have type-checked the code by running pdm 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, ...)

@shiftinv shiftinv added s: needs review Issue/PR is awaiting reviews t: refactor/typing/lint Refactors, typing changes and/or linting changes labels Oct 9, 2023
@shiftinv shiftinv added this to the disnake v2.10 milestone Oct 9, 2023
@shiftinv shiftinv requested a review from EQUENOS October 9, 2023 13:14
Copy link
Member

@EQUENOS EQUENOS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just several nits. Looks good overall, I especially liked that you moved some parsers to utils.py, this way they can be easily used by ext-packages.

disnake/utils.py Show resolved Hide resolved
disnake/ext/commands/params.py Show resolved Hide resolved
Copy link
Member

@EQUENOS EQUENOS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@shiftinv shiftinv merged commit f2e5886 into master Oct 26, 2023
27 checks passed
@shiftinv shiftinv deleted the refactor/slash-signature-unified branch October 26, 2023 17:42
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 t: refactor/typing/lint Refactors, typing changes and/or linting changes
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants