|  | """Module containing File Reader, File Writer, Json Parser, and Jsonl Serializer classes""" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | import json | 
					
						
						|  | import sys | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | class FileReader: | 
					
						
						|  | """ | 
					
						
						|  | Reads a file and returns its contents as a string | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | def read(self, file_path): | 
					
						
						|  | with open(file_path, encoding="utf-8") as file: | 
					
						
						|  | return file.read() | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | class FileWriter: | 
					
						
						|  | """ | 
					
						
						|  | Writes a string to a file | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | def __init__(self, file_path): | 
					
						
						|  | self.file_path = file_path | 
					
						
						|  |  | 
					
						
						|  | def write(self, content): | 
					
						
						|  | with open(self.file_path, "w", encoding="utf-8") as file: | 
					
						
						|  | file.write(content) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | class StdoutWriter: | 
					
						
						|  | """ | 
					
						
						|  | Writes a string to stdout | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | def write(self, content): | 
					
						
						|  | sys.stdout.write(content) | 
					
						
						|  | sys.stdout.write("\n") | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | class JsonParser: | 
					
						
						|  | """ | 
					
						
						|  | Parses a string as JSON and returns the result | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | def parse(self, content): | 
					
						
						|  | return json.loads(content) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | class JsonlSerializer: | 
					
						
						|  | """ | 
					
						
						|  | Serializes a list of JSON objects into a JSONL string | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | def serialize(self, data): | 
					
						
						|  | lines = [json.dumps(item) for item in data] | 
					
						
						|  | return "\n".join(lines) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | class JsonToJsonlConverter: | 
					
						
						|  | """ | 
					
						
						|  | Converts a JSON file to JSONL | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | def __init__(self, file_reader, file_writer, json_parser, jsonl_serializer): | 
					
						
						|  | self.file_reader = file_reader | 
					
						
						|  | self.file_writer = file_writer | 
					
						
						|  | self.json_parser = json_parser | 
					
						
						|  | self.jsonl_serializer = jsonl_serializer | 
					
						
						|  |  | 
					
						
						|  | def convert( | 
					
						
						|  | self, input_file_path, output_file_path | 
					
						
						|  | ): | 
					
						
						|  | content = self.file_reader.read(input_file_path) | 
					
						
						|  | data = self.json_parser.parse(content) | 
					
						
						|  |  | 
					
						
						|  | jsonl_content = self.jsonl_serializer.serialize(data) | 
					
						
						|  | self.file_writer.write(jsonl_content) | 
					
						
						|  |  |