From bc6a80c6c8d0c66a77c57f841a0a4574104fc7fa Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Thu, 6 Aug 2026 09:57:46 +0100 Subject: [PATCH] Avoid duplicate ryncers when gain reference present --- src/murfey/client/watchdir_multigrid.py | 32 ++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/murfey/client/watchdir_multigrid.py b/src/murfey/client/watchdir_multigrid.py index c155c5b55..7c84762fe 100644 --- a/src/murfey/client/watchdir_multigrid.py +++ b/src/murfey/client/watchdir_multigrid.py @@ -67,22 +67,22 @@ def _handle_metadata(self, directory: Path, extra_directory: str, limited=True): def _handle_fractions(self, directory: Path): processing_started = False - for d02 in directory.glob("Images-Disc*"): - if d02 not in self._seen_dirs: - self.notify( - d02, - remove_files=True, - analyse=self._analyse, - tag="fractions", - ) - self._seen_dirs.append(d02) - processing_started = d02 in self._seen_dirs - if not processing_started: - if ( - directory.is_dir() - and directory not in self._seen_dirs - and list(directory.iterdir()) - ): + if directory.is_dir() and directory not in self._seen_dirs: + # Check contents, and skip .gain files written by EPU + directory_children = [d for d in directory.iterdir() if d.suffix != ".gain"] + for d02 in directory_children: + # Transfer each Images-Disc folder as a separate rsyncer + if d02.name.startswith("Images-Disc") and d02 not in self._seen_dirs: + self.notify( + d02, + remove_files=True, + analyse=self._analyse, + tag="fractions", + ) + self._seen_dirs.append(d02) + processing_started = d02 in self._seen_dirs + if not processing_started and directory_children: + # Tomography case of full directory transfer if no Images-Disc1 self.notify( directory, analyse=self._analyse,