diff --git a/src/lib.py b/src/lib.py new file mode 100644 index 0000000..afb9910 --- /dev/null +++ b/src/lib.py @@ -0,0 +1,9 @@ +def sanitize_name(name: str) -> str: + """ + Sanitize a name by removing all non-letter characters except hyphens and Scandinavian letters. + """ + # Replace Scandinavian letters + name = name.replace('ä', 'a').replace('ö', 'o') + name = name.replace('Ä', 'A').replace('Ö', 'O') + # Remove all non-letter characters except hyphens + return ''.join(c for c in name if c.isalpha() or c == '-') \ No newline at end of file diff --git a/src/psm_parser.py b/src/psm_parser.py index 4a34409..a28dc43 100644 --- a/src/psm_parser.py +++ b/src/psm_parser.py @@ -1,6 +1,6 @@ from pathlib import Path -from xml_parser import sanitize_name +from lib import sanitize_name from models.savefile import SaveFile get_all_code = """ diff --git a/src/xml_parser.py b/src/xml_parser.py index e3b6b19..606059e 100644 --- a/src/xml_parser.py +++ b/src/xml_parser.py @@ -3,6 +3,7 @@ from pathlib import Path import click from models.savefile import SaveFile +from lib import sanitize_name def write_xml_data(savefile: SaveFile) -> None: filename = Path("output/CodeServerConnector.xml") @@ -17,16 +18,6 @@ def write_xml_data(savefile: SaveFile) -> None: with open(filename, "w", encoding="utf-8-sig") as f: f.write(xml_str) -def sanitize_name(name: str) -> str: - """ - Sanitize a name by removing all non-letter characters except hyphens and Scandinavian letters. - """ - # Replace Scandinavian letters - name = name.replace('ä', 'a').replace('ö', 'o') - name = name.replace('Ä', 'A').replace('Ö', 'O') - # Remove all non-letter characters except hyphens - return ''.join(c for c in name if c.isalpha() or c == '-') - def add_connection(root: ET.Element, name: str, attr_list: list[str], description: str = "Default description") -> ET.Element: """ Add a new connection parameter to the XML configuration.