Skip to content

Conversation

@fern-api
Copy link
Contributor

@fern-api fern-api bot commented Nov 25, 2025

This PR regenerates code to match the latest API Definition.

@jverce jverce force-pushed the fern-bot/2025-11-25T19-28Z branch from 85fa07e to 48a1822 Compare November 25, 2025 21:06
@jverce jverce requested a review from Copilot November 25, 2025 22:25
Copilot finished reviewing on behalf of jverce November 25, 2025 22:27
Copy link

Copilot AI left a 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_deploy field 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.

@jverce jverce requested a review from Copilot November 26, 2025 21:16
Copilot finished reviewing on behalf of jverce November 26, 2025 21:19
Copy link

Copilot AI left a 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.

@jverce jverce requested a review from Copilot December 3, 2025 15:48
Copilot finished reviewing on behalf of jverce December 3, 2025 15:52
Copy link

Copilot AI left a 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},
Copy link

Copilot AI Dec 3, 2025

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"},

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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)

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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)

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
existing_params.update(params)
for k, v in params.items():
existing_params[k] = v if isinstance(v, list) else [v]

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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]

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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)

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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)

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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)

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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]

Copilot uses AI. Check for mistakes.
if params:
parsed = urlparse(url)
existing_params = parse_qs(parsed.query)
existing_params.update(params)
Copy link

Copilot AI Dec 3, 2025

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.

Suggested change
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)

Copilot uses AI. Check for mistakes.
@jverce jverce merged commit 4689a96 into main Dec 3, 2025
3 checks passed
@jverce jverce deleted the fern-bot/2025-11-25T19-28Z branch December 3, 2025 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants