~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/xml8.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-06 06:48:25 UTC
  • mfrom: (4070.8.6 debug-config)
  • Revision ID: pqm@pqm.ubuntu.com-20090306064825-kbpwggw21dygeix6
(mbp) debug_flags configuration option

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
import cStringIO
18
18
import re
24
24
    revision as _mod_revision,
25
25
    trace,
26
26
    )
27
 
from bzrlib.xml_serializer import (
28
 
    Element,
29
 
    SubElement,
30
 
    XMLSerializer,
31
 
    )
 
27
from bzrlib.xml_serializer import SubElement, Element, Serializer
32
28
from bzrlib.inventory import ROOT_ID, Inventory, InventoryEntry
33
29
from bzrlib.revision import Revision
34
30
from bzrlib.errors import BzrError
96
92
    # to check if None, rather than try/KeyError
97
93
    text = _map.get(unicode_or_utf8_str)
98
94
    if text is None:
99
 
        if unicode_or_utf8_str.__class__ is unicode:
 
95
        if unicode_or_utf8_str.__class__ == unicode:
100
96
            # The alternative policy is to do a regular UTF8 encoding
101
97
            # and then escape only XML meta characters.
102
98
            # Performance is equivalent once you use cache_utf8. *However*
132
128
    # This is fairly optimized because we know what cElementTree does, this is
133
129
    # not meant as a generic function for all cases. Because it is possible for
134
130
    # an 8-bit string to not be ascii or valid utf8.
135
 
    if a_str.__class__ is unicode:
 
131
    if a_str.__class__ == unicode:
136
132
        return _encode_utf8(a_str)
137
133
    else:
138
 
        return intern(a_str)
 
134
        return _get_cached_ascii(a_str)
139
135
 
140
136
 
141
137
def _clear_cache():
143
139
    _to_escaped_map.clear()
144
140
 
145
141
 
146
 
class Serializer_v8(XMLSerializer):
 
142
class Serializer_v8(Serializer):
147
143
    """This serialiser adds rich roots.
148
144
 
149
145
    Its revision format number matches its inventory number.
164
160
        """Extension point for subclasses to check during serialisation.
165
161
 
166
162
        :param inv: An inventory about to be serialised, to be checked.
167
 
        :raises: AssertionError if an error has occurred.
 
163
        :raises: AssertionError if an error has occured.
168
164
        """
169
165
        if inv.revision_id is None:
170
166
            raise AssertionError()
426
422
        if entry_cache is not None and revision is not None:
427
423
            key = (file_id, revision)
428
424
            try:
429
 
                # We copy it, because some operations may mutate it
 
425
                # We copy it, because some operatations may mutate it
430
426
                cached_ie = entry_cache[key]
431
427
            except KeyError:
432
428
                pass