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

Fix wait_for overloads #10086

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

Soheab
Copy link
Contributor

@Soheab Soheab commented Jan 26, 2025

Summary

This PR fixes all wait_for overloads by specifying a default value for the check kwarg. A type checker like pyright defaults to the original impl because there aren't any matching overloads.

I've also changed the default value for the timeout kwarg in the overloads to = ... instead of = None for consistency.

Inspecting the types using reveal_type with pylance:

# ---BEFORE --- 
reveal_type(client.wait_for("message", check=None))  # Type of "client.wait_for("message", check=None)" is "Coroutine[Any, Any, Message]"
reveal_type(client.wait_for("message"))  # Type of "client.wait_for("message")" is "Coroutine[Any, Any, Any]"

reveal_type(client.wait_for("interaction", check=None))  # Type of "client.wait_for("interaction", check=None)" is "Coroutine[Any, Any, Interaction[Client]]" Pylance
reveal_type(client.wait_for("interaction"))  # Type of "client.wait_for("interaction")" is "Coroutine[Any, Any, Any]"

# --- AFTER ---
reveal_type(client.wait_for("message", check=None))  # Type of "client.wait_for("message", check=None)" is "Coroutine[Any, Any, Message]"
reveal_type(client.wait_for("message"))  # Type of "client.wait_for("message")" is "Coroutine[Any, Any, Message]"

reveal_type(client.wait_for("interaction", check=None))  # Type of "client.wait_for("interaction", check=None)" is "Coroutine[Any, Any, Interaction[Client]]"
reveal_type(client.wait_for("interaction"))  # Type of "client.wait_for("interaction")" is "Coroutine[Any, Any, Interaction[Client]]"

Checklist

  • If code changes were made then they have been tested.
    • I have updated the documentation to reflect the changes.
  • 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, ...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant