-
Notifications
You must be signed in to change notification settings - Fork 3
🌿 Fern Regeneration -- December 9, 2025 #257
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
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the WalkthroughThis PR enhances the Python SDK with multiple features and improvements: adds token-based authentication support, introduces a generalized paging mechanism with response types, expands the API surface with a new projects management module, refactors configurable properties using discriminated unions, implements lazy loading throughout, adds new error types, and performs type system refinements to eliminate nested optionality. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Areas requiring extra attention:
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
Comment |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
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.
Actionable comments posted: 27
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
src/pipedream/actions/client.py (1)
453-458: Async docstring example has same yield issue.The async example also uses
yieldoutside a proper async generator definition. Themain()function would need to be declared asasync def main() -> AsyncIterator[...]if yielding.src/pipedream/types/configurable_prop_app.py (1)
16-23: Redundant model_config in subclass.The
model_config/Configblock is identical to what's defined inConfigurablePropBase. While harmless for auto-generated code, this duplication means changes to the base config won't propagate unless regenerated.src/pipedream/types/configurable_prop_integer.py (1)
23-24: Minor inconsistency in field definition style.The
defaultfield uses bare= Nonewhilemin,max, andoptionsusepydantic.Field(default=None). Both work correctly, but the inconsistency may be intentional in the API definition to avoid exposingdefaultin schema metadata.src/pipedream/components/raw_client.py (1)
104-118: Late-binding closure: consider default argument capture for safety.The lambda on line 108 captures
_parsed_nextby reference. While this works correctly in the current code (because_parsed_nextisn't reassigned after the lambda is created), this pattern is fragile. If future modifications reassign_parsed_next, the closure would capture the wrong value.Consider using a default argument to capture by value, which is the idiomatic Python pattern for closures:
- _get_next = lambda: self.list( + _get_next = lambda _cursor=_parsed_next: self.list( - after=_parsed_next, + after=_cursor, before=before, limit=limit, q=q, app=app, registry=registry, component_type=component_type, request_options=request_options, )Since this is auto-generated code from Fern, this is more of an observation than a blocking issue.
src/pipedream/client.py (1)
572-578: Redundantenvironment is not Nonecheck.Since
environmenthas a default value ofPipedreamEnvironment.PRODin all call sites, the conditionenvironment is not Nonewill always be true, making theelsebranch unreachable dead code.def _get_base_url(*, base_url: typing.Optional[str] = None, environment: PipedreamEnvironment) -> str: if base_url is not None: return base_url - elif environment is not None: - return environment.value else: - raise Exception("Please pass in either base_url or environment to construct the client") + return environment.value
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
poetry.lockis excluded by!**/*.lock
📒 Files selected for processing (94)
.fern/metadata.json(1 hunks).fernignore(1 hunks)README.md(3 hunks)pyproject.toml(3 hunks)src/pipedream/__init__.py(4 hunks)src/pipedream/accounts/client.py(11 hunks)src/pipedream/accounts/raw_client.py(15 hunks)src/pipedream/actions/__init__.py(1 hunks)src/pipedream/actions/client.py(12 hunks)src/pipedream/actions/raw_client.py(24 hunks)src/pipedream/actions/types/__init__.py(1 hunks)src/pipedream/actions/types/actions_list_request_registry.py(1 hunks)src/pipedream/apps/client.py(7 hunks)src/pipedream/apps/raw_client.py(7 hunks)src/pipedream/client.py(7 hunks)src/pipedream/components/__init__.py(1 hunks)src/pipedream/components/client.py(15 hunks)src/pipedream/components/raw_client.py(22 hunks)src/pipedream/components/types/__init__.py(1 hunks)src/pipedream/components/types/components_list_request_registry.py(1 hunks)src/pipedream/core/__init__.py(5 hunks)src/pipedream/core/client_wrapper.py(3 hunks)src/pipedream/core/custom_pagination.py(1 hunks)src/pipedream/core/http_client.py(7 hunks)src/pipedream/core/oauth_token_provider.py(3 hunks)src/pipedream/core/pagination.py(5 hunks)src/pipedream/core/pydantic_utilities.py(1 hunks)src/pipedream/deployed_triggers/client.py(11 hunks)src/pipedream/deployed_triggers/raw_client.py(23 hunks)src/pipedream/errors/__init__.py(2 hunks)src/pipedream/errors/bad_request_error.py(1 hunks)src/pipedream/errors/not_found_error.py(1 hunks)src/pipedream/errors/too_many_requests_error.py(1 hunks)src/pipedream/file_stash/raw_client.py(2 hunks)src/pipedream/pipedream.py(2 hunks)src/pipedream/projects/client.py(3 hunks)src/pipedream/projects/raw_client.py(4 hunks)src/pipedream/tokens/client.py(2 hunks)src/pipedream/tokens/raw_client.py(4 hunks)src/pipedream/triggers/__init__.py(1 hunks)src/pipedream/triggers/client.py(12 hunks)src/pipedream/triggers/raw_client.py(22 hunks)src/pipedream/triggers/types/__init__.py(1 hunks)src/pipedream/triggers/types/triggers_list_request_registry.py(1 hunks)src/pipedream/types/__init__.py(9 hunks)src/pipedream/types/account.py(1 hunks)src/pipedream/types/configurable_prop.py(2 hunks)src/pipedream/types/configurable_prop_airtable_base_id.py(1 hunks)src/pipedream/types/configurable_prop_airtable_field_id.py(1 hunks)src/pipedream/types/configurable_prop_airtable_table_id.py(1 hunks)src/pipedream/types/configurable_prop_airtable_view_id.py(1 hunks)src/pipedream/types/configurable_prop_alert.py(1 hunks)src/pipedream/types/configurable_prop_any.py(1 hunks)src/pipedream/types/configurable_prop_app.py(1 hunks)src/pipedream/types/configurable_prop_apphook.py(2 hunks)src/pipedream/types/configurable_prop_base.py(1 hunks)src/pipedream/types/configurable_prop_boolean.py(1 hunks)src/pipedream/types/configurable_prop_data_store.py(1 hunks)src/pipedream/types/configurable_prop_db.py(1 hunks)src/pipedream/types/configurable_prop_dir.py(1 hunks)src/pipedream/types/configurable_prop_discord.py(1 hunks)src/pipedream/types/configurable_prop_discord_channel.py(1 hunks)src/pipedream/types/configurable_prop_discord_channel_array.py(1 hunks)src/pipedream/types/configurable_prop_http.py(1 hunks)src/pipedream/types/configurable_prop_http_request.py(1 hunks)src/pipedream/types/configurable_prop_integer.py(1 hunks)src/pipedream/types/configurable_prop_integer_array.py(1 hunks)src/pipedream/types/configurable_prop_object.py(1 hunks)src/pipedream/types/configurable_prop_sql.py(1 hunks)src/pipedream/types/configurable_prop_string.py(1 hunks)src/pipedream/types/configurable_prop_string_array.py(1 hunks)src/pipedream/types/configurable_prop_timer.py(1 hunks)src/pipedream/types/configurable_prop_type.py(0 hunks)src/pipedream/types/configure_prop_opts.py(1 hunks)src/pipedream/types/configure_prop_response.py(1 hunks)src/pipedream/types/configured_prop_value_any.py(1 hunks)src/pipedream/types/configured_prop_value_object.py(1 hunks)src/pipedream/types/deployed_component.py(1 hunks)src/pipedream/types/emitted_event.py(1 hunks)src/pipedream/types/emitter.py(3 hunks)src/pipedream/types/error_response.py(1 hunks)src/pipedream/types/http_request_auth.py(1 hunks)src/pipedream/types/http_request_auth_type.py(1 hunks)src/pipedream/types/http_request_body.py(1 hunks)src/pipedream/types/http_request_body_mode.py(1 hunks)src/pipedream/types/http_request_body_type.py(1 hunks)src/pipedream/types/http_request_config.py(1 hunks)src/pipedream/types/http_request_field.py(1 hunks)src/pipedream/types/list_projects_response.py(1 hunks)src/pipedream/types/project.py(1 hunks)src/pipedream/types/proxy_response.py(1 hunks)src/pipedream/types/run_action_response.py(1 hunks)src/pipedream/users/raw_client.py(2 hunks)tests/utils/test_http_client.py(2 hunks)
💤 Files with no reviewable changes (1)
- src/pipedream/types/configurable_prop_type.py
🧰 Additional context used
🧬 Code graph analysis (56)
src/pipedream/types/configurable_prop_any.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/users/raw_client.py (1)
src/pipedream/core/pydantic_utilities.py (1)
parse_obj_as(39-44)
src/pipedream/types/list_projects_response.py (4)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/types/page_info.py (1)
PageInfo(9-22)src/pipedream/types/project.py (1)
Project(9-41)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/types/configurable_prop_http_request.py (4)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)src/pipedream/types/http_request_config.py (1)
HttpRequestConfig(12-32)src/pipedream/core/pydantic_utilities.py (1)
Config(70-72)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/types/configurable_prop_airtable_table_id.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/http_request_config.py (5)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/types/http_request_auth.py (1)
HttpRequestAuth(10-31)src/pipedream/types/http_request_body.py (1)
HttpRequestBody(14-32)src/pipedream/types/http_request_field.py (1)
HttpRequestField(9-31)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/errors/not_found_error.py (2)
src/pipedream/core/api_error.py (1)
ApiError(6-23)src/pipedream/core/http_response.py (1)
headers(20-21)
src/pipedream/types/configurable_prop_object.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/http_request_auth.py (2)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/types/configurable_prop_airtable_field_id.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_integer_array.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/project.py (3)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/types/account.py (1)
Config(78-81)src/pipedream/types/configurable_prop.py (14)
Config(58-61)Config(87-90)Config(115-118)Config(144-147)Config(171-174)Config(198-201)Config(228-231)Config(261-264)Config(292-295)Config(320-323)Config(348-351)Config(375-378)Config(405-408)Config(433-436)
src/pipedream/types/configurable_prop_boolean.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/apps/raw_client.py (3)
src/pipedream/core/pagination.py (2)
AsyncPager(57-82)SyncPager(26-53)src/pipedream/types/app.py (1)
App(10-63)src/pipedream/types/list_apps_response.py (1)
ListAppsResponse(11-26)
src/pipedream/deployed_triggers/raw_client.py (4)
src/pipedream/core/pagination.py (2)
AsyncPager(57-82)SyncPager(26-53)src/pipedream/types/get_triggers_response.py (1)
GetTriggersResponse(11-26)src/pipedream/errors/too_many_requests_error.py (1)
TooManyRequestsError(8-10)src/pipedream/core/pydantic_utilities.py (1)
parse_obj_as(39-44)
src/pipedream/types/http_request_field.py (3)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/types/account.py (1)
Config(78-81)src/pipedream/types/configurable_prop.py (14)
Config(58-61)Config(87-90)Config(115-118)Config(144-147)Config(171-174)Config(198-201)Config(228-231)Config(261-264)Config(292-295)Config(320-323)Config(348-351)Config(375-378)Config(405-408)Config(433-436)
src/pipedream/types/configurable_prop_airtable_view_id.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_sql.py (3)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)src/pipedream/types/configurable_prop_sql_auth.py (1)
ConfigurablePropSqlAuth(9-22)src/pipedream/types/configured_prop_value_sql.py (1)
ConfiguredPropValueSql(11-41)
src/pipedream/types/configurable_prop_base.py (3)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/errors/__init__.py (3)
src/pipedream/errors/bad_request_error.py (1)
BadRequestError(8-10)src/pipedream/errors/not_found_error.py (1)
NotFoundError(8-10)src/pipedream/errors/too_many_requests_error.py (1)
TooManyRequestsError(8-10)
src/pipedream/core/custom_pagination.py (1)
src/pipedream/core/client_wrapper.py (2)
AsyncClientWrapper(87-122)SyncClientWrapper(59-84)
src/pipedream/pipedream.py (1)
src/pipedream/client.py (1)
_get_base_url(572-578)
src/pipedream/file_stash/raw_client.py (1)
src/pipedream/core/pydantic_utilities.py (1)
parse_obj_as(39-44)
src/pipedream/errors/bad_request_error.py (2)
src/pipedream/core/api_error.py (1)
ApiError(6-23)src/pipedream/core/http_response.py (1)
headers(20-21)
src/pipedream/types/http_request_body.py (4)
src/pipedream/core/pydantic_utilities.py (2)
UniversalBaseModel(55-153)Config(70-72)src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/http_request_field.py (1)
HttpRequestField(9-31)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/accounts/raw_client.py (3)
src/pipedream/core/pagination.py (2)
AsyncPager(57-82)SyncPager(26-53)src/pipedream/types/list_accounts_response.py (1)
ListAccountsResponse(11-26)src/pipedream/core/pydantic_utilities.py (1)
parse_obj_as(39-44)
tests/utils/test_http_client.py (2)
src/pipedream/core/http_client.py (1)
get_request_body(180-196)src/pipedream/core/remove_none_from_dict.py (1)
remove_none_from_dict(6-11)
src/pipedream/types/configurable_prop_discord.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/tokens/raw_client.py (1)
src/pipedream/core/pydantic_utilities.py (1)
parse_obj_as(39-44)
src/pipedream/core/oauth_token_provider.py (2)
src/pipedream/oauth_tokens/client.py (2)
AsyncOauthTokensClient(78-147)OauthTokensClient(14-75)src/pipedream/core/client_wrapper.py (2)
AsyncClientWrapper(87-122)SyncClientWrapper(59-84)
src/pipedream/apps/client.py (2)
src/pipedream/types/list_apps_response.py (1)
ListAppsResponse(11-26)src/pipedream/core/pagination.py (2)
SyncPager(26-53)AsyncPager(57-82)
src/pipedream/types/configurable_prop_db.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_http.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/core/__init__.py (1)
src/pipedream/core/custom_pagination.py (2)
AsyncCustomPager(94-152)SyncCustomPager(33-91)
src/pipedream/actions/raw_client.py (6)
src/pipedream/core/pagination.py (2)
AsyncPager(57-82)SyncPager(26-53)src/pipedream/core/pydantic_utilities.py (1)
parse_obj_as(39-44)src/pipedream/core/serialization.py (1)
convert_and_respect_annotation_metadata(29-154)src/pipedream/errors/bad_request_error.py (1)
BadRequestError(8-10)src/pipedream/types/get_components_response.py (1)
GetComponentsResponse(11-26)src/pipedream/errors/too_many_requests_error.py (1)
TooManyRequestsError(8-10)
src/pipedream/types/configurable_prop_string_array.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_alert.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_string.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/__init__.py (4)
src/pipedream/errors/bad_request_error.py (1)
BadRequestError(8-10)src/pipedream/errors/not_found_error.py (1)
NotFoundError(8-10)src/pipedream/errors/too_many_requests_error.py (1)
TooManyRequestsError(8-10)src/pipedream/environment.py (1)
PipedreamEnvironment(6-9)
src/pipedream/core/pagination.py (1)
src/pipedream/core/http_sse/_api.py (1)
response(45-46)
src/pipedream/types/configurable_prop_data_store.py (3)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)src/pipedream/core/pydantic_utilities.py (1)
Config(70-72)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/projects/client.py (6)
src/pipedream/core/pagination.py (2)
AsyncPager(57-82)SyncPager(26-53)src/pipedream/core/request_options.py (1)
RequestOptions(11-35)src/pipedream/types/list_projects_response.py (1)
ListProjectsResponse(11-26)src/pipedream/types/project.py (1)
Project(9-41)src/pipedream/types/project_info_response.py (1)
ProjectInfoResponse(10-24)src/pipedream/projects/raw_client.py (10)
AsyncRawProjectsClient(468-914)RawProjectsClient(24-465)create(123-191)create(570-638)delete(243-281)delete(690-730)update(283-355)update(732-804)update_logo(357-418)update_logo(806-867)
src/pipedream/types/configurable_prop_integer.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/actions/client.py (3)
src/pipedream/types/get_components_response.py (1)
GetComponentsResponse(11-26)src/pipedream/actions/raw_client.py (2)
AsyncRawActionsClient(482-934)RawActionsClient(30-479)src/pipedream/core/pagination.py (2)
SyncPager(26-53)AsyncPager(57-82)
src/pipedream/types/configurable_prop_app.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/accounts/client.py (3)
src/pipedream/types/list_accounts_response.py (1)
ListAccountsResponse(11-26)src/pipedream/core/pagination.py (2)
SyncPager(26-53)AsyncPager(57-82)src/pipedream/types/account.py (1)
Account(12-81)
src/pipedream/types/configurable_prop_dir.py (2)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)src/pipedream/types/account.py (1)
Config(78-81)
src/pipedream/types/configurable_prop_airtable_base_id.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_discord_channel.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/client.py (3)
src/pipedream/core/oauth_token_provider.py (3)
OAuthTokenProvider(14-42)get_token(25-31)get_token(56-62)src/pipedream/environment.py (1)
PipedreamEnvironment(6-9)src/pipedream/pipedream.py (1)
_get_base_url(118-122)
src/pipedream/types/configurable_prop_timer.py (1)
src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_apphook.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/types/configurable_prop_discord_channel_array.py (2)
src/pipedream/core/serialization.py (1)
FieldMetadata(11-26)src/pipedream/types/configurable_prop_base.py (1)
ConfigurablePropBase(11-81)
src/pipedream/core/client_wrapper.py (1)
src/pipedream/core/http_client.py (3)
AsyncHttpClient(401-613)get_base_url(213-220)get_base_url(422-429)
src/pipedream/projects/raw_client.py (10)
src/pipedream/core/pagination.py (2)
AsyncPager(57-82)SyncPager(26-53)src/pipedream/core/request_options.py (1)
RequestOptions(11-35)src/pipedream/errors/bad_request_error.py (1)
BadRequestError(8-10)src/pipedream/errors/not_found_error.py (1)
NotFoundError(8-10)src/pipedream/errors/too_many_requests_error.py (1)
TooManyRequestsError(8-10)src/pipedream/types/list_projects_response.py (1)
ListProjectsResponse(11-26)src/pipedream/types/project.py (1)
Project(9-41)src/pipedream/types/project_info_response.py (1)
ProjectInfoResponse(10-24)src/pipedream/core/http_response.py (3)
headers(20-21)HttpResponse(24-38)AsyncHttpResponse(41-55)src/pipedream/core/api_error.py (1)
ApiError(6-23)
src/pipedream/core/http_client.py (2)
src/pipedream/core/remove_none_from_dict.py (1)
remove_none_from_dict(6-11)src/pipedream/core/request_options.py (1)
RequestOptions(11-35)
🪛 Ruff (0.14.8)
src/pipedream/actions/types/actions_list_request_registry.py
5-5: Use X | Y for type annotations
(UP007)
src/pipedream/components/types/__init__.py
13-13: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
16-16: Avoid specifying long messages outside the exception class
(TRY003)
24-24: Avoid specifying long messages outside the exception class
(TRY003)
26-26: Avoid specifying long messages outside the exception class
(TRY003)
29-29: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/types/emitter.py
92-92: Use X | Y for type annotations
Convert to X | Y
(UP007)
src/pipedream/errors/too_many_requests_error.py
9-9: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
9-9: Dynamically typed expressions (typing.Any) are disallowed in body
(ANN401)
src/pipedream/types/http_request_body_type.py
5-5: Use X | Y for type annotations
(UP007)
src/pipedream/types/http_request_auth_type.py
5-5: Use X | Y for type annotations
(UP007)
src/pipedream/components/types/components_list_request_registry.py
5-5: Use X | Y for type annotations
(UP007)
src/pipedream/errors/not_found_error.py
9-9: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
9-9: Dynamically typed expressions (typing.Any) are disallowed in body
(ANN401)
src/pipedream/actions/types/__init__.py
13-13: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
16-16: Avoid specifying long messages outside the exception class
(TRY003)
24-24: Avoid specifying long messages outside the exception class
(TRY003)
26-26: Avoid specifying long messages outside the exception class
(TRY003)
29-29: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/triggers/types/__init__.py
13-13: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
16-16: Avoid specifying long messages outside the exception class
(TRY003)
24-24: Avoid specifying long messages outside the exception class
(TRY003)
26-26: Avoid specifying long messages outside the exception class
(TRY003)
29-29: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/components/__init__.py
13-13: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
16-16: Avoid specifying long messages outside the exception class
(TRY003)
24-24: Avoid specifying long messages outside the exception class
(TRY003)
26-26: Avoid specifying long messages outside the exception class
(TRY003)
29-29: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/types/http_request_body_mode.py
5-5: Use X | Y for type annotations
(UP007)
src/pipedream/core/custom_pagination.py
18-18: Import from collections.abc instead: AsyncIterator, Iterator
Import from collections.abc
(UP035)
70-70: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
131-131: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
src/pipedream/errors/bad_request_error.py
9-9: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
9-9: Dynamically typed expressions (typing.Any) are disallowed in body
(ANN401)
src/pipedream/triggers/__init__.py
13-13: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
16-16: Avoid specifying long messages outside the exception class
(TRY003)
24-24: Avoid specifying long messages outside the exception class
(TRY003)
26-26: Avoid specifying long messages outside the exception class
(TRY003)
29-29: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/core/oauth_token_provider.py
26-26: datetime.datetime.now() called without a tz argument
(DTZ005)
29-29: datetime.datetime.now() called without a tz argument
(DTZ005)
48-48: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
52-52: datetime.datetime.now() called without a tz argument
(DTZ005)
57-57: datetime.datetime.now() called without a tz argument
(DTZ005)
60-60: datetime.datetime.now() called without a tz argument
(DTZ005)
72-72: Missing return type annotation for private function _get_expires_at
(ANN202)
73-73: datetime.datetime.now() called without a tz argument
(DTZ005)
src/pipedream/__init__.py
359-359: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
362-362: Avoid specifying long messages outside the exception class
(TRY003)
370-370: Avoid specifying long messages outside the exception class
(TRY003)
372-372: Avoid specifying long messages outside the exception class
(TRY003)
375-375: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/types/configurable_prop.py
700-724: Use X | Y for type annotations
Convert to X | Y
(UP007)
src/pipedream/triggers/types/triggers_list_request_registry.py
5-5: Use X | Y for type annotations
(UP007)
src/pipedream/client.py
95-95: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
101-101: Do not perform function call os.getenv in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable
(B008)
109-109: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
115-115: Do not perform function call os.getenv in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable
(B008)
127-127: Do not perform function call os.getenv in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable
(B008)
365-365: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
371-371: Do not perform function call os.getenv in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable
(B008)
379-379: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
385-385: Do not perform function call os.getenv in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable
(B008)
397-397: Do not perform function call os.getenv in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable
(B008)
src/pipedream/actions/__init__.py
13-13: Dynamically typed expressions (typing.Any) are disallowed in __getattr__
(ANN401)
16-16: Avoid specifying long messages outside the exception class
(TRY003)
24-24: Avoid specifying long messages outside the exception class
(TRY003)
26-26: Avoid specifying long messages outside the exception class
(TRY003)
29-29: Missing return type annotation for private function __dir__
(ANN202)
src/pipedream/projects/raw_client.py
25-25: Missing return type annotation for special method __init__
Add return type annotation: None
(ANN204)
88-94: Do not assign a lambda expression, use a def
Rewrite _get_next as a def
(E731)
120-120: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
190-190: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
240-240: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
280-280: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
354-354: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
417-417: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
533-533: Missing return type annotation for private function _get_next
(ANN202)
567-567: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
637-637: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
687-687: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
729-729: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
803-803: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
866-866: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
src/pipedream/core/http_client.py
69-69: Standard pseudo-random generators are not suitable for cryptographic purposes
(S311)
75-75: Standard pseudo-random generators are not suitable for cryptographic purposes
(S311)
127-127: Dynamically typed expressions (typing.Any) are disallowed in data
(ANN401)
129-129: Boolean-typed positional argument in function definition
(FBT001)
130-130: Dynamically typed expressions (typing.Any) are disallowed in _maybe_filter_none_from_multipart_data
(ANN401)
This PR regenerates code to match the latest API Definition.
Summary by CodeRabbit
New Features
Documentation
Bug Fixes
Chores
✏️ Tip: You can customize this high-level summary in your review settings.