I've noticed that the order of the results is different everytime I inhabit. Below is my script.
You can see how the order is different in the outout section.
from cls_luigi.inhabitation_task import RepoMeta, LuigiCombinator, ClsParameter
from cls.fcl import FiniteCombinatoryLogic
from cls.subtypes import Subtypes
import luigi
class FirstTask(luigi.Task, LuigiCombinator):
abstract = False
class AbstractTask(luigi.Task, LuigiCombinator):
abstract = True
first_task = ClsParameter(tpe=FirstTask.return_type())
class ConcreteTask1(AbstractTask):
abstract = False
class ConcreteTask2(AbstractTask):
abstract = False
class ConcreteTask3(AbstractTask):
abstract = False
if __name__ == '__main__':
for i in range(5):
target = AbstractTask.return_type()
repository = RepoMeta.repository
fcl = FiniteCombinatoryLogic(repository, Subtypes(RepoMeta.subtypes), processes=1)
inhabitation_result = fcl.inhabit(target)
max_tasks_when_infinite = 10
actual = inhabitation_result.size()
max_results = max_tasks_when_infinite
if actual > 0:
max_results = actual
results = [t() for t in inhabitation_result.evaluated[0:max_results]]
for r in results:
print(r)
print("==========================================================\n")
/home/hadi/PycharmProjects/cls-luigi/.venv/bin/python /home/hadi/PycharmProjects/cls-luigi/examples/ml_blood_sugar_level/variant_1.py
ConcreteTask3(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask2(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask1(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
==========================================================
ConcreteTask1(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask2(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask3(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
==========================================================
ConcreteTask1(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask2(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask3(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
==========================================================
ConcreteTask3(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask1(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask2(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
==========================================================
ConcreteTask3(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask1(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
ConcreteTask2(config_index=, first_task={"__type__": "cls_luigi.inhabitation_task.RepoMeta.WrappedTask", "module": "__main__", "task_class": "FirstTask", "arguments": []})
==========================================================
Process finished with exit code 0
Description
I've noticed that the order of the results is different everytime I inhabit. Below is my script.
You can see how the order is different in the outout section.
What I Did
Output: