From 2b2866d3c238beebcdff8b8e647ebcde3ee813b2 Mon Sep 17 00:00:00 2001 From: Arthur Bit-Monnot Date: Fri, 17 Nov 2023 14:54:02 +0100 Subject: [PATCH] fix(htn): Remove `ACTION_BASED` class from HTN planning problem kind. While it made sense to have it there, it would prevent pure HTN planner from declaring that they do not support purely non-hierarchical planning. --- unified_planning/model/htn/hierarchical_problem.py | 1 + unified_planning/test/examples/hierarchical.py | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/unified_planning/model/htn/hierarchical_problem.py b/unified_planning/model/htn/hierarchical_problem.py index 6bf7aefbf..ac98fb660 100644 --- a/unified_planning/model/htn/hierarchical_problem.py +++ b/unified_planning/model/htn/hierarchical_problem.py @@ -130,6 +130,7 @@ def kind(self) -> "up.model.problem_kind.ProblemKind": minimum time as possible.""" factory = self._kind_factory() factory.kind.set_problem_class("HIERARCHICAL") + factory.kind.unset_problem_class("ACTION_BASED") (TO, PO, TEMPORAL) = (0, 1, 2) def lvl(tn: AbstractTaskNetwork): diff --git a/unified_planning/test/examples/hierarchical.py b/unified_planning/test/examples/hierarchical.py index ecab9c7b0..1a50a15cd 100644 --- a/unified_planning/test/examples/hierarchical.py +++ b/unified_planning/test/examples/hierarchical.py @@ -242,6 +242,7 @@ def goto_hier( if __name__ == "__main__": - for name, problem in get_example_problems().items(): - print(f"======= {name} ======") - print(str(problem)) + for name, test_case in get_example_problems().items(): + print(f"\n======= {name} ======\n") + print(test_case.problem.kind) + print(test_case.problem)