Mercurial > code > home > repos > homeauto
diff service/mqtt_to_rdf/inference.py @ 1674:4a15b4cd4600
don't jsut quietly succeed if iteration limit is reached
author | drewp@bigasterisk.com |
---|---|
date | Wed, 22 Sep 2021 01:02:26 -0700 |
parents | 80f4e741ca4f |
children | aa35ae7a1acc |
line wrap: on
line diff
--- a/service/mqtt_to_rdf/inference.py Wed Sep 22 01:00:32 2021 -0700 +++ b/service/mqtt_to_rdf/inference.py Wed Sep 22 01:02:26 2021 -0700 @@ -436,7 +436,7 @@ rulesIterations = 0 delta = 1 stats['initWorkingSet'] = cast(int, workingSet.__len__()) - while delta > 0 and rulesIterations <= self.rulesIterationLimit: + while delta > 0: log.debug('') log.info(f'{INDENT*1}*iteration {rulesIterations}') @@ -445,6 +445,8 @@ delta += len(implied) rulesIterations += 1 log.info(f'{INDENT*2} this inference iteration added {delta} more implied stmts') + if rulesIterations >= self.rulesIterationLimit: + raise ValueError(f"rule too complex after {rulesIterations=}") stats['iterations'] = rulesIterations stats['timeSpent'] = round(time.time() - startTime, 3) stats['impliedStmts'] = len(implied)