diff --git a/cubicweb_rodolf/process_helpers.py b/cubicweb_rodolf/process_helpers.py index f88ce8d8eff7210ff83b4542e558c19967e80c35_Y3ViaWN3ZWJfcm9kb2xmL3Byb2Nlc3NfaGVscGVycy5weQ==..4e4f832447526e7e858393f06370836311493b13_Y3ViaWN3ZWJfcm9kb2xmL3Byb2Nlc3NfaGVscGVycy5weQ== 100644 --- a/cubicweb_rodolf/process_helpers.py +++ b/cubicweb_rodolf/process_helpers.py @@ -5,6 +5,14 @@ from cubicweb.rdf import RDF_MIMETYPE_TO_FORMAT +from rdf_data_manager import delete_graph, upload_graph + +from cubicweb_rodolf.schema import ImportProcedure + + +UPLOAD_MAX = 3 +UPLOAD_DELAY = 10 + def get_graph_from_url(download_url: str, log: logging.Logger) -> Graph: response = requests.get( @@ -15,7 +23,8 @@ ) if not response.ok: log.error( - f"Cannot get file {download_url}: {response.status_code} {response.text}" + f"Cannot get file {download_url}:" + f" {response.status_code} {response.text}" ) response.raise_for_status() content_type = response.headers["Content-Type"] @@ -28,3 +37,26 @@ graph = ConjunctiveGraph() graph.parse(data=response.text, format=rdf_parse_format) return graph + + +def upload_graph_to_sparql_endpoint( + import_procedure: ImportProcedure, + graph: Graph, + named_graph: str, + filename: str, + log: logging.Logger, +) -> None: + delete_graph( + import_procedure.virtuoso_credentials, + named_graph, + UPLOAD_MAX, + UPLOAD_DELAY, + ) + upload_graph( + import_procedure.virtuoso_credentials, + named_graph, + graph, + filename, + UPLOAD_MAX, + UPLOAD_DELAY, + )