This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author tksmashiw
Recipients tksmashiw
Date 2009-01-23.03:52:17
SpamBayes Score 2.6897071e-06
Marked as misclassified No
Message-id <1232682741.27.0.537890243141.issue5036@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2009-01-23 03:52:22tksmashiwsetrecipients: + tksmashiw
2009-01-23 03:52:21tksmashiwsetmessageid: <1232682741.27.0.537890243141.issue5036@psf.upfronthosting.co.za>
2009-01-23 03:52:20tksmashiwlinkissue5036 messages
2009-01-23 03:52:17tksmashiwcreate