[commit] r2676 - trunk/GME/Parser
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Tue May 16 15:56:55 CDT 2017
Author: ksmyth
Date: Tue May 16 15:56:55 2017
New Revision: 2676
Log:
xme_id2guid: add --omit-default-attributes option
Modified:
trunk/GME/Parser/xme_id2guid.py
Modified: trunk/GME/Parser/xme_id2guid.py
==============================================================================
--- trunk/GME/Parser/xme_id2guid.py Tue May 16 15:56:51 2017 (r2675)
+++ trunk/GME/Parser/xme_id2guid.py Tue May 16 15:56:55 2017 (r2676)
@@ -2,9 +2,9 @@
import os.path
import sys
-def id2guid(filename, output_filename, sort_elements=False):
+def id2guid(input, output, sort_elements=False, omit_default_attributes=False):
from xml.etree import ElementTree
- xme = ElementTree.parse(filename)
+ xme = ElementTree.parse(input)
id_guid_map = {}
for element in xme.iter():
if element.get('id') and element.get('guid'):
@@ -25,6 +25,11 @@
if element.get('refs'):
element.attrib['refs'] = " ".join([id_guid_map[id] for id in element.get('refs').split()])
+ if omit_default_attributes:
+ parent_map = dict((c, p) for p in xme.getiterator() for c in p)
+ for element in xme.findall('.//attribute[@status=\'meta\']'):
+ parent_map[element].remove(element)
+
if sort_elements:
def sortchildrenby(parent, attr):
parent[:] = sorted(parent, key=lambda child: child.get(attr))
@@ -33,19 +38,28 @@
sortchildrenby(element, 'name')
sortchildrenby(element, 'guid')
- with open(output_filename, 'wb') as output:
- output.write('<!DOCTYPE project SYSTEM "mga2.dtd">\n')
- xme.write(output)
+ output.write('<!DOCTYPE project SYSTEM "mga2.dtd">\n')
+ xme.write(output)
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser(description='Convert GME id-style .xme (mga.dtd) to GUID-style .xme (mga2.dtd).')
parser.add_argument('--sort', action='store_true')
+ parser.add_argument('--omit-default-attributes', action='store_true')
parser.add_argument('input-xme-file')
# parser.add_argument('--output-file')
args = parser.parse_args()
input = vars(args)['input-xme-file']
- output = os.path.splitext(input)[0] + "_guids.xme"
- id2guid(input, output, sort_elements=args.sort)
+ options = {
+ "sort_elements": args.sort,
+ "omit_default_attributes": 'omit-default-attributes' in vars(args)
+ }
+ if input != '-':
+ output_filename = os.path.splitext(input)[0] + "_guids.xme"
+ with open(output_filename, 'wb') as output:
+ id2guid(input, output, **options)
+ else:
+ id2guid(sys.stdin, sys.stdout, **options)
+
More information about the gme-commit
mailing list