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

[auth0-python] Add async functions to AsyncAuth0 #13799

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions stubs/auth0-python/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ auth0\.test.*

# Omit _async functions because they aren't present in the code
auth0\..*_async
auth0\.management\.async_auth0\..*

# Inconsistently implemented, ommitted
auth0.asyncify.AsyncRestClient.file_post
Expand Down
61 changes: 61 additions & 0 deletions stubs/auth0-python/auth0/management/async_auth0.pyi
Original file line number Diff line number Diff line change
@@ -1,12 +1,73 @@
from _typeshed import Incomplete
from types import TracebackType
from typing_extensions import Self

from auth0.rest import RestClientOptions as RestClientOptions

from ..asyncify import asyncify as asyncify
from .actions import Actions as Actions
from .attack_protection import AttackProtection as AttackProtection
from .auth0 import Auth0 as Auth0
from .blacklists import Blacklists as Blacklists
from .branding import Branding as Branding
from .client_credentials import ClientCredentials as ClientCredentials
from .client_grants import ClientGrants as ClientGrants
from .clients import Clients as Clients
from .connections import Connections as Connections
from .custom_domains import CustomDomains as CustomDomains
from .device_credentials import DeviceCredentials as DeviceCredentials
from .email_templates import EmailTemplates as EmailTemplates
from .emails import Emails as Emails
from .grants import Grants as Grants
from .guardian import Guardian as Guardian
from .hooks import Hooks as Hooks
from .jobs import Jobs as Jobs
from .log_streams import LogStreams as LogStreams
from .logs import Logs as Logs
from .organizations import Organizations as Organizations
from .prompts import Prompts as Prompts
from .resource_servers import ResourceServers as ResourceServers
from .roles import Roles as Roles
from .rules import Rules as Rules
from .rules_configs import RulesConfigs as RulesConfigs
from .stats import Stats as Stats
from .tenants import Tenants as Tenants
from .tickets import Tickets as Tickets
from .user_blocks import UserBlocks as UserBlocks
from .users import Users as Users
from .users_by_email import UsersByEmail as UsersByEmail
Comment on lines 5 to +38
Copy link
Collaborator

@srittau srittau Apr 7, 2025

Choose a reason for hiding this comment

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

I just noticed that these are all re-exported from this file. I don't think we should do that and just use normal import for the items we need in this file (I.e. just from .tenants import Tenants without the as Tenants part.) This applies to all imports, not just the new ones.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What I found with this is that my IDE considers these unused if I remove the as import - should I ignore that?

Copy link
Collaborator

Choose a reason for hiding this comment

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

In that case you can just remove the unused imports.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No, by importing these they become attributes of the class - I think this is the correct approach and you should approve as is.


class AsyncAuth0:
actions: Incomplete
attack_protection: Incomplete
blacklists: Incomplete
branding: Incomplete
client_credentials: Incomplete
client_grants: Incomplete
clients: Incomplete
connections: Incomplete
custom_domains: Incomplete
device_credentials: Incomplete
email_templates: Incomplete
emails: Incomplete
grants: Incomplete
guardian: Incomplete
hooks: Incomplete
jobs: Incomplete
log_streams: Incomplete
logs: Incomplete
organizations: Incomplete
prompts: Incomplete
resource_servers: Incomplete
roles: Incomplete
rules_configs: Incomplete
rules: Incomplete
stats: Incomplete
tenants: Incomplete
tickets: Incomplete
user_blocks: Incomplete
users_by_email: Incomplete
users: Incomplete
def __init__(self, domain: str, token: str, rest_options: RestClientOptions | None = None) -> None: ...
def set_session(self, session) -> None: ...
async def __aenter__(self) -> Self: ...
Expand Down