Allow retrying retrieving rdf from website a few times.
authorDiane Trout <diane@caltech.edu>
Mon, 10 Sep 2012 21:15:32 +0000 (14:15 -0700)
committerDiane Trout <diane@caltech.edu>
Mon, 10 Sep 2012 21:15:32 +0000 (14:15 -0700)
htsworkflow/util/rdfhelp.py

index b95d1ff3f3c5e0af929131007c25ae096379dd1d..7f8902a7615969c71e17ec2a2b6574a6dc65d742 100644 (file)
@@ -276,7 +276,18 @@ def load_into_model(model, parser_name, path, ns=None):
     logger.info("Opening {0} with parser {1}".format(url, parser_name))
 
     rdf_parser = RDF.Parser(name=parser_name)
-    for s in rdf_parser.parse_as_stream(url, ns):
+
+    retries = 3
+    while retries > 0:
+        try:
+            retries -= 1
+            statements = rdf_parser.parse_as_stream(url, ns)
+            retries = 0
+        except RDF.RedlandError, e:
+            errmsg = "RDF.RedlandError: {0} {1} tries remaining"
+            logger.error(errmsg.format(str(e), tries))
+
+    for s in statements:
         conditionally_add_statement(model, s, ns)
 
 def load_string_into_model(model, parser_name, data, ns=None):