Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > dca483b59ba61f3fa092de932ddd570e > files > 733

nuface-2.0.14-2mdv2009.1.i586.rpm

#!/usr/bin/env python
from sys import argv, stderr, exit

### XML ###
etree = None
try:
    from lxml import etree
except ImportError:
    pass

if not etree:
    try:
        # Python 2.5 ElementTree
        from xml.etree import ElementTree as etree
    except ImportError, err:
        pass

if not etree:
    try:
        # Python 2.4 cElementTree
        import cElementTree as etree
    except ImportError:
        pass

if not etree:
    try:
        # Python 2.4 ElementTree
        from elementtree import ElementTree as etree
    except ImportError:
        pass

if not etree:
    raise ImportError("Cannot import an elementtree-compliant xml "+
                      "library. Please install one of those "+
                      "libraries (by order of recommendation) : "+
                      "(1) lxml, (2) cElementTree or (3) ElementTree")

def indent(elem, level=0, spaces=u' '*3):
    newline = u"\n" + spaces * level
    if len(elem):
        if not elem.text or not elem.text.strip():
            elem.text = newline + spaces
        for elem in elem:
            indent(elem, level+1)
        if not elem.tail or not elem.tail.strip():
            elem.tail = newline
    else:
        if level and (not elem.tail or not elem.tail.strip()):
            elem.tail = newline
### XML ###

def removeDescSort(descsorts):
    count = 0
    return count

def cleanupDoc(doc):
    removed_desc = 0
    for descs in doc.getroot().getiterator('descs'):
        for desc in descs.getiterator('desc'):
            descs.remove(desc)
            removed_desc += 1
    print "%s <desc> removed" % removed_desc

    removed_descsort = 0
    for descsorts in doc.getroot().getiterator('descsorts'):
        for descsort in descsorts.getiterator('descsort'):
            descsorts.remove(descsort)
            removed_descsort += 1
    print "%s <descsort> removed" % removed_descsort

def main():
    if len(argv) != 3:
        print >>stderr, "usage: %s acls.xml newacls.xml" % argv[0]
        exit(1)
    input_filename = argv[1]
    output_filename = argv[2]
    if input_filename == output_filename:
        print >>stderr, "input and output filenames are identical (%s)" % input_filename
        print >>stderr, "Use different names!"
        exit(1)
    doc = etree.parse(input_filename)
    cleanupDoc(doc)

    out = open(output_filename, 'w')
    doc.write(out)
    out.close()
    print "Conversion done: %s" % output_filename
    exit(0)

if __name__ == "__main__":
    main()