From 9e377aa6157b75b6d14b65c3f5dea0dc32ac88cf Mon Sep 17 00:00:00 2001 From: muddymudskipper Date: Mon, 8 Jul 2024 18:22:53 +0100 Subject: [PATCH] use tempfile module --- cmem_plugin_reason/plugin_reason.py | 8 ++------ cmem_plugin_reason/plugin_validate.py | 14 +++----------- cmem_plugin_reason/utils.py | 4 +--- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/cmem_plugin_reason/plugin_reason.py b/cmem_plugin_reason/plugin_reason.py index 501db75..7fd12b9 100644 --- a/cmem_plugin_reason/plugin_reason.py +++ b/cmem_plugin_reason/plugin_reason.py @@ -2,8 +2,8 @@ from datetime import UTC, datetime from pathlib import Path +from tempfile import TemporaryDirectory from time import time -from uuid import uuid4 import validators.url from cmem.cmempy.dp.proxy.graph import get @@ -245,7 +245,6 @@ def __init__( # noqa: PLR0913 self.reasoner = reasoner self.validate_profile = validate_profile self.max_ram_percentage = max_ram_percentage - self.temp = f"reason_{uuid4().hex}" def get_graphs(self, graphs: dict, context: ExecutionContext) -> None: """Get graphs from CMEM""" @@ -315,8 +314,5 @@ def _execute(self, context: ExecutionContext) -> None: def execute(self, inputs: tuple, context: ExecutionContext) -> None: # noqa: ARG002 """Remove temp files on error""" - try: + with TemporaryDirectory() as self.temp: self._execute(context) - except Exception as exc: - remove_temp(self) - raise type(exc)(exc) from exc diff --git a/cmem_plugin_reason/plugin_validate.py b/cmem_plugin_reason/plugin_validate.py index 6d145d0..2fbcc5d 100644 --- a/cmem_plugin_reason/plugin_validate.py +++ b/cmem_plugin_reason/plugin_validate.py @@ -2,8 +2,8 @@ from datetime import UTC, datetime from pathlib import Path +from tempfile import TemporaryDirectory from time import time -from uuid import uuid4 import validators.url from cmem.cmempy.dp.proxy.graph import get @@ -33,7 +33,6 @@ get_provenance, post_profiles, post_provenance, - remove_temp, robot, send_result, validate_profiles, @@ -131,7 +130,6 @@ def __init__( # noqa: PLR0913 self.md_filename = md_filename if write_md else "mdfile.md" self.validate_profile = validate_profile self.max_ram_percentage = max_ram_percentage - self.temp = f"reason_{uuid4().hex}" def get_graphs(self, graphs: dict, context: ExecutionContext) -> None: """Get graphs from CMEM""" @@ -243,11 +241,5 @@ def _execute(self, context: ExecutionContext) -> Entities: def execute(self, inputs: tuple, context: ExecutionContext) -> Entities: # noqa: ARG002 """Remove temp files on error""" - try: - output = self._execute(context) - remove_temp(self) - except Exception as exc: - remove_temp(self) - raise type(exc)(exc) from exc - else: - return output + with TemporaryDirectory() as self.temp: + return self._execute(context) diff --git a/cmem_plugin_reason/utils.py b/cmem_plugin_reason/utils.py index 108cf8a..c808a01 100644 --- a/cmem_plugin_reason/utils.py +++ b/cmem_plugin_reason/utils.py @@ -21,8 +21,6 @@ from cmem_plugin_base.dataintegration.types import BoolParameterType, IntParameterType from defusedxml import minidom -from . import __path__ - REASONERS = OrderedDict( { "elk": "ELK", @@ -218,7 +216,7 @@ def get_provenance(plugin: WorkflowPlugin, context: ExecutionContext) -> dict | def robot(cmd: str, max_ram_percentage: int) -> CompletedProcess: """Run robot.jar""" - jar = Path(__path__[0]) / "bin" / "robot.jar" + jar = Path("cmem_plugin_reason") / "bin" / "robot.jar" cmd = f"java -XX:MaxRAMPercentage={max_ram_percentage} -jar {jar} " + cmd return run(shlex.split(cmd), check=False, capture_output=True) # noqa: S603