import csv import json import os from swarms.utils.pdf_to_text import pdf_to_text def csv_to_text(file): with open(file) as file: reader = csv.reader(file) data = list(reader) return str(data) def json_to_text(file): with open(file) as file: data = json.load(file) return json.dumps(data) def txt_to_text(file): with open(file) as file: data = file.read() return data def md_to_text(file): if not os.path.exists(file): raise FileNotFoundError(f"No such file or directory: '{file}'") with open(file) as file: data = file.read() return data def data_to_text(file): """ Converts the given data file to text format. Args: file (str): The path to the data file. Returns: str: The text representation of the data file. Raises: FileNotFoundError: If the file does not exist. IOError: If there is an error reading the file. Examples: >>> data_to_text("data.csv") 'This is the text representation of the data file.' """ if not os.path.exists(file): raise FileNotFoundError(f"File not found: {file}") try: _, ext = os.path.splitext(file) ext = ( ext.lower() ) # Convert extension to lowercase for case-insensitive comparison if ext == ".csv": return csv_to_text(file) elif ext == ".json": return json_to_text(file) elif ext == ".txt": return txt_to_text(file) elif ext == ".pdf": return pdf_to_text(file) elif ext == ".md": return md_to_text(file) else: with open(file) as file: data = file.read() return data except Exception as e: raise OSError(f"Error reading file: {file}") from e