From 10938c84c0a9f30f1b38cf571abf1bca34b181b1 Mon Sep 17 00:00:00 2001 From: GregoireLamb Date: Mon, 3 Jun 2024 11:27:25 +0200 Subject: [PATCH 1/3] adapt parser to other dataset adapt the mung parser to other dataset (DoReMi and Musigraph) --- mung/io.py | 16 +++++++++++++--- mung/node.py | 3 +++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mung/io.py b/mung/io.py index ba58b6c..b4e3b46 100644 --- a/mung/io.py +++ b/mung/io.py @@ -250,10 +250,20 @@ def read_nodes_from_file(filename: str) -> List[Node]: root = tree.getroot() logging.debug('XML parsed.') nodes = [] - dataset = root.attrib['dataset'] - document = root.attrib['document'] + dataset = 'Unknown' - for i, node in enumerate(root.iter('Node')): + if 'dataset' in root.attrib: + dataset = root.attrib['dataset'] + document = 'Unknown' + + if 'document' in root.attrib: + document = root.attrib['document'] + node_tag = 'Node' + + if not list(root.iter(node_tag)): + node_tag = 'CropObject' + + for i, node in enumerate(root.iter(node_tag)): ###################################################### logging.debug('Parsing Node {0}'.format(i)) diff --git a/mung/node.py b/mung/node.py index dec9333..3b2f90f 100644 --- a/mung/node.py +++ b/mung/node.py @@ -812,6 +812,9 @@ def decode_mask_rle(mask_string: str, shape) -> Optional[numpy.ndarray]: mask_flat = numpy.zeros(shape[0]*shape[1], numpy.uint8) index = 0 + + mask_string = mask_string.strip().rstrip() + for kv in mask_string.split(' '): k_string, v_string = kv.split(':') k, v = int(k_string), int(v_string) From 32ff599bc3e748274b4af880accc3207ace8b48a Mon Sep 17 00:00:00 2001 From: GregoireLamb Date: Mon, 3 Jun 2024 15:22:46 +0200 Subject: [PATCH 2/3] simplify code --- mung/io.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/mung/io.py b/mung/io.py index b4e3b46..bc60ec9 100644 --- a/mung/io.py +++ b/mung/io.py @@ -250,18 +250,10 @@ def read_nodes_from_file(filename: str) -> List[Node]: root = tree.getroot() logging.debug('XML parsed.') nodes = [] - dataset = 'Unknown' - if 'dataset' in root.attrib: - dataset = root.attrib['dataset'] - document = 'Unknown' - - if 'document' in root.attrib: - document = root.attrib['document'] - node_tag = 'Node' - - if not list(root.iter(node_tag)): - node_tag = 'CropObject' + dataset = root.attrib.get('dataset', 'Unknown') + document = root.attrib.get('document', 'Unknown') + node_tag = 'Node' if list(root.iter('Node')) else 'CropObject' for i, node in enumerate(root.iter(node_tag)): ###################################################### From 6df6e239f5ee0dae01a2bd01f103dbf99a8fde6c Mon Sep 17 00:00:00 2001 From: GregoireLamb Date: Mon, 3 Jun 2024 15:47:34 +0200 Subject: [PATCH 3/3] rm useless strip --- mung/node.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mung/node.py b/mung/node.py index 3b2f90f..ec67ecf 100644 --- a/mung/node.py +++ b/mung/node.py @@ -813,7 +813,7 @@ def decode_mask_rle(mask_string: str, shape) -> Optional[numpy.ndarray]: mask_flat = numpy.zeros(shape[0]*shape[1], numpy.uint8) index = 0 - mask_string = mask_string.strip().rstrip() + mask_string = mask_string.rstrip() for kv in mask_string.split(' '): k_string, v_string = kv.split(':')