oe-trim-schemas 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #! /usr/bin/env python
  2. import sys
  3. try:
  4. import xml.etree.cElementTree as etree
  5. except:
  6. import xml.etree.ElementTree as etree
  7. def child (elem, name):
  8. for e in elem.getchildren():
  9. if e.tag == name:
  10. return e
  11. return None
  12. def children (elem, name=None):
  13. l = elem.getchildren()
  14. if name:
  15. l = [e for e in l if e.tag == name]
  16. return l
  17. xml = etree.parse(sys.argv[1])
  18. for schema in child(xml.getroot(), "schemalist").getchildren():
  19. e = child(schema, "short")
  20. if e is not None:
  21. schema.remove(e)
  22. e = child(schema, "long")
  23. if e is not None:
  24. schema.remove(e)
  25. for locale in children(schema, "locale"):
  26. # One locale must exist so leave C locale...
  27. a = locale.attrib.get("name")
  28. if a == 'C':
  29. continue
  30. e = child(locale, "default")
  31. if e is None:
  32. schema.remove(locale)
  33. else:
  34. e = child(locale, "short")
  35. if e is not None:
  36. locale.remove(e)
  37. e = child(locale, "long")
  38. if e is not None:
  39. locale.remove(e)
  40. xml.write(sys.stdout, "UTF-8")