bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 1
by mbp at sourcefrog import from baz patch-364 | 1 | #! /usr/bin/env python
 | 
| 2 | # -*- coding: UTF-8 -*-
 | |
| 3 | ||
| 4 | # This program is free software; you can redistribute it and/or modify
 | |
| 5 | # it under the terms of the GNU General Public License as published by
 | |
| 6 | # the Free Software Foundation; either version 2 of the License, or
 | |
| 7 | # (at your option) any later version.
 | |
| 8 | ||
| 9 | # This program is distributed in the hope that it will be useful,
 | |
| 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| 12 | # GNU General Public License for more details.
 | |
| 13 | ||
| 14 | # You should have received a copy of the GNU General Public License
 | |
| 15 | # along with this program; if not, write to the Free Software
 | |
| 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| 17 | ||
| 18 | """XML externalization support."""
 | |
| 19 | ||
| 48
by Martin Pool witty comment | 20 | # "XML is like violence: if it doesn't solve your problem, you aren't
 | 
| 21 | # using enough of it." -- various
 | |
| 22 | ||
| 1
by mbp at sourcefrog import from baz patch-364 | 23 | |
| 24 | __copyright__ = "Copyright (C) 2005 Canonical Ltd." | |
| 25 | __author__ = "Martin Pool <mbp@canonical.com>" | |
| 26 | ||
| 27 | try: | |
| 28 | from cElementTree import Element, ElementTree, SubElement | |
| 29 | except ImportError: | |
| 27
by mbp at sourcefrog - fix up use of ElementTree without cElementTree | 30 | from elementtree.ElementTree import Element, ElementTree, SubElement | 
| 1
by mbp at sourcefrog import from baz patch-364 | 31 | |
| 32 | import os, time | |
| 33 | from trace import mutter | |
| 34 | ||
| 35 | class XMLMixin: | |
| 36 | def to_element(self): | |
| 37 | raise Exception("XMLMixin.to_element must be overridden in concrete classes") | |
| 38 | ||
| 39 | def write_xml(self, f): | |
| 40 | ElementTree(self.to_element()).write(f, 'utf-8') | |
| 41 | f.write('\n') | |
| 42 | ||
| 43 | def read_xml(cls, f): | |
| 44 | return cls.from_element(ElementTree().parse(f)) | |
| 45 | ||
| 46 | read_xml = classmethod(read_xml) | |
| 47 | ||
| 48 | ||
| 49 |