From 549624bee1c9229e1e84eafc5e9d6eb0d0dd1945 Mon Sep 17 00:00:00 2001 From: PalomoIFCA Date: Wed, 3 Jul 2024 13:41:55 +0200 Subject: [PATCH 1/2] Changed wisvalid json parsing --- PyOphidia/client.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PyOphidia/client.py b/PyOphidia/client.py index 46aee9f..8959cfa 100644 --- a/PyOphidia/client.py +++ b/PyOphidia/client.py @@ -901,16 +901,16 @@ def wisvalid(self, workflow): return False w = None - # Remove comment blocks - checked_workflow = re.sub(re.compile(r"/\*.*?\*/|//.*?\n", re.DOTALL), "\n", workflow) - - if isinstance(checked_workflow, str): + if isinstance(workflow, str): try: + # Remove comment blocks in strings + checked_workflow = re.sub(r"(?m)^ *#.*\n?", "", workflow) w = json.loads(checked_workflow) except ValueError: return False, "Workflow is not a valid JSON" - elif isinstance(checked_workflow, dict): - w = checked_workflow + + elif isinstance(workflow, dict): + w = workflow else: return False, "Workflow is not a valid dictionary" if "name" not in w or not w["name"]: From aeb0b1180e0a8167bcb25ad44dc68a7bb75ce815 Mon Sep 17 00:00:00 2001 From: Pablo Orviz Date: Fri, 5 Jul 2024 13:06:58 +0200 Subject: [PATCH 2/2] Use ast.literal_eval() to load single and double-quoted JSON strings --- PyOphidia/client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PyOphidia/client.py b/PyOphidia/client.py index 8959cfa..cf18bd2 100644 --- a/PyOphidia/client.py +++ b/PyOphidia/client.py @@ -19,6 +19,7 @@ from __future__ import division from __future__ import print_function from __future__ import absolute_import +import ast import sys import os import json @@ -905,10 +906,9 @@ def wisvalid(self, workflow): try: # Remove comment blocks in strings checked_workflow = re.sub(r"(?m)^ *#.*\n?", "", workflow) - w = json.loads(checked_workflow) + w = ast.literal_eval(checked_workflow) except ValueError: return False, "Workflow is not a valid JSON" - elif isinstance(workflow, dict): w = workflow else: