nouf-sst commited on
Commit
c794041
·
verified ·
1 Parent(s): c87d7cd

Fix TGRL parsing

Browse files
Files changed (1) hide show
  1. app.py +22 -45
app.py CHANGED
@@ -115,54 +115,31 @@ def extract_elements(tgrl_text):
115
 
116
  # get decomposed elements
117
 
118
- new_lines = tgrl_text
119
  decomposed_elements = {}
120
 
121
- main_elements = re.findall("\w+(?=\s+decomposedBy)", new_lines)
122
 
123
- for main_element in main_elements:
124
-
125
- sub_elements = []
126
-
127
- sub_element = (re.findall(main_element+"(?: decomposedBy )([A-Za-z\s]*)", new_lines)[0])
128
- sub_elements.append(sub_element)
129
- new_lines = new_lines.replace(sub_element+', ', '')
130
-
131
- temp = main_element + " decomposedBy "
132
- for idx, sub_element in enumerate(sub_elements):
133
- if idx+1 == len (sub_elements):
134
- temp = temp + sub_element + ";"
135
- else:
136
- temp = temp + sub_element + ", "
137
-
138
- while temp not in tgrl_text:
139
-
140
- sub_element = (re.findall(main_element+"(?: decomposedBy )([A-Za-z\s]*)", new_lines)[0])
141
- sub_elements.append(sub_element)
142
- new_lines = new_lines.replace(sub_element+', ', '')
143
-
144
- temp = main_element + " decomposedBy "
145
- for idx, sub_element in enumerate(sub_elements):
146
- if idx+1 == len (sub_elements):
147
- temp = temp + sub_element + ";"
148
- else:
149
- temp = temp + sub_element + ", "
150
-
151
- decomposed_elements[main_element] = sub_elements
152
-
153
- # Replace elements IDs with names
154
- new_decomposed_elements = {}
155
-
156
- for key, _ in decomposed_elements.items():
157
-
158
- new_key = re.findall("(?:"+key+"\s*{\s*name\s=\s\")([A-Za-z\s;.,!?:-]*)", tgrl_text)[0]
159
- new_values = []
160
-
161
- for element in decomposed_elements[key]:
162
- new_value = re.findall("(?:"+element+"\s*{\s*name\s=\s\")([A-Za-z\s;.,!?:-]*)", tgrl_text)[0]
163
- new_values.append(new_value)
164
-
165
- new_decomposed_elements[new_key] = new_values
166
 
167
  return elements, elements_per_actor, new_decomposed_elements
168
 
 
115
 
116
  # get decomposed elements
117
 
118
+ new_tgrl_text = tgrl_text
119
  decomposed_elements = {}
120
 
121
+ main_elements_1 = re.findall("\w+(?=\s+decomposedBy)", new_tgrl_text)
122
 
123
+ for main_element in main_elements_1:
124
+ sub_element_1 = (re.findall(main_element+"\s*(?: decomposedBy )([A-Za-z\s]*)", new_tgrl_text)[0])
125
+ sub_element_1 = sub_element_1.replace(" ", "")
126
+ sub_element_2 = (re.findall(main_element+"\s*(?: decomposedBy )"+ sub_element_1 +",\s*([A-Za-z\s]*)", new_tgrl_text)[0])
127
+ new_tgrl_text = new_tgrl_text.replace(main_element+" decomposedBy "+sub_element_1+", "+sub_element_2+";", '')
128
+ decomposed_elements[main_element] = [sub_element_1, sub_element_2]
129
+
130
+ # Replace elements IDs with names
131
+ new_decomposed_elements = {}
132
+
133
+ for key, _ in decomposed_elements.items():
134
+
135
+ new_key = re.findall("(?:"+key+"\s*{\s*name\s=\s\")([A-Za-z\s]*)", tgrl_text)[0]
136
+ new_values = []
137
+
138
+ for element in decomposed_elements[key]:
139
+ new_value = re.findall("(?:"+element+"\s*{\s*name\s=\s\")([A-Za-z\s;.,!?:-]*)", tgrl_text)[0]
140
+ new_values.append(new_value)
141
+
142
+ new_decomposed_elements[new_key] = new_values
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
 
144
  return elements, elements_per_actor, new_decomposed_elements
145