]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Python/Python-2.7.2/Demo/comparisons/sortingtest.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Demo / comparisons / sortingtest.py
1 #! /usr/bin/env python
2
3 # 2) Sorting Test
4 #
5 # Sort an input file that consists of lines like this
6 #
7 # var1=23 other=14 ditto=23 fred=2
8 #
9 # such that each output line is sorted WRT to the number. Order
10 # of output lines does not change. Resolve collisions using the
11 # variable name. e.g.
12 #
13 # fred=2 other=14 ditto=23 var1=23
14 #
15 # Lines may be up to several kilobytes in length and contain
16 # zillions of variables.
17
18 # This implementation:
19 # - Reads stdin, writes stdout
20 # - Uses any amount of whitespace to separate fields
21 # - Allows signed numbers
22 # - Treats illegally formatted fields as field=0
23 # - Outputs the sorted fields with exactly one space between them
24 # - Handles blank input lines correctly
25
26 import re
27 import sys
28
29 def main():
30 prog = re.compile('^(.*)=([-+]?[0-9]+)')
31 def makekey(item, prog=prog):
32 match = prog.match(item)
33 if match:
34 var, num = match.groups()
35 return int(num), var
36 else:
37 # Bad input -- pretend it's a var with value 0
38 return 0, item
39 for line in sys.stdin:
40 items = sorted(makekey(item) for item in line.split())
41 for num, var in items:
42 print "%s=%s" % (var, num),
43 print
44
45 main()