-
Notifications
You must be signed in to change notification settings - Fork 32
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
Cleaner client constructors #92
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention:
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #92 +/- ##
==========================================
- Coverage 77.08% 76.83% -0.25%
==========================================
Files 27 27
Lines 1933 1943 +10
==========================================
+ Hits 1490 1493 +3
- Misses 443 450 +7
☔ View full report in Codecov by Sentry. |
@melwil Agree on the changes you've introduced, that will make it work well for type checkers. However, it will be a breaching change, as in case somebody's already used the client with Could you resolve the conflict, please? |
This PR aims to improve the constructor for new clients.
I've removed all code related to AsyncClient from client.py, and allowed you to directly make AsyncClient. This does mean it's a breaking change, but one that is easily caught by tests or type checkers.
There are a couple of reasons for this:
new_client()
making both types means that a typed project doesn't know if it has a Client or AsyncClient, and it has to be validated before use.Finally, I will concede that it's not the greatest idea to repeat the code for getting the env vars and validating them in both constructors, it could be moved to some sort of utility function. I can do that if desireable, but in this case it's not a great chance for reusability.