From 4fd2b2feb19ba5f22c4b91497557c730af516750 Mon Sep 17 00:00:00 2001 From: "codeflash-ai[bot]" <148906541+codeflash-ai[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:39:58 +0000 Subject: [PATCH] refactor: Speed up function `_serialize_series` by 234% in PR #6044 (`refactor-serialization`) (#6079) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Implement serialization functions for various data types and add a unified serialize method * optmize conditional Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com> * fix: Update string and list truncation to include ellipsis for clarity * ⚡️ Speed up function `_serialize_series` by 234% in PR #6044 (`refactor-serialization`) Certainly! Here is a more optimized version of the program. Changes made. 1. Replaced the `apply` method with dictionary comprehension. This avoids creating an intermediate Series, which can be an expensive operation. 2. Moved `_truncate_value` outside of the main function to keep the main function concise and focused. * refactor: Remove unused `_truncate_value` function from serialization module --------- Co-authored-by: Gabriel Luiz Freitas Almeida Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com> --- src/backend/base/langflow/serialization/serialization.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/base/langflow/serialization/serialization.py b/src/backend/base/langflow/serialization/serialization.py index 26fe9b21d..269776323 100644 --- a/src/backend/base/langflow/serialization/serialization.py +++ b/src/backend/base/langflow/serialization/serialization.py @@ -128,8 +128,7 @@ def _serialize_series(obj: pd.Series, max_length: int | None, max_items: int | N """Serialize pandas Series to a dictionary format.""" if max_items is not None and len(obj) > max_items: obj = obj.head(max_items) - obj = obj.apply(lambda x: _truncate_value(x, max_length, max_items)) - return obj.to_dict() + return {index: _truncate_value(value, max_length, max_items) for index, value in obj.items()} def _is_numpy_type(obj: Any) -> bool: