From eee39b238b97c31fdcbf6f704dbd99e66535788c Mon Sep 17 00:00:00 2001 From: Daulet Amirkhanov Date: Wed, 22 Oct 2025 19:34:37 +0100 Subject: [PATCH] fix: handle newlines explicitly when storing files --- .../files/storage/LocalFileStorage.py | 18 +++++++-------- .../files/storage/S3FileStorage.py | 22 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/cognee/infrastructure/files/storage/LocalFileStorage.py b/cognee/infrastructure/files/storage/LocalFileStorage.py index c48d9a45d..d64f87108 100644 --- a/cognee/infrastructure/files/storage/LocalFileStorage.py +++ b/cognee/infrastructure/files/storage/LocalFileStorage.py @@ -82,16 +82,16 @@ class LocalFileStorage(Storage): self.ensure_directory_exists(file_dir_path) if overwrite or not os.path.exists(full_file_path): - with open( - full_file_path, - mode="w" if isinstance(data, str) else "wb", - encoding="utf-8" if isinstance(data, str) else None, - ) as file: - if hasattr(data, "read"): - data.seek(0) - file.write(data.read()) - else: + if isinstance(data, str): + with open(full_file_path, mode="w", encoding="utf-8", newline="\n") as file: file.write(data) + else: + with open(full_file_path, mode="wb") as file: + if hasattr(data, "read"): + data.seek(0) + file.write(data.read()) + else: + file.write(data) file.close() diff --git a/cognee/infrastructure/files/storage/S3FileStorage.py b/cognee/infrastructure/files/storage/S3FileStorage.py index 00b67337b..11c5138bd 100644 --- a/cognee/infrastructure/files/storage/S3FileStorage.py +++ b/cognee/infrastructure/files/storage/S3FileStorage.py @@ -70,18 +70,18 @@ class S3FileStorage(Storage): if overwrite or not await self.file_exists(file_path): def save_data_to_file(): - with self.s3.open( - full_file_path, - mode="w" if isinstance(data, str) else "wb", - encoding="utf-8" if isinstance(data, str) else None, - ) as file: - if hasattr(data, "read"): - data.seek(0) - file.write(data.read()) - else: + if isinstance(data, str): + with self.s3.open( + full_file_path, mode="w", encoding="utf-8", newline="\n" + ) as file: file.write(data) - - file.close() + else: + with self.s3.open(full_file_path, mode="wb") as file: + if hasattr(data, "read"): + data.seek(0) + file.write(data.read()) + else: + file.write(data) await run_async(save_data_to_file)