Mercurial > p > roundup > code
annotate roundup/cgi/PageTemplates/MultiMapping.py @ 8566:e4191aa7b402 default tip
doc: issue2551415 correct doc for change input->input_payload
in 2.5 the rest interface changed a variable name from input to
input_payload. An earlier commit changed the rest docs. This commit
adds an item for it to the upgrading 2.4.0->2.5.0 section. Also cross
reference added to the rest docs with the updated examples.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 09 Apr 2026 00:19:06 -0400 |
| parents | 23b8e6067f7c |
| children |
| rev | line source |
|---|---|
| 1049 | 1 import operator |
| 2 | |
| 3 class MultiMapping: | |
| 4 def __init__(self, *stores): | |
| 5 self.stores = list(stores) | |
| 6 def __getitem__(self, key): | |
| 7 for store in self.stores: | |
|
5381
0942fe89e82e
Python 3 preparation: change "x.has_key(y)" to "y in x".
Joseph Myers <jsm@polyomino.org.uk>
parents:
5378
diff
changeset
|
8 if key in store: |
| 1049 | 9 return store[key] |
|
5378
35ea9b1efc14
Python 3 preparation: "raise" syntax.
Joseph Myers <jsm@polyomino.org.uk>
parents:
3345
diff
changeset
|
10 raise KeyError(key) |
| 1049 | 11 _marker = [] |
| 12 def get(self, key, default=_marker): | |
| 13 for store in self.stores: | |
|
5381
0942fe89e82e
Python 3 preparation: change "x.has_key(y)" to "y in x".
Joseph Myers <jsm@polyomino.org.uk>
parents:
5378
diff
changeset
|
14 if key in store: |
| 1049 | 15 return store[key] |
| 16 if default is self._marker: | |
|
5378
35ea9b1efc14
Python 3 preparation: "raise" syntax.
Joseph Myers <jsm@polyomino.org.uk>
parents:
3345
diff
changeset
|
17 raise KeyError(key) |
| 1049 | 18 return default |
| 19 def __len__(self): | |
|
5392
a7bf8c4e502f
Python 3 preparation: use sum() instead of reduce().
Joseph Myers <jsm@polyomino.org.uk>
parents:
5381
diff
changeset
|
20 return sum([len(x) for x in self.stores]) |
| 1049 | 21 def push(self, store): |
| 22 self.stores.append(store) | |
| 23 def pop(self): | |
| 24 return self.stores.pop() | |
|
1136
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1049
diff
changeset
|
25 def items(self): |
|
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1049
diff
changeset
|
26 l = [] |
|
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1049
diff
changeset
|
27 for store in self.stores: |
|
5395
23b8e6067f7c
Python 3 preparation: update calls to dict methods.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5392
diff
changeset
|
28 l = l + list(store.items()) |
|
1136
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1049
diff
changeset
|
29 return l |
