From c53e82a4234fd49f69332c3816ba90c8cac8fcd8 Mon Sep 17 00:00:00 2001
From: Theophile Terraz <theophile.terraz@inrae.fr>
Date: Wed, 22 Jan 2025 16:01:59 +0100
Subject: [PATCH] debug remove sediment

---
 src/Solver/AdisTS.py                       | 29 ++++++++++++----------
 src/View/BoundaryConditionsAdisTS/Table.py | 12 ++++++---
 src/View/InitialConditionsAdisTS/Table.py  |  2 +-
 src/View/Pollutants/UndoCommand.py         |  4 ++-
 src/View/Pollutants/Window.py              |  4 +--
 5 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/src/Solver/AdisTS.py b/src/Solver/AdisTS.py
index e03a6976..337736dc 100644
--- a/src/Solver/AdisTS.py
+++ b/src/Solver/AdisTS.py
@@ -619,6 +619,7 @@ class AdisTSwc(AdisTS):
 
     @timer
     def read_bin(self, study, repertory, results, qlog=None, name="0"):
+
         repertory_results = os.path.join(repertory, "resultats")
 
         files_bin_names = [el.split("/")[-1]
@@ -626,13 +627,11 @@ class AdisTSwc(AdisTS):
         files_bin_names.insert(0, files_bin_names.pop(
             files_bin_names.index("total_sediment.bin"))
         )
-        print("files names resultats: ", files_bin_names)
 
         ifilename = os.path.join(repertory_results, files_bin_names[0])
 
         logger.info(f"read_bin: Start reading '{ifilename}' ...")
 
-        print("reading ", ifilename)
         with open(ifilename, 'rb') as f:
             # header
             # first line
@@ -651,7 +650,6 @@ class AdisTSwc(AdisTS):
             data = np.fromfile(f, dtype=np.int32, count=2 * ibmax)
             is1 = np.zeros(ibmax, dtype=np.int32)
             is2 = np.zeros(ibmax, dtype=np.int32)
-            print("nombre de biefs : ", ibmax)
 
             logger.debug(f"read_bin: nb_reach = {ibmax}")
             logger.debug(f"read_bin: nb_profile = {ismax}")
@@ -813,15 +811,6 @@ class AdisTSwc(AdisTS):
                                [timestamps_keys[0]].keys())
         type_pol_index = len(phys_data_names)
 
-        # ##print("pol keys: ", pollutants_keys)
-        # ##print("t keys: ", timestamps_keys)
-        # ##print("phys var: ", phys_data_names)
-        # ##print("phys data names mass zero:",
-        #          list(data_tmp[pollutants_keys[1]][timestamps_keys[0]].keys()))
-        # print("set timestamps keys: ", set(timestamps_keys))
-        # print("isma")
-        # ##print("iprofiles: ", iprofiles)
-
         for r, reach in enumerate(reachs):
             for i in range(is1[r]-1, is2[r]):
                 p_i = ip_to_ri(reach, i)
@@ -861,15 +850,29 @@ class AdisTSwc(AdisTS):
             self._export_POLs,
         ]
 
+    def rm_previous_results(self, study, repertory, qlog):
+
+        if "resultats" not in os.listdir(repertory):
+            return
+
+        repertory_results = os.path.join(repertory, "resultats")
+
+        files_bin_names = [el.split("/")[-1]
+                           for el in glob.glob(repertory_results+"/*.bin")]
+        for el in glob.glob(repertory_results+"/*.bin"):
+            os.remove(el)
+
     @timer
     def export(self, study, repertory, mage_rep, qlog=None, name="0"):
-        print("cmd solver adistswc : ", self._cmd_solver)
+        logger.debug(f"cmd solver adistswc : {self._cmd_solver}")
         self._study = study
         name = study.name.replace(" ", "_")
 
         # Generate files
         files = []
 
+        self.rm_previous_results(study, repertory, qlog)
+
         try:
             for func in self.export_func_dict():
                 files = files + func(study, repertory, qlog, name=name)
diff --git a/src/View/BoundaryConditionsAdisTS/Table.py b/src/View/BoundaryConditionsAdisTS/Table.py
index 9f657b46..8b155497 100644
--- a/src/View/BoundaryConditionsAdisTS/Table.py
+++ b/src/View/BoundaryConditionsAdisTS/Table.py
@@ -146,8 +146,7 @@ class TableModel(PamhyrTableModel):
             n = data[row].node
             if n is None:
                 return self._trad["not_associated"]
-            tmp = next(filter(lambda x: x.id == n, self._data._nodes),
-                       None)
+            tmp = next(filter(lambda x: x.id == n, self._data._nodes), None)
             if tmp is not None:
                 return tmp.name
             else:
@@ -156,7 +155,14 @@ class TableModel(PamhyrTableModel):
             n = data[row].pollutant
             if n is None or n == "not_associated" or n == "":
                 return self._trad["not_associated"]
-            return self._data._Pollutants.Pollutants_List[n].name
+            tmp = next(filter(lambda x: x.id == n,
+                              self._data._Pollutants.Pollutants_List
+                              ),
+                       None)
+            if tmp is not None:
+                return tmp.name
+            else:
+                return self._trad["not_associated"]
 
         return QVariant()
 
diff --git a/src/View/InitialConditionsAdisTS/Table.py b/src/View/InitialConditionsAdisTS/Table.py
index e8449812..3ea58198 100644
--- a/src/View/InitialConditionsAdisTS/Table.py
+++ b/src/View/InitialConditionsAdisTS/Table.py
@@ -63,7 +63,7 @@ class ComboBoxDelegate(QItemDelegate):
             reach_id = self._ic_spec_lst[index.row()].reach
 
             reach = next(filter(lambda edge: edge.id == reach_id,
-                                self._data.edges()))
+                                self._data.edges()), None)
 
             if reach_id is not None:
                 val = list(
diff --git a/src/View/Pollutants/UndoCommand.py b/src/View/Pollutants/UndoCommand.py
index 999676a5..085a48b5 100644
--- a/src/View/Pollutants/UndoCommand.py
+++ b/src/View/Pollutants/UndoCommand.py
@@ -101,7 +101,9 @@ class DelCommand(QUndoCommand):
 
         for row in rows:
             self._pollutants.append((row, self._pollutants_lst.get(row)))
-            self._inc_pollutants.append((row, self._inc_pollutants_lst))
+            self._inc_pollutants.append(
+                    (row, self._inc_pollutants_lst.get(row))
+                )
         self._pollutants.sort()
         self._inc_pollutants.sort()
 
diff --git a/src/View/Pollutants/Window.py b/src/View/Pollutants/Window.py
index 37cb36c3..8304ec23 100644
--- a/src/View/Pollutants/Window.py
+++ b/src/View/Pollutants/Window.py
@@ -105,7 +105,6 @@ class PollutantsWindow(PamhyrWindow):
 
     def setup_connections(self):
         self.find(QAction, "action_add").triggered.connect(self.add)
-        self.find(QAction, "action_delete").setEnabled(False)
         self.find(QAction, "action_delete").triggered.connect(self.delete)
         self.find(QAction, "action_edit").triggered.connect(self.edit)
         self.find(QAction, "action_initial_conditions"
@@ -205,8 +204,9 @@ class PollutantsWindow(PamhyrWindow):
         for row in rows:
             pollutant_id = self._pollutants_lst.get(row).id
 
+            iclist = self._study.river.ic_adists.Initial_Conditions_List
             ics_adists = next(filter(lambda x: x.pollutant == pollutant_id,
-                                     self._study.river.ic_adists.lst))
+                                     iclist))
 
             if self.sub_window_exists(
                 InitialConditionsAdisTSWindow,
-- 
GitLab