These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| """
 | |
|     Convert the X11 locale.alias file into a mapping dictionary suitable
 | |
|     for locale.py.
 | |
| 
 | |
|     Written by Marc-Andre Lemburg <mal@genix.com>, 2004-12-10.
 | |
| 
 | |
| """
 | |
| import locale
 | |
| 
 | |
| # Location of the alias file
 | |
| LOCALE_ALIAS = '/usr/share/X11/locale/locale.alias'
 | |
| 
 | |
| def parse(filename):
 | |
| 
 | |
|     f = open(filename)
 | |
|     lines = f.read().splitlines()
 | |
|     data = {}
 | |
|     for line in lines:
 | |
|         line = line.strip()
 | |
|         if not line:
 | |
|             continue
 | |
|         if line[:1] == '#':
 | |
|             continue
 | |
|         locale, alias = line.split()
 | |
|         # Strip ':'
 | |
|         if locale[-1] == ':':
 | |
|             locale = locale[:-1]
 | |
|         # Lower-case locale
 | |
|         locale = locale.lower()
 | |
|         # Ignore one letter locale mappings (except for 'c')
 | |
|         if len(locale) == 1 and locale != 'c':
 | |
|             continue
 | |
|         # Normalize encoding, if given
 | |
|         if '.' in locale:
 | |
|             lang, encoding = locale.split('.')[:2]
 | |
|             encoding = encoding.replace('-', '')
 | |
|             encoding = encoding.replace('_', '')
 | |
|             locale = lang + '.' + encoding
 | |
|             if encoding.lower() == 'utf8':
 | |
|                 # Ignore UTF-8 mappings - this encoding should be
 | |
|                 # available for all locales
 | |
|                 continue
 | |
|         data[locale] = alias
 | |
|     return data
 | |
| 
 | |
| def pprint(data):
 | |
| 
 | |
|     items = data.items()
 | |
|     items.sort()
 | |
|     for k,v in items:
 | |
|         print '    %-40s%r,' % ('%r:' % k, v)
 | |
| 
 | |
| def print_differences(data, olddata):
 | |
| 
 | |
|     items = olddata.items()
 | |
|     items.sort()
 | |
|     for k, v in items:
 | |
|         if not data.has_key(k):
 | |
|             print '#    removed %r' % k
 | |
|         elif olddata[k] != data[k]:
 | |
|             print '#    updated %r -> %r to %r' % \
 | |
|                   (k, olddata[k], data[k])
 | |
|         # Additions are not mentioned
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     data = locale.locale_alias.copy()
 | |
|     data.update(parse(LOCALE_ALIAS))
 | |
|     print_differences(data, locale.locale_alias)
 | |
|     print
 | |
|     print 'locale_alias = {'
 | |
|     pprint(data)
 | |
|     print '}'
 |