-
Notifications
You must be signed in to change notification settings - Fork 165
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
Worse developer experience since introducing async support - IntelliSense doesn't work for endpoint classes #483
Comments
+1 |
Hi, I'm currently working on adding types to this sdk (on my free time). Once #472 gets merged, I'll continue working on the |
Nice work on getting that started, but I also think its important for the core team to embrace type hints for it to be successful. If there is no type checking in the CI then the type hints could quickly become out of date, wrong type hints are worse than none. For the core team it might be worth investigating some sort of codegen solutions if the maintenance of the types is too much e.g. https://github.com/Azure/autorest / https://github.com/Azure/autorest.python |
I've added a |
Hi @michaeloliverx - thanks for raising this The
We are investigating codegen solutions for a next major, but for the time being the async methods will remain as they are. |
Hi @adamjmcgrath thanks for taking the time to reply.
This is actually not true, if we ignore the async methods for now and concentrate solely on the sync client then you will see that the DX has definitely decreased. From v3.22.0 and below the endpoint classes were set statically within the constructor of the auth0-python/auth0/v3/management/auth0.py Lines 45 to 73 in d07f87b
From any version afterwards they are set dynamically: auth0-python/auth0/management/auth0.py Lines 81 to 87 in 947a768
I think it would be a definite win for users if these could be set statically again. |
@michaeloliverx I'm currently working on a second PR to add types, and I'm taking care of the issue you're mentioning 😊 Edit: This is how I've done it. Regarding the async client, it's a bit more difficult, as classes are created dynamically. |
Ah, ok - thanks for clarifying @michaeloliverx And thanks for providing a fix @Viicos - I was away last week and am catching up with a few things, but will take a look at your PR as soon as I can |
can we reopen this? the issue is not resolved. |
Sure - have raised #486 to fix |
Some background first:
I used this SDK in a previous company with a very positive experience, fast forward a few years I find myself working with auth0 in python again only to find that the DX is much worse :(
Describe the problem
It looks like since the introduction of
asyncio
support that the attributes are dynamically added:auth0-python/auth0/management/auth0.py
Lines 81 to 87 in 947a768
This doesn't play well with static analysis thus there is no autocomplete / intellisense for any of the endpoint classes.
This also means that type checking via mypy / pyright etc doesn't work.
What was the expected behavior?
I expect all the endpoint classes to be listed as attributes.
This was the behaviour of v3.22.0:
Reproduction
Environment
The text was updated successfully, but these errors were encountered: