Skip to content

Add stubs for _async methods #615

Description

@dgilman-hrp

Checklist

  • I have looked into the Readme and Examples, and have not found a suitable solution or answer.
  • I have looked into the API documentation and have not found a suitable solution or answer.
  • I have searched the issues and have not found a suitable solution or answer.
  • I have searched the Auth0 Community forums and have not found a suitable solution or answer.
  • I agree to the terms within the Auth0 Code of Conduct.

Describe the problem you'd like to have solved

The built-in asyncify is very useful, but the way it's implemented means that typing checking (such as via Pyre) and IDEs have no idea these exist.

Describe the ideal solution

Add function stubs for every method that supports async with type hinting.

Alternatives and current workarounds

No response

Additional context

No response

Activity

  1. Avasam commented on Apr 14, 2025

    @Avasam

    #678 (comment)

    Here's one way you could solve this (without changing anything at runtime): Generate stubs for all classes you expect to "Asyncify" as was talked here. But with the following differences:

    • Generate it in a subfolder that doesn't exist at runtime (ie: auth0._asyncified.*)
    • Rename all the generated classes to help differentiate them (something like class UsersWrapped(Users): for base class Users)
    • Decorate all generated classes with @typing.type_check_only
    • Generate a massive overload for auth0.asyncify.asyncify that maps original classes to stub-only asyncified/wrapped classes.
    • Optional: Generate said stubs on install/editable install/wheel creation. That way they don't pollute the source and history.

    Like this: Avasam/typeshed#43 (files)

  2. kishore7snehil commented on Apr 25, 2025

    @kishore7snehil
    Contributor

    I believe this issue can be closed now as we already have a workaround discussed on this thread.

  3. Dreamsorcerer commented on Apr 25, 2025

    @Dreamsorcerer

    Isn't that workaround to wait for Avasam to merge the typeshed PR and then use types-auth0-python instead? Still looks to me like something needs to be done in this repo in order to provide types directly and close #612.

  4. kishore7snehil commented on Apr 25, 2025

    @kishore7snehil
    Contributor

    @Dreamsorcerer There was a PR for the same where it was asked to add the .py files in the repo itself. I suggested to use the script to generate the async files.

    That's the same approach @Avasam (correct me if I am wrong ) is pushing forward but with some specific tweaks to the generation logic.

    If he is willing to add a PR to this repo, I can review it and take it forward.

  5. Dreamsorcerer commented on Apr 25, 2025

    @Dreamsorcerer

    If he is willing to add a PR to this repo, I can review it and take it forward.

    Of course. My point was just that this issue isn't closed until that PR gets created and merged.

  6. Avasam commented on May 3, 2025

    @Avasam

    If you don't mind having a script to run once in a while to "keep the stubs in sync". I can migrate the script I made for python/typeshed#13826 to over here.
    Can probably include some CI check to ensure that running it wouldn't produce any change (ie: not forgotten by the contributor).
    I see you have a https://github.com/auth0/auth0-python/blob/master/.pre-commit-config.yaml , it could also be added there.

    Then I think you'll have everything you need to declare this library as "first-party typed".

  7. kishore7snehil commented on May 8, 2025

    @kishore7snehil
    Contributor

    @Avasam Please feel free to open a PR. I can review it and will update you acordingly.

  8. locked and limited conversation to collaborators on Oct 5, 2025
  9. converted this issue into a discussion #749 on Oct 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestA feature has been asked for or suggested by the community

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions