From f7a5c055a1cbee8df8d5b81ae41d5897a0ef9101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Zar=C4=99bski?= Date: Mon, 11 Aug 2025 13:24:06 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20non-ascii=20names=20in=20o?= =?UTF-8?q?ffline=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simvue/factory/proxy/offline.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/simvue/factory/proxy/offline.py b/simvue/factory/proxy/offline.py index 4347e1d7..1386c506 100644 --- a/simvue/factory/proxy/offline.py +++ b/simvue/factory/proxy/offline.py @@ -6,6 +6,7 @@ import time import typing import uuid +import unicodedata import randomname from simvue.factory.proxy.base import SimvueBaseClass @@ -65,6 +66,15 @@ def _mock_api_post( self._write_json(filename, data) return data + @staticmethod + def _generate_random_name() -> str: + """Generates a random name with only valid ASCII characters.""" + return ( + unicodedata.normalize("NFKD", randomname.get_name()) + .encode("ascii", "ignore") + .decode("ascii") + ) + @skip_if_failed("_aborted", "_suppress_errors", (None, None)) def create_run(self, data) -> tuple[str, str | None]: """ @@ -75,7 +85,7 @@ def create_run(self, data) -> tuple[str, str | None]: return (None, None) if not self.name: - self.name = randomname.get_name() + self.name = self._generate_random_name() try: os.makedirs(self._directory, exist_ok=True)