~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/cache_utf8.py

  • Committer: John Arbash Meinel
  • Date: 2007-02-09 16:41:00 UTC
  • mto: This revision was merged to the branch mainline in revision 2294.
  • Revision ID: john@arbash-meinel.com-20070209164100-t9t1760kq6y5qgwn
Add get_cached_ascii for dealing with how cElementTree handles ascii strings

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
    return encode(decode(utf8_str))
89
89
 
90
90
 
 
91
def get_cached_ascii(ascii_str,
 
92
                     _uni_to_utf8=_unicode_to_utf8_map,
 
93
                     _utf8_to_uni=_utf8_to_unicode_map):
 
94
    """This is a string which is identical in utf-8 and unicode."""
 
95
    # We don't need to do any encoding, but we want _utf8_to_uni to return a
 
96
    # real Unicode string. Unicode and plain strings of this type will have the
 
97
    # same hash, so we can just use it as the key in _uni_to_utf8, but we need
 
98
    # the return value to be different in _utf8_to_uni
 
99
    ascii_str = _uni_to_utf8.setdefault(ascii_str, ascii_str)
 
100
    _utf8_to_uni.setdefault(ascii_str, unicode(ascii_str))
 
101
    return ascii_str
 
102
 
 
103
 
91
104
def clear_encoding_cache():
92
105
    """Clear the encoding and decoding caches"""
93
106
    _unicode_to_utf8_map.clear()