-
Notifications
You must be signed in to change notification settings - Fork 3
🌿 Fern Regeneration -- November 25, 2025 #246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
85fa07e to
48a1822
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR regenerates the Pipedream Python SDK code to match the latest API definition, updating the SDK from version 1.0.11 to 1.0.12.
Key changes include:
- Added support for binary response streaming in proxy methods
- Added
emit_on_deployfield to trigger-related types and API methods - Updated documentation examples to be more minimal
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pipedream/types/proxy_response_binary.py | New type alias for binary proxy responses |
| src/pipedream/types/emitter.py | Added optional emit_on_deploy field to deployed component emitter |
| src/pipedream/types/deployed_component.py | Added emit_on_deploy field with documentation |
| src/pipedream/types/init.py | Exported new ProxyResponseBinary type |
| src/pipedream/triggers/raw_client.py | Added emit_on_deploy parameter to deploy methods |
| src/pipedream/triggers/client.py | Added emit_on_deploy parameter and simplified examples |
| src/pipedream/tokens/client.py | Simplified documentation examples |
| src/pipedream/proxy/raw_client.py | Refactored all HTTP methods to support streaming binary responses with content-type detection |
| src/pipedream/proxy/client.py | Added defensive null check for params parameter |
| src/pipedream/deployed_triggers/raw_client.py | Added emit_on_deploy parameter to update methods |
| src/pipedream/deployed_triggers/client.py | Added emit_on_deploy parameter and simplified examples |
| src/pipedream/core/client_wrapper.py | Updated version strings to 1.0.12 |
| src/pipedream/actions/raw_client.py | Fixed type annotation for stash_id parameter |
| src/pipedream/actions/client.py | Simplified documentation examples |
| src/pipedream/accounts/client.py | Simplified documentation examples |
| src/pipedream/components/client.py | Simplified documentation examples |
| src/pipedream/apps/client.py | Simplified documentation examples |
| pyproject.toml | Version bump to 1.0.12 |
| poetry.lock | Updated certifi and exceptiongroup dependencies |
| README.md | Added table of contents and simplified examples |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 19 out of 20 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
src/pipedream/proxy/raw_client.py:3
- Import of 'contextlib' is not used.
import contextlib
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 21 out of 22 changed files in this pull request and generated 11 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| external_user_id="external_user_id", | ||
| account_id="account_id", | ||
| headers={"Extra-Downstream-Header": "some value"} | ||
| params={"limit": 10}, |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing comma after the headers parameter on line 80. This will cause a syntax error. Line 80 should end with a comma:
headers={"Extra-Downstream-Header": "some value"},
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all values in params are lists before updating | |
| params_as_lists = {k: v if isinstance(v, list) else [v] for k, v in params.items()} | |
| existing_params.update(params_as_lists) |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all param values are lists for compatibility with urlencode(doseq=True) | |
| normalized_params = { | |
| k: v if isinstance(v, (list, tuple)) else [v] | |
| for k, v in params.items() | |
| } | |
| existing_params.update(normalized_params) |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| for k, v in params.items(): | |
| existing_params[k] = v if isinstance(v, list) else [v] |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| for k, v in (params or {}).items(): | |
| # If value is already a list, use as-is; else wrap in a list | |
| existing_params[k] = v if isinstance(v, list) else [v] |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all param values are lists before updating | |
| params_as_lists = {k: v if isinstance(v, list) else [v] for k, v in params.items()} | |
| existing_params.update(params_as_lists) |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all values in params are lists for compatibility with urlencode(doseq=True) | |
| params_as_lists = { | |
| k: v if isinstance(v, (list, tuple)) else [v] | |
| for k, v in params.items() | |
| } | |
| existing_params.update(params_as_lists) |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all values in params are lists before updating | |
| params_as_lists = {k: v if isinstance(v, list) else [v] for k, v in params.items()} | |
| existing_params.update(params_as_lists) |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all values in params are lists before updating existing_params | |
| for k, v in params.items(): | |
| if isinstance(v, (list, tuple)): | |
| existing_params[k] = list(v) | |
| else: | |
| existing_params[k] = [v] |
src/pipedream/proxy/client.py
Outdated
| if params: | ||
| parsed = urlparse(url) | ||
| existing_params = parse_qs(parsed.query) | ||
| existing_params.update(params) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parse_qs returns a dictionary where values are lists (e.g., {'key': ['value']}), but params is Dict[str, Any] where values are typically strings or other scalars. Calling existing_params.update(params) will result in mixed value types (some lists, some scalars), which will cause urlencode to produce incorrect query strings. Consider converting params values to lists before updating, or restructure the logic to properly handle both existing and new query parameters.
| existing_params.update(params) | |
| # Ensure all param values are lists for urlencode with doseq=True | |
| normalized_params = { | |
| k: v if isinstance(v, (list, tuple)) else [v] | |
| for k, v in params.items() | |
| } | |
| existing_params.update(normalized_params) |
This PR regenerates code to match the latest API Definition.