write(): Do two levels of sorting: first sort the individual location

tuples by filename/lineno, then sort the catalog entries by their
location tuples.
This commit is contained in:
Barry Warsaw 2001-05-23 16:59:45 +00:00
parent 54a069f271
commit 128c77d03a
1 changed files with 10 additions and 0 deletions

View File

@ -325,7 +325,17 @@ def write(self, fp):
# The time stamp in the header doesn't have the same format as that
# generated by xgettext...
print >> fp, pot_header % {'time': timestamp, 'version': __version__}
# Sort the entries. First sort each particular entry's keys, then
# sort all the entries by their first item.
reverse = {}
for k, v in self.__messages.items():
keys = v.keys()
keys.sort()
reverse[tuple(keys)] = (k, v)
rkeys = reverse.keys()
rkeys.sort()
for rkey in rkeys:
k, v = reverse[rkey]
# If the entry was gleaned out of a docstring, then add a comment
# stating so. This is to aid translators who may wish to skip
# translating some unimportant docstrings.