From acda2fd53d8db68566b2d2d3c7035638524542a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Tue, 8 Sep 2020 16:11:10 +0000 Subject: [PATCH] ENH: treat datamodel problems at more places --- src/caosadvancedtools/crawler.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/caosadvancedtools/crawler.py b/src/caosadvancedtools/crawler.py index 5ce325e0..323d1955 100644 --- a/src/caosadvancedtools/crawler.py +++ b/src/caosadvancedtools/crawler.py @@ -193,12 +193,16 @@ class Crawler(object): matches[idx].append(Cfood.__name__) cfoods.append(Cfood(item)) logger.debug("{} matched\n{}.".format( - Cfood.__name__, - item)) + Cfood.__name__, + item)) except DataInconsistencyError as e: logger.debug(traceback.format_exc()) logger.debug(e) except Exception as e: + try: + DataModelProblems.evaluate_exception(e) + except BaseException: + pass logger.debug("Failed during execution of {}!".format( Cfood.__name__)) logger.debug(traceback.format_exc()) @@ -215,16 +219,18 @@ class Crawler(object): for cfood in cfoods: cfood.collect_information() - logger.debug(separated("Trying to attach further items to created CFoods")) + logger.debug( + separated("Trying to attach further items to created CFoods")) for cfood in cfoods: - logger.debug("Matching against {}...".format(cfood.__class__.__name__)) + logger.debug("Matching against {}...".format( + cfood.__class__.__name__)) for idx, item in self.iteritems(): if cfood.looking_for(item): logger.debug("{} matched\n{}.".format( - cfood.__class__.__name__, - item)) + cfood.__class__.__name__, + item)) cfood.attach(item) matches[idx].append(cfood.__class__.__name__) @@ -245,7 +251,7 @@ class Crawler(object): msg = ("Attention: More than one matching cfood!\n" + "Tried to match {}\n".format(item) + "\tRecordTypes:\t" + ", ".join( - matches[idx])+"\n") + matches[idx])+"\n") logger.debug(msg, extra={"identifier": str(item), 'category': "matches"}) @@ -284,6 +290,10 @@ class Crawler(object): logger.debug(traceback.format_exc()) logger.debug(e) except Exception as e: + try: + DataModelProblems.evaluate_exception(e) + except BaseException: + pass logger.info("Failed during execution of {}!".format( cfood.__class__.__name__)) logger.debug(traceback.format_exc()) @@ -301,7 +311,8 @@ class Crawler(object): # only done in SSS mode if "SHARED_DIR" in os.environ: - filename = self.save_form([el[3] for el in pending_changes], path) + filename = self.save_form([el[3] + for el in pending_changes], path) self.send_mail([el[3] for el in pending_changes], filename) for i, el in enumerate(pending_changes): -- GitLab