Skip to content

Commit a5035b2

Browse files
authored
Merge pull request #59 from worldbank/fix-analysis-processing
Fix issue with analysis node not executing
2 parents 6c2d270 + 5e8f608 commit a5035b2

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

geest/core/json_tree_item.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,24 @@ def getDescendantDimensions(self, include_completed=True, include_disabled=False
614614
)
615615
return dimensions
616616

617+
def getDescendantAnalyses(self, include_completed=True):
618+
"""Return the top level analysis item or None if it is completed and include_completed is False.
619+
620+
Will also return None if self is not the top level node
621+
622+
:param include_completed: If True, include dimensions that are completed.
623+
:param include_disabled: If True, include dimensions that are disabled.
624+
result_file
625+
"""
626+
627+
analyses = []
628+
if self.isAnalysis():
629+
if self.getStatus() != "Completed successfully" or include_completed:
630+
analyses.append(self)
631+
for child in self.childItems:
632+
analyses.extend(child.getDescendantAnalyses(include_completed))
633+
return analyses
634+
617635
def getFactorIndicatorGuids(self):
618636
"""Return the list of indicators under this factor."""
619637
guids = []

geest/gui/panels/tree_panel.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,7 +1284,10 @@ def run_item(self, item, shift_pressed):
12841284
dimensions = item.getDescendantDimensions(
12851285
include_completed=not self.run_only_incomplete
12861286
)
1287-
1287+
# Fix for issue #50 - we need to run the analysis last
1288+
analyses = item.getDescendantAnalyses(
1289+
include_completed=not self.run_only_incomplete
1290+
)
12881291
self.overall_progress_bar.setVisible(True)
12891292
self.workflow_progress_bar.setVisible(True)
12901293
self.help_button.setVisible(False)
@@ -1299,7 +1302,9 @@ def run_item(self, item, shift_pressed):
12991302
self.queue_workflow_task(factor, factor.role)
13001303
for dimension in dimensions:
13011304
self.queue_workflow_task(dimension, dimension.role)
1302-
1305+
# Fix for issue #50 - we need to run the analysis last
1306+
for analysis in analyses:
1307+
self.queue_workflow_task(analysis, analysis.role)
13031308
# Commented out see issue #50 - causes double execution of indicator
13041309
# self.queue_workflow_task(item, item.role)
13051310
self.items_to_run = len(indicators) + len(factors) + len(dimensions) + 1

shell.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ in pkgs.mkShell rec {
4545
pythonPackages.numpy
4646
pythonPackages.gdal
4747
pythonPackages.pip
48+
pythonPackages.toml
49+
pythonPackages.typer
4850
pythonPackages.pyqtwebengine
4951
pinnedPkgs.vim
5052
pinnedPkgs.pre-commit

0 commit comments

Comments
 (0)