Skip to content
Snippets Groups Projects
Commit 95aa7228 authored by imcovangent's avatar imcovangent
Browse files

Push before branch change

Former-commit-id: f657cceaed491568ace20d79f699750762e7cd09
parent ca62c47d
No related branches found
No related tags found
No related merge requests found
Pipeline #192649 canceled
......@@ -64,8 +64,7 @@ class RceMixin(object):
# Create graph object
from graph_process import RceGraph
rce_graph = RceGraph(self, rce_working_dir=rce_working_dir, rce_wf_filename=rce_wf_filename,
name=name)
rce_graph = RceGraph(self, rce_working_dir=rce_working_dir, rce_wf_filename=rce_wf_filename, name=name)
# Add diagonal positions to rce_graph based on MPG
rce_graph.add_diagonal_positions(MPG)
......
import os
import sys
from xml.etree import ElementTree as et
class hashabledict(dict):
def __hash__(self):
return hash(tuple(sorted(self.items())))
class XMLCombiner(object):
def __init__(self, filenames):
assert len(filenames) > 0, 'No filenames!'
# save all the roots, in order, to be processed later
self.roots = [et.parse(f).getroot() for f in filenames]
def combine(self):
for r in self.roots[1:]:
# combine each element with the first one, and update that
self.combine_element(self.roots[0], r)
# return the string representation
return et.ElementTree(self.roots[0])
def combine_element(self, one, other):
"""
This function recursively updates either the text or the children
of an element if another element is found in `one`, or adds it
from `other` if not found.
"""
# Create a mapping from tag name to element, as that's what we are fltering with
mapping = {(el.tag, hashabledict(el.attrib)): el for el in one}
for el in other:
if len(el) == 0:
# Not nested
try:
# Update the text
mapping[(el.tag, hashabledict(el.attrib))].text = el.text
except KeyError:
# An element with this name is not in the mapping
mapping[(el.tag, hashabledict(el.attrib))] = el
# Add it
one.append(el)
else:
try:
# Recursively process the element, and update it in the same way
self.combine_element(mapping[(el.tag, hashabledict(el.attrib))], el)
except KeyError:
# Not in the mapping
mapping[(el.tag, hashabledict(el.attrib))] = el
# Just add it
one.append(el)
if __name__ == '__main__':
sys.stdout.write('XML MERGER\n')
for file in sys.argv[1:]:
if file.endswith('.xml'):
sys.stdout.write('file: ' + file + '\n')
r = XMLCombiner(sys.argv[1:]).combine()
print '-'*20
print et.tostring(r.getroot())
r.write('Merger-output-loc.xml', encoding="iso-8859-1", xml_declaration=True)
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<map:mappings xmlns:map="http://www.rcenvironment.de/2015/mapping"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<map:mapping>
<map:source>/cpacs</map:source>
<map:target>/cpacs</map:target>
</map:mapping>
</map:mappings>
\ No newline at end of file
Workflow name: tu_delft_wing_design_converged-DOE-GS2017-06-20_17:41:13_39
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment