From 60a1aad6ff51f816db2a7fb4cb869d33e699f28c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Fr=C3=B6jdh?= Date: Fri, 9 Jan 2026 15:28:57 +0100 Subject: [PATCH] allow sls::Pattern in python d.pattern --- python/slsdet/detector.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index 59787b703..eac79c87e 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: LGPL-3.0-or-other # Copyright (C) 2021 Contributors to the SLS Detector Package +import pathlib from ._slsdet import CppDetectorApi from ._slsdet import slsDetectorDefs from ._slsdet import IpAddr, MacAddr @@ -3766,9 +3767,13 @@ class Detector(CppDetectorApi): raise NotImplementedError("Pattern is set only") @pattern.setter - def pattern(self, fname): - fname = ut.make_string_path(fname) - ut.set_using_dict(self.setPattern, fname) + def pattern(self, name_or_pattern): + # If passed a file path, convert to string representation + # with the path expanded. Otherwise it's probably a sls::Pattern + # and we can pass it directly. + if isinstance(name_or_pattern, (pathlib.Path, str)): + name_or_pattern = ut.make_string_path(name_or_pattern) + ut.set_using_dict(self.setPattern, name_or_pattern) @property def patfname(self):