Source code for localizer.supported_file_types.dot_csv

import csv
from localizer.FileHandler import FileHandler

[docs]class FHandler(FileHandler):
[docs] @staticmethod def parse(file:str) -> dict[str, str] | set[str]: o_t = {} cast_to_set = True with open(file, 'r', newline='', encoding="utf-8") as f: csv_reader = csv.reader(f) for row in csv_reader: cr = len(row) # count row (column number) if cr > 0: if row[0].startswith("[LP:IGNORE]"): continue elif cr >= 2: o_t[row[0]] = row[1] # Here we have a dictionary cast_to_set = False else: # cr == 1 o_t[row[0]] = row[0] # Here we have a set (Don't update cast_to_set) if cast_to_set: o_t = set(o_t.keys()) return o_t
[docs] @staticmethod def export(file:str, texts:dict[str, str] | set[str]) -> None: with open(file, 'w', newline='', encoding="utf-8") as f: csv_writer = csv.writer(f) if isinstance(texts, dict): header = ('[LP:IGNORE] ORIGINAL', 'TRANSLATED') text_map = texts.items() else: header = ('[LP:IGNORE] NEW TEXTS',) text_map = map(lambda x: (x,), texts) csv_writer.writerow(header) csv_writer.writerows(text_map)