From 07995a15978f948dc09d68da6cc24a33dc530862 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Laurent?= <francois.laurent@posteo.net>
Date: Wed, 7 Feb 2024 15:33:29 +0100
Subject: [PATCH] implements #214

---
 src/taggingbackends/explorer.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/taggingbackends/explorer.py b/src/taggingbackends/explorer.py
index 5ee4a0b..11bcae2 100644
--- a/src/taggingbackends/explorer.py
+++ b/src/taggingbackends/explorer.py
@@ -477,6 +477,20 @@ run `poetry add {pkg}` from directory: \n
                     logging.warning("multiple label files found")
                 found += 1
         assert 0 < len(input_files)
+        if labels.metadata and 'filename' in labels.metadata:
+            # ensure the file listed in the metadata comes first in the
+            # input_files list
+            primary_input = labels.metadata['filename']
+            for file in input_files:
+                if file.name == primary_input:
+                    primary_input = file
+                    break
+            if isinstance(primary_input, str):
+                logging.warning(f'cannot find file: {primary_input}')
+            elif input_files[0] is not primary_input:
+                input_files = [file for file in input_files if file is not primary_input]
+                input_files.insert(0, primary_input)
+        #
         labels.tracking = input_files
         #
         if not labels.metadata:
-- 
GitLab