diff --git a/docutranslate/__init__.py b/docutranslate/__init__.py index c03d949..2d41507 100644 --- a/docutranslate/__init__.py +++ b/docutranslate/__init__.py @@ -1,3 +1,3 @@ # SPDX-FileCopyrightText: 2025 QinHan # SPDX-License-Identifier: MPL-2.0 -__version__="1.3.0" \ No newline at end of file +__version__="1.3.0b1" \ No newline at end of file diff --git a/docutranslate/glossary/glossary.py b/docutranslate/glossary/glossary.py index 08dac11..aa283c9 100644 --- a/docutranslate/glossary/glossary.py +++ b/docutranslate/glossary/glossary.py @@ -1,32 +1,38 @@ # SPDX-FileCopyrightText: 2025 QinHan # SPDX-License-Identifier: MPL-2.0 +import csv +from io import StringIO + from docutranslate.ir.document import Document class Glossary: - def __init__(self,glossary_dict:dict[str:str]=None): - self.glossary_dict=glossary_dict + def __init__(self, glossary_dict: dict[str:str] = None): + self.glossary_dict = glossary_dict - def update(self,update_dict:dict[str:str]): - for src,dst in update_dict.items(): + def update(self, update_dict: dict[str:str]): + for src, dst in update_dict.items(): if src not in self.glossary_dict: - self.glossary_dict[src]=dst + self.glossary_dict[src] = dst - def append_system_prompt(self,text:str): - flag=False - prompt="\n以下为参考术语表:\n" - for src,dst in self.glossary_dict.items(): + def append_system_prompt(self, text: str): + flag = False + prompt = "\n以下为参考术语表:\n" + for src, dst in self.glossary_dict.items(): if src in text: - prompt+=f"{src}=>{dst}\n" - flag=True - prompt+="术语表结束\n" + prompt += f"{src}=>{dst}\n" + flag = True + prompt += "术语表结束\n" if flag: return prompt else: return "" + @staticmethod - def glossary_dict2csv(glossary_dict: dict[str, str], seperator=",", stem="glossary_gen") -> Document: - content = f"src{seperator}dst\n" - for src, dst in glossary_dict.items(): - content += f"{src}{seperator}{dst}\n" - return Document.from_bytes(content=content.encode("utf-8"), suffix=".csv", stem=stem) \ No newline at end of file + def glossary_dict2csv(glossary_dict: dict[str, str], delimiter=",", stem="glossary_gen") -> Document: + csv_rows = [[src, dst] for src, dst in glossary_dict.items()] + content = StringIO() + writer = csv.writer(content, delimiter=delimiter) + writer.writerow(['src', 'dst']) + writer.writerows(csv_rows) + return Document.from_bytes(content=content.getvalue().encode("utf-8"), suffix=".csv", stem=stem)