New submission from Takeshi Matsuyama <tksmas...@gmail.com>: When I make a dictionary by parsing "legacy-icon-mapping.xml"(which is a part of icon-naming-utils[http://tango.freedesktop.org/Tango_Icon_Library]) with the following script, the three keys of the dictionary are collapsed if the "buffer_text" attribute is False.
===================== #!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import with_statement import sys from xml.parsers.expat import ParserCreate import codecs class Database: """Make a dictionary which is accessible by Databese.dict""" def __init__(self, buffer_text): self.cnt = None self.name = None self.data = None self.dict = {} p = ParserCreate() p.buffer_text = buffer_text p.StartElementHandler = self.start_element p.EndElementHandler = self.end_element p.CharacterDataHandler = self.char_data with open("/usr/share/icon-naming-utils/legacy-icon-mapping.xml", 'r') as f: p.ParseFile(f) def start_element(self, name, attrs): if name == 'context': self.cnt = attrs["dir"] if name == 'icon': self.name = attrs["name"] def end_element(self, name): if name == 'link': self.dict[self.data] = (self.cnt, self.name) def char_data(self, data): self.data = data.strip() def print_set(aset): for e in aset: print '\t' + e if __name__ == '__main__': sys.stdout = codecs.getwriter('utf_8')(sys.stdout) map_false_dict = Database(False).dict map_true_dict = Database(True).dict print "The keys which exist if buffer_text=False but don't exist if buffer_text=True are" print_set(set(map_false_dict.keys()) - set(map_true_dict.keys())) print "The keys which exist if buffer_text=True but don't exist if buffer_text=False are" print_set(set(map_true_dict.keys()) - set(map_false_dict.keys())) ===================== The result of running this script is ====================== The keys which exist if buffer_text=False but don't exist if buffer_text=True are rt-descending ock_text_right lc The keys which exist if buffer_text=True but don't exist if buffer_text=False are stock_text_right gnome-mime-application-vnd.stardivision.calc gtk-sort-descending ====================== I confirmed it in Python-2.5.2 on Fedora 10. ---------- components: XML messages: 80398 nosy: tksmashiw severity: normal status: open title: xml.parsers.expat make a dictionary which keys are broken if buffer_text is False. type: behavior versions: Python 2.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue5036> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com