Open
Conversation
There was a problem hiding this comment.
Pull request overview
This PR regenerates the Pipedream Python SDK code from the latest API definition (December 9, 2025). The changes include significant improvements to type safety, pagination, authentication, retry logic, and new API endpoints.
Key changes:
- Simplified type definitions by removing redundant
typing.Optional[typing.Optional[T]]patterns totyping.Optional[T]ortyping.Any - Introduced discriminated unions for
ConfigurablePropandEmittertypes with proper Pydantic discriminator support - Added new Project management endpoints with CRUD operations
- Enhanced retry logic with improved backoff strategy, jitter, and X-RateLimit-Reset header support
- Added support for direct bearer token authentication alongside OAuth credentials
- Refactored pagination to include typed response data
- Added
remove_none_from_dictutility for multipart form data handling - Created
ConfigurablePropBaseto eliminate code duplication across prop types - Added thread-safe and async-safe OAuth token providers with locking mechanisms
- Introduced new error classes (BadRequestError, NotFoundError)
- Added registry filtering for components, actions, and triggers list operations
Reviewed changes
Copilot reviewed 84 out of 85 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/utils/test_http_client.py | Added comprehensive tests for None value handling in request bodies and the new remove_none_from_dict utility function |
| src/pipedream/types/*.py | Simplified type annotations by removing redundant Optional wrappers and introduced discriminated unions with Pydantic Field discriminators |
| src/pipedream/types/configurable_prop_base.py | New base class extracting common fields from all ConfigurableProp variants to reduce duplication |
| src/pipedream/types/project.py, list_projects_response.py | New types for Project management API |
| src/pipedream/core/http_client.py | Enhanced retry logic with improved exponential backoff, jitter strategies, X-RateLimit-Reset support, and multipart None filtering |
| src/pipedream/core/oauth_token_provider.py | Added AsyncOAuthTokenProvider with async lock for thread-safe token management |
| src/pipedream/core/pagination.py | Updated pagers to include typed response data as second generic parameter |
| src/pipedream/core/client_wrapper.py | Added async header support for async token providers and updated SDK version to 1.0.13 |
| src/pipedream/client.py | Added token parameter and overloads for dual authentication modes (OAuth vs bearer token) |
| src/pipedream/pipedream.py | Simplified initialization logic to properly handle token vs OAuth credential paths |
| src/pipedream/projects/*.py | New client methods for listing, creating, retrieving, updating, and deleting projects |
| src/pipedream/errors/*.py | Updated TooManyRequestsError and added BadRequestError and NotFoundError |
| src/pipedream/{actions,triggers,components}/*.py | Added registry parameter for filtering public/private/all components |
| pyproject.toml, poetry.lock | Version bump to 1.0.13 and added pytest-xdist dependency |
Comments suppressed due to low confidence (1)
src/pipedream/pipedream.py:31
- This initialization method calls Client.init multiple times, via this call and this call.
This initialization method calls Client.init multiple times, via this call and this call.
This initialization method calls Client.init multiple times, via this call and this call.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
This initialization method calls Client.init multiple times, via this call and this call, resolving to Client.init and Client.init respectively.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 PR regenerates code to match the latest API Definition.