Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Providers/HTTP] Add adapter parameter to HttpHook to allow custom re…
…quests adapters (apache#44302) * feat(http-hook): add adapter parameter to HttpHook and enhance get_conn - Added `adapter` parameter to `HttpHook` to allow custom HTTP adapters. - Modified `get_conn` to support mounting custom adapters or using TCPKeepAliveAdapter by default. - Added comprehensive tests to validate the functionality of the `adapter` parameter and its integration with `get_conn`. - Ensured all new tests pass and maintain compatibility with existing functionality. * fix(http_hook): Update docstring and remove redundant TCPKeepAliveAdapter - Added missing `adapter` parameter description to the HttpHook class docstring. - Removed redundant instantiation of `TCPKeepAliveAdapter` in the `run` method since it's already instantiated in `get_conn`. * fix(http_hook): improve get_conn session setup and TCP adapter logic - Ensured proper mounting of TCP Keep-Alive adapter when enabled. - Improved handling of connection extras for cleaner session configuration. * feat(http): update get_conn logic and corresponding tests (apache#44302) Aligned the `get_conn` method with the adjustments specified in apache#44302, including refined handling of headers. Optimized and updated test cases to ensure compatibility and maintain robust test coverage. * refactor(http_hook): simplify HttpHook by reverting BaseAdapter to HTTPAdapter - Changed the `adapter` parameter to accept only `HTTPAdapter` instead of `BaseAdapter`. - Strengthened `_set_base_url` validation to ensure base_url is constructed with stricter conditions. - Adjusted `_mount_adapters` to improve maintainability. * refactor(http_hook): simplify HttpHook by reverting BaseAdapter to HTTPAdapter - Changed the `adapter` parameter to accept only `HTTPAdapter` instead of `BaseAdapter`. - Strengthened `_set_base_url` validation to ensure base_url is constructed with stricter conditions. - Adjusted `_mount_adapters` to improve maintainability. * Merge: new main * refactor: improve function naming and add type annotations - Changed the function prefix from `_set` to `_configure_session_from` to enhance readability and better reflect its purpose. - Added static type annotations for input parameters and return values. - Included comments to document the design rationale following coding standards. - Improved error message: replaced generic text with detailed and actionable messages. * fix: simplify the change of session - Added a variable `session` after the change of session member * fix: Adjust response format. * fix: simplify the logic * fix(hook): ensure default HTTPAdapter in HttpHook init The `adapter` parameter in `HttpHook` was previously required to be explicitly set to an instance of `HTTPAdapter`. This commit modifies the `__init__` method to assign a default `HTTPAdapter` when no adapter is provided. Changes: - Removed type checks for `adapter`, as default initialization guarantees correctness. - Improved code readability and reduced potential runtime errors. No functional changes beyond defaulting `adapter` to `HTTPAdapter`. * feat(http_hook): add support for custom adapter in initialization Refactored `HttpHook` to support a custom `HTTPAdapter` through the `adapter` parameter. If no adapter is provided, it defaults to `TCPKeepAliveAdapter` when `tcp_keep_alive=True`. Test: Added `test_custom_adapter` to verify correct adapter mounting. * fix: CI image checks / Static checks - Adjust the length of each line of code. * fix: Adjust indent style - modify `assert instance` by PEP8 * fix: ruff error about `from requests.adapters import HTTPAdapter` --------- Co-authored-by: jiao <[email protected]>
- Loading branch information