From 053ffae8746d0d9a085fcc8100f2a734abbc814c Mon Sep 17 00:00:00 2001 From: CaptainOfHacks Date: Tue, 28 Mar 2023 21:05:45 +0300 Subject: [PATCH] Update rml_mapper.py --- ted_sws/notice_transformer/adapters/rml_mapper.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ted_sws/notice_transformer/adapters/rml_mapper.py b/ted_sws/notice_transformer/adapters/rml_mapper.py index 6f4cd7d10..d4db38416 100644 --- a/ted_sws/notice_transformer/adapters/rml_mapper.py +++ b/ted_sws/notice_transformer/adapters/rml_mapper.py @@ -61,13 +61,17 @@ class RMLMapper(RMLMapperABC): """ This class is a concrete implementation of the rml-mapper adapter. """ - def __init__(self, rml_mapper_path: Path, serialization_format: SerializationFormat = TURTLE_SERIALIZATION_FORMAT): + def __init__(self, rml_mapper_path: Path, serialization_format: SerializationFormat = TURTLE_SERIALIZATION_FORMAT, + transformation_timeout: float = None + ): """ :param rml_mapper_path: the path to the rml-mapper executable :param serialization_format: serialization format + :param serialization_format: transformation_timeout """ self.rml_mapper_path = rml_mapper_path self.serialization_format = serialization_format + self.transformation_timeout = transformation_timeout def execute(self, package_path: Path) -> str: """ @@ -87,7 +91,7 @@ def execute(self, package_path: Path) -> str: """ # java -jar ./rmlmapper.jar -m rml.ttl -s turtle -o output.ttl bash_script = f"cd {package_path} && java -jar {self.rml_mapper_path} -m {package_path / MS_TRANSFORM_FOLDER_NAME / MS_MAPPINGS_FOLDER_NAME / '*'} -s {self.get_serialization_format_value()}" - script_result = subprocess.run(bash_script, shell=True, capture_output=True) + script_result = subprocess.run(bash_script, shell=True, capture_output=True, timeout=self.transformation_timeout) error = script_result.stderr.decode('utf-8') if error: raise Exception(error)