feat(bindings/python): Add HttpClientLayer for custom HTTP client configuration#7247
feat(bindings/python): Add HttpClientLayer for custom HTTP client configuration#7247rgidda wants to merge 10 commits intoapache:mainfrom
Conversation
…figuration This adds support for HttpClientLayer in Python bindings, enabling users to customize the HTTP client used for all operations. This is particularly useful for: - Testing with self-signed SSL certificates via danger_accept_invalid_certs - Setting custom request timeouts - Future advanced HTTP client configurations The implementation includes: - HttpClient class with danger_accept_invalid_certs and timeout parameters - HttpClientLayer to apply custom HTTP client to operators - Comprehensive documentation and examples - Unit tests for both sync and async usage Closes #TODO
HttpClient is a top-level class (opendal.HttpClient), not in the layers submodule, so it shouldn't be documented in layers.md. Its usage is shown in the examples and docstrings.
- Remove trailing whitespace from test file - Format reqwest dependency in Cargo.toml (multiline array) - Remove HttpClientLayer from API docs (will be auto-generated)
- Add return type annotations to all functions - Fix docstring formatting (one-line docstrings, periods, imperative mood) - Remove trailing whitespace from all files - Sort imports in test file
Business Impact & Adoption PlanHi maintainers! 👋 I wanted to highlight the importance of this feature for our team's immediate needs: Use Case: We're working with self-hosted S3-compatible storage services (MinIO, etc.) in development and testing environments that use self-signed SSL certificates. Currently, the Python bindings don't provide a way to configure the HTTP client to accept these certificates, which blocks our ability to test against these environments. Immediate Adoption: Once this PR is merged and released, we will immediately integrate this into our testing infrastructure. The
Feature Completeness: This brings the Python bindings to parity with the Rust core's All CI checks have now passed after addressing linting, formatting, and compilation issues. The implementation includes:
We're excited to start using this feature and would greatly appreciate your review and feedback. Thank you for maintaining this excellent project! 🙏 Note: The |
…figuration
This adds support for HttpClientLayer in Python bindings, enabling users to customize the HTTP client used for all operations. This is particularly useful for:
The implementation includes:
Closes #TODO
Which issue does this PR close?
Closes #.
Rationale for this change
What changes are included in this PR?
Are there any user-facing changes?
AI Usage Statement