Mercurial > hg > numerics
comparison numerics/sort.py @ 134:b6242f916cef
stub; needs a test
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Tue, 17 Mar 2015 11:38:43 -0700 |
parents | |
children | 12649a88545c |
comparison
equal
deleted
inserted
replaced
133:8b120c7f0cf9 | 134:b6242f916cef |
---|---|
1 #!/usr/bin/env python | |
2 # -*- coding: utf-8 -*- | |
3 | |
4 """ | |
5 sort columned data | |
6 """ | |
7 | |
8 # module globals | |
9 __all__ = ['Sorter'] | |
10 | |
11 class Sorter(object): | |
12 """ | |
13 sorter for columned data | |
14 """ | |
15 | |
16 def __init__(self, *indices): | |
17 """ | |
18 indices -- 2-tuple of (index, forward) | |
19 where forward should be True or False | |
20 """ | |
21 self.indices = indices | |
22 | |
23 def __call__(self, rows): | |
24 return sorted(rows, key=self.key) | |
25 | |
26 def key(self, row): | |
27 retval = [] | |
28 for index, forward in self.indices: | |
29 value = row[index] | |
30 if not forward: | |
31 value = -value | |
32 retval.append(value) | |
33 return tuple(retval) |