diff --git a/src/aare/devices/mx_lib.py b/src/aare/devices/mx_lib.py index 6e4a7498..1f40ed06 100644 --- a/src/aare/devices/mx_lib.py +++ b/src/aare/devices/mx_lib.py @@ -246,3 +246,10 @@ def wait_enum_condition(pv: PV, value: Union[str, int, re.Pattern], *, timeout: if time.time() > tout: raise TimeoutError(f"timeout waiting for enum {pv.pvname} == {value}," f"current value is {pv.get(as_string=True)}") + +def clean_filename(self, filename: str) -> str: + cleaned = re.sub(r"[^A-Za-z0-9._-]", "_", filename.strip()) + cleaned = cleaned.strip("._-") + if not cleaned: + raise ValueError("Filename is empty after sanitization.") + return cleaned \ No newline at end of file