From ff7cd862a8d7a8af72d981ae5acca849ac34acec Mon Sep 17 00:00:00 2001
From: Egor Sobolev <egor.sobolev@xfel.eu>
Date: Wed, 21 Aug 2024 16:43:38 +0200
Subject: [PATCH] Fix the use of detector source

---
 src/geomtools/powder/image_agg.py |  3 +--
 src/geomtools/powder/powdersum.py | 12 ++++--------
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/geomtools/powder/image_agg.py b/src/geomtools/powder/image_agg.py
index d31e474..7646382 100644
--- a/src/geomtools/powder/image_agg.py
+++ b/src/geomtools/powder/image_agg.py
@@ -79,8 +79,7 @@ class ImageAgg:
             tm0 = time.perf_counter()
             print(f"[{self._rank:2d}] {modno:3d}: ", end="")
 
-            source_id = source_pattern.format(
-                detector_id=self.detector_id, modno=modno)
+            source_id = source_pattern.format(modno)
             dc = dc_img.select(
                 [(source_id, "image.data"), (source_id, "image.mask")],
                 require_all=True
diff --git a/src/geomtools/powder/powdersum.py b/src/geomtools/powder/powdersum.py
index 82186ae..e9aca22 100644
--- a/src/geomtools/powder/powdersum.py
+++ b/src/geomtools/powder/powdersum.py
@@ -181,11 +181,7 @@ def main(argv=None):
     modules = args.modules
     if modules is None:
         re_pattern = re.compile(
-            "^" +
-            source_pattern.format(
-                detector_id=detector_id, modno=r"(?P<modno>\d+)") +
-            "$"
-        )
+            "^" + det_source_pattern.replace("*", r"(?P<modno>\d+)") + "$")
         matches = (re_pattern.match(s) for s in dc_img.all_sources)
         modules = sorted(int(m["modno"]) for m in matches if m is not None)
     num_modules = len(modules)
@@ -217,11 +213,11 @@ def main(argv=None):
     mpi_print()
     mpi_print("Rounding threshold:", rounding_threshold)
 
+    det_source_pattern = det_source_pattern.replace("*", "{}")
     if args.layout is None:
         px_area = None
         for modno in modules:
-            source_id = source_pattern.format(
-                detector_id=detector_id, modno=modno)
+            source_id = det_source_pattern.format(modno)
             if source_id in dc_img.all_sources:
                 break
         shape = dc_img[source_id, "image.data"].shape[1:]
@@ -245,7 +241,7 @@ def main(argv=None):
                    rounding_threshold, px_area=px_area)
 
     agg.prepare(output_fn, mask=mask0, comm=comm, conditions=conditions)
-    agg.compute(dc_img, source_pattern)
+    agg.compute(dc_img, det_source_pattern)
     agg.flush()
 
     tm1 = time.perf_counter()
-- 
GitLab