refactor: migrate from requests to httpx for synchronous and asynchronous HTTP clients #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request refactors both the synchronous and asynchronous HTTP client implementations to use
httpxinstead ofrequests, introduces global reusable HTTP client instances for efficiency, and improves error handling in the async client. It also fixes a typo in a class name and updates dependencies accordingly.HTTP client refactoring and improvements:
requestswithhttpxin the synchronous HTTP client (click_up/classes/http.py), introducing a global reusablehttpx.Clientwith HTTP/2 support and automatic retries.postmethod to use the newhttpx.Clientand its.post()method for sending requests.clickup_fastapi/core/http.py) to use a global reusablehttpx.AsyncClientwith HTTP/2 and retries, and improved header merging.Error handling:
postmethod to return structured error responses for both HTTP errors and network issues.Dependency updates and typo fix:
requestsdependency withhttpx[http2]inrequirements.txt.ClickShopApiResponetoClickShopApiResponseinclick_up/typing/response/shop_api.py.