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 into
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