From 2a4b26f8e6abc4a5d64b27136963a2f5c745f099 Mon Sep 17 00:00:00 2001 From: LawyZheng Date: Wed, 13 Aug 2025 11:24:20 +0800 Subject: [PATCH] fix file type detect bug (#3172) --- skyvern/forge/sdk/routes/credentials.py | 4 ++++ skyvern/forge/sdk/workflow/models/block.py | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/skyvern/forge/sdk/routes/credentials.py b/skyvern/forge/sdk/routes/credentials.py index 14765538..b36937ae 100644 --- a/skyvern/forge/sdk/routes/credentials.py +++ b/skyvern/forge/sdk/routes/credentials.py @@ -428,6 +428,10 @@ async def get_onepassword_token( response_model=CreateOnePasswordTokenResponse, summary="Create or update OnePassword service account token", description="Creates or updates a OnePassword service account token for the current organization. Only one valid token is allowed per organization.", + tags=["Auth Tokens"], + openapi_extra={ + "x-fern-sdk-method-name": "update_onepassword_token", + }, ) @base_router.post( "/credentials/onepassword/create/", diff --git a/skyvern/forge/sdk/workflow/models/block.py b/skyvern/forge/sdk/workflow/models/block.py index 93e27639..5a438028 100644 --- a/skyvern/forge/sdk/workflow/models/block.py +++ b/skyvern/forge/sdk/workflow/models/block.py @@ -2450,12 +2450,14 @@ class FileParserBlock(Block): def _detect_file_type_from_url(self, file_url: str) -> FileType: """Detect file type based on file extension in the URL.""" - url_lower = file_url.lower() - if url_lower.endswith((".xlsx", ".xls", ".xlsm")): + url_parsed = urlparse(file_url) + # TODO: use filetype.guess(file_path) to make the detection more robust + suffix = Path(url_parsed.path).suffix.lower() + if suffix in (".xlsx", ".xls", ".xlsm"): return FileType.EXCEL - elif url_lower.endswith(".pdf"): + elif suffix == ".pdf": return FileType.PDF - elif url_lower.endswith(".tsv"): + elif suffix == ".tsv": return FileType.CSV # TSV files are handled by the CSV parser else: return FileType.CSV # Default to CSV for .csv and any other extensions